![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 59
yanxiangtianji
这个作者很懒,什么都没留下…
展开
-
修改PyTorch预训练模型的下载路径
PyTorch可以下载很多预训练好的神经网络,用起来会很方便。但是默认的下载路径是用户根目录下的.cache文件夹。在Linux和Mac下还比较符合用户习惯,但是在windows下就是C:\Users\<username>\.cache。不仅不符合很多windows用户的使用习惯而且不利于文件的保存。另外如果是多人共享的Linux服务器,每个用户都下载一遍这些训练好的神经网络明显是一种浪费。最好是放置在/var、/opt或者/usr/local等一类共享目录里。但是默认情况下,PyTorch里原创 2021-01-06 11:41:37 · 16377 阅读 · 4 评论 -
利用coalesce加速Spark迭代计算
问题:join导致partition数量膨胀Spark把每一个RDD分割为若干个partition,每一个partition上的计算是一个独立的task。每个task在执行的时候都是独立schedule的,都需要执行一遍完整的排序、系列化、计算、反序列化工作。这其中很大一部分工作的开销基本都是恒定的,不随partition中数据的多少而变化。所以当一个RDD的partition过多的时候,计算时会有很大的overhead。在计算的过程中,我们经常需要把两个或更多的变量放在一起做些计算,我们通常会用到j原创 2020-10-13 07:39:02 · 367 阅读 · 0 评论 -
巧用localCheckpoint加速Spark上的迭代计算(break lineage)
Spark和迭代计算Spark是一个基于lineage的计算框架。它通过lineage记录了数据从加载以来的所有操作,这样一方面让spark可以轻松地实现lazy execution,另一方面当发生问题的时候,可以准确地进行数据恢复。我们可以这样理解:Spark把一个数据X抽象为一个RDD。在这个RDD里面Spark不仅记录了X的值X.data,还通过一个DAG记录了它是怎么计算得来的X.lineage。这种设计非常适合对于普通的数据处理任务,但是对于数据需要不断循环优化的分析任务(特别是迭代优化类原创 2020-10-09 13:00:27 · 747 阅读 · 0 评论 -
conda依赖关系可视化工具:conda-tree
conda依赖关系可视化工具:conda-tree前言原理安装依赖主体用法前言有时候由于特定的依赖关系,比如以前安装的包X要求它依赖的A包的版本必须低于2.0,会导致新的包无法正常安装或升级。比较常见的情况是当安装新包的时候,conda会选择它的一个比较旧的版本。比如最近我就遇到了pytorch被强制锁定在1.2版本上,而无法安装最新的1.4版本。经过我查看依赖关系发现,这是以为我安装的to...原创 2020-02-06 10:35:17 · 4094 阅读 · 0 评论 -
在VS Code中开启gdb的pretty-printer功能
VS Code中开启GDB的pretty-printer功能准备pretty-printerpretty-printer是干什么的众所周知,C++的STL容器的实现并不直观,直接使用gdb之类的debugger查看内存是需要周转多次才能看到具体的内容的。 在Visual Studio之类的IDE中内置了一些脚本,用来较为友好的显示容器内的元素。GDB的pretty-pri...原创 2018-06-05 11:44:30 · 10748 阅读 · 8 评论 -
G++隐藏"bug"及应对:未特化的模板中的static_assert(false)的两种处理方式
C++11标准新引入的static_assert功能可以实现静态断言,是一个非常强大的模板元编程工具,配合SFINAE特效可以在编译期发现不符合预期的不合理特化,并且给出自定义的错误信息。但是不同编译器的实现却不尽相同,于是招致了一些不必要的麻烦。g++为了效率,在某些情况下会过早、甚至不必要地执行了static_assert断言,导致编译失败。本文给出了这种问题的发生条件、原因与解决方法。原创 2017-01-28 16:32:22 · 2823 阅读 · 1 评论 -
MPI选择错误的网卡/网段的解决方案
问题及原因在多网卡的情况下,有时候使用多个服务器作为MPI节点时会出现: 1. MPI_Recv之类的读函数读不到任何数据, 2. 或 MPI崩溃并提示无法connect to XXXX,这个XXXX多半是某个配属在其他网段的IP地址。这是因为: MPI默认选择了一个错误的网段尝试进行多机通讯,导致程序交互的失败。例如: 某台机器的网络配置如下:lo 127.0.0.1eth0原创 2017-02-16 13:52:25 · 7332 阅读 · 2 评论 -
What’s The Deal With The Git Index?
一篇讲解Git Index究竟是什么,有什么作用的文章。原文链接:http://www.gitguys.com/topics/whats-the-deal-with-the-git-index/Commands discussed in this section:git addgit commitgit ls-filesgit statusgit mvgit rmT转载 2015-11-10 11:08:54 · 687 阅读 · 0 评论 -
在Git上跨Repository移动文件(合并Repository),并保留修改历史
在Git上跨Repository移动文件(合并Repository),并保留提交记录。需求:Git用久了,总是要整理、合并一些工程的,还希望能保留下来以前的编辑历史。原理:利用Git可以加多个remote,并且分别pull下来的功能。方法:假设是要把repository A的directory 1移动到repository B的directory 1里面去。原创 2015-11-04 12:38:13 · 3750 阅读 · 0 评论 -
【转】gdb调试器用法
原文链接:https://code.google.com/p/ldd6410/wiki/GDBDebug原文发布时间: Apr 6, 2010GDB官方文档:http://sourceware.org/gdb/current/onlinedocs/gdb/gdb调试器用法GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可转载 2015-03-23 22:46:53 · 727 阅读 · 0 评论 -
OJ程序简便调试方法
问题:大部分OJ都使用屏幕输入输出作为数据通道,但是这并不适合我们进行调试。我过去的做法:1,每次测调试都去复制一遍,在命令行里面粘贴。这样不仅操作麻烦,而且修改代码或者向OJ提交的时候难免会用到复制粘贴的功能,到头来又要重新去题目上复制,很麻烦。而且大部分情况下多组测试数据我们都是一下粘进去的,需要多加断点来了解当前运行状态。但是好处是,这样调试的程序可以直接提交原创 2013-04-20 05:54:37 · 3772 阅读 · 0 评论 -
leetcode简介
原载于http://blog.csdn.net/yanxiangtianji转载请注明出处今天一个朋友告问了我一个美国的在线编程网站上的题目,我觉得这个网站很有意思,回来和大家分享一下。这个网站的的好处在于它会告诉你测试数据以及你的输出和正确的输出是什么,方便大家调试学习。它只支持C++和Java两种语言。而且部分支持C++11特性。另外它是支持在线编辑(它用js实现的原创 2013-02-07 03:42:42 · 9388 阅读 · 1 评论 -
leetcode之Largest Rectangle in Histogram
原载于http://blog.csdn.net/yanxiangtianji转载请注明出处题目:Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle原创 2013-02-07 03:58:07 · 1279 阅读 · 0 评论 -
GDB详解
1 简介GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3.当程序被停住时,可以检查此时你的程序中所发生的事。 4.动态的改变你程序的执行环境。2 生成调试信转载 2014-03-04 20:39:10 · 1016 阅读 · 0 评论 -
Linux GCC常用命令:编译流程、第三方库使用及其加载
原载于 http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html 介绍了CCC的编译流程已经各个步骤使用的指令,以及使用第三方库的方式,最后还介绍Linux运行时加载库的方式。1 简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还转载 2014-03-04 17:32:10 · 6927 阅读 · 0 评论 -
自制编程题目-我要吃饭!
题目:描述:我要吃饭!time limit: 2000msspace limit: 32MB小明是我XJTU大二的一名同学,大二同学课多,上午经常是12点放,有时候在中二上课,赶到食堂的时候大家懂的。小明做为一个资深rush型吃货对于吃什么没什么讲究,热喷喷的饭只要吃到肚子里心里是都暖洋洋的。所以他希望尽可能快得吃到饭。现在食堂里面有P个窗口(它们从0开始编号),每原创 2013-04-20 00:55:15 · 1275 阅读 · 0 评论 -
一问一答的在线编程测试题小记
闲话:今天做一问一答的在线编程题目玩,小记如下。算是给我以后写的文档也整理一下思路,最好也能够帮到正在学习编程的朋友们。链接:http://wenda60.com/programs/index.html前四个题没有什么难度,很快就做出来了。但是我的“纯在线编程”(不用本地编译器,不调试,直接编码运行),还是有点挑战的,各种小错误,也是因为我嫌机器慢没有开IDE。第5个题顶不原创 2013-02-23 07:10:41 · 1752 阅读 · 0 评论 -
hdu 4272 状态树解法
比赛的时候我第一时间就认为贪心是不对的,于是就写了个dfs型的DP,配了个状态树,就当是练习DP了。这两天看网上大家说贪心最近的那个也可以,但是我一直还没理解,求证明。 言归正传,本题一般DP的话状态(len,arr[0..p])异常的大,有1001个长度,1000个位置,每个位置可能存在1000个不同的值,都保存必然超内存。另外考虑到每次的操作都是针对序列末端的少了元素进行的,序原创 2012-09-12 15:30:04 · 1291 阅读 · 0 评论