自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

keep forward, go, go, go

主要用于自己备忘,写的不太好,请轻拍,有疑问请留言,共同讨论交流^_^

  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux下wget下载文件到指定目录

利用wget url可以下载网页或者文件,且下载当前目录下如果要指定目录,则用命令wget -P dir url用-P指定目录名,比如 wget -P /home/user/test www.baidu.com

2018-04-28 09:52:11 15001

转载 Linux查看物理CPU个数、核数、逻辑CPU个数

转载自http://www.cnblogs.com/emanlee/p/3587571.html# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的...

2018-04-26 20:12:12 1784

原创 运行tensorflow python程序,限制对GPU和CPU的占用

一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用。并且,一般我们的程序也用不了所有的GPU资源,只是强行霸占着,大部分资源都不会用到,也不会提升运行速度。使用nvidia-smi可以查看本机的GPU使用情况,如下图,这里可以看出,本机的GPU型号是K80,共有两个K80,四块可用(一个K80包括两块K4...

2018-04-24 14:22:48 12722

原创 ubuntu下查看文件或文件夹的大小

一般用du -s file/dir 命令查看文件或文件夹的大小但这种方式很迷糊,没有明确的单位,可以用du -sh file/dir命令替换

2018-04-22 21:11:09 1684

原创 参考博客

回归的评价指标 http://blog.csdn.net/u013704227/article/details/77604500NP问题解释 http://www.matrix67.com/blog/archives/105梯度下降:https://www.cnblogs.com/pinard/p/5970503.html梯度下降:http://ruder.io/optimizing-gradie...

2018-04-22 21:10:51 515

原创 caffe 查看运行时间

再caffe中可以通过time命令来查看整体的运行时间命令如下:-Bash 代码1./build/tools/caffe time \2    --model=examples/cifar10/cifar10_full_sigmoid_train_test_bn.prototxt \3    -iterations 1000...

2018-04-19 19:51:50 2304

原创 linux修改LD_LIBRARY_PATH

在linux修改环境变量时,可以直接export比如 export LD_LIBRARY_PATH=/mypath但这样会影响LD_LIBRARY_PATH这个变量可以LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mypath就可以不会覆盖之前的内容...

2018-04-19 19:51:09 2945

原创 caffe CPU模式下训练速度很慢

前面提到了利用caffe训练模型时,只用单个CPU核的问题,通过openblas的方式解决了,但即使多个核用上了,但速度还是超级慢。就目前使用的网络而言,1min只能跑30 iter(1个iter 128个样本),即30*128 = 3840 样本/min, 为什么如此之慢呢?是不是代码出了问题,或者哪里的设置不对?尝试和lenet进行对比,利用8核CPU根据lenet训练mnist,大概8min...

2018-04-19 19:50:25 2711

原创 caffe在纯CPU模式下,使用多核运行

偶然发现一个问题,caffe在训练时,如果是只在cpu模式下,超级慢,看了一下,原因在于程序只用了一个核进行训练,因此速度超级慢如何解决这个问题呢?需要在编译caffe的时候指定使用openblas,并且需要在使用时指定使用的核数,具体操作如下1、首先安装openblas-Bash 代码1sudo apt-get install -y libopenblas-dev2、修改caffe目录下的Mak...

2018-04-19 19:48:52 3943

原创 P-R曲线深入理解

P-R曲线就是精确率precision vs 召回率recall 曲线,以recall作为横坐标轴,precision作为纵坐标轴。首先解释一下精确率和召回率。解释精确率和召回率之前,先来看下混淆矩阵,负 正负TNFP正FNTP把正例正确分类为正例,表示为TP(true positive),把正例错误分类为负例,表示为FN(false negative),把负例正确分类为负例...

2018-04-19 19:48:09 104871 31

原创 ubuntu下通过sh文件export环境变量

有一些环境变量需要导入, 但不想一个一个手动的导入,于是可以写一个shell脚本导入,比如在export_lib.sh中-Cpp 代码1export LD_LIBRARY_PATH=./lib如果直接运行./export_lib.sh,不能够导入成功,需要用 source export_lib.sh的命令来执行,执行后,再用命令-Bash 代码1echo $LD_LIBRARY_PATH就可以看到...

2018-04-19 19:47:06 4609

原创 c/c++ int转string

在C++中如何把int类型的数字转成string表示呢?一般有多种方式,这里用stream的方式转化,代码如下:-Cpp 代码1std::string int2str(const int& int_value){2    std::stringstream stream;3    stream<<int_value;4    std::string string_value =...

2018-04-19 19:45:28 1304

原创 caffe隐藏网络结构的定义,prototxt文件(待续)

在caffe中,在网络训练和网络使用的过程中,都会涉及到加载网络结构的问题,即caffe中定义的prototxt文件。但该文件包括了几乎所有的网络信息,能否做到隐藏该文件呢?能够想到的有两种方式,1、加密该文件,使用时再解密该文件2、将网络结构使用c++代码实现其中方式2没有做太多的研究,应该比较麻烦。那么加密解密的方式如何实现呢?采用合适的加密算法,解密后变成string,将string解析,变...

2018-04-19 19:44:16 2266 7

转载 gcc,make,cmake的解释

转载自 https://blog.csdn.net/libaineu2004/article/details/77119908CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(...

2018-04-19 15:40:40 450

原创 C++ getline读文件,行末尾包含'\0'(未解决)

发现了一个很诡异的问题,用C++的fstream读文件,代码如下-Cpp 代码1ifstream infile_handle("file.txt", std::ios::in);2string line;3getline(infile_handle,line);问题在于,读取一行数据后,在有些机器上会包含'\0'这个字符,而有些机器不包含。这是为什么呢?...

2018-04-18 19:16:24 2416

原创 caffe部署模型,在无caffe环境的机器上运行

训练好caffe模型后,通过加载deploy.prototxt文件和caffemodel,可以执行模型的推理过程,通过make编译后,该推理过程的cpp代码会被编译成可执行文件(.bin文件),通过在caffe目录下,调用./build/xxxx 可以运行该bin文件。但如何才能在其它机器上运行该可执行文件呢?如果直接拷贝该文件到其它机器上,再执行,则会提醒缺少各种.so动态库这里可以通过一一添加...

2018-04-18 19:15:28 2987 1

原创 caffe修改prototxt文件

caffe中的.prototxt文件用于定义网络结构,定义输入输出层,定义损失函数层等。prototxt文件是google的protocol buffer的数据结构。一般用定义好网络结构后,在实际使用时不会再调整,因此也不需要修改prototxt文件。但某些情况下,比如需要在线训练,而在线训练时,类别数会所有变化(可能是100分类,也可能是120分类),那么如何来完成这项工作呢?主要思路是1、修改...

2018-04-18 19:14:46 1231

原创 C++ 判断某一路径是目录还是文件

有时候需要根据路径是目录还是文件执行不同的操作,那么在C/C++中如何判断某个路径是目录还是文件呢?可以利用stat函数和结构体stat的函数声明如下-Cpp 代码1int _stat(2 const char *path,3 struct _stat *buffer4);参数:path——文件或者文件夹的路径buffer——获取的信息保存在内存中返回值:正确——返回0错误——返...

2018-04-18 19:13:54 16078 8

原创 caffe以C++方式部署

caffe写的模型,训练好之后,如果需要做预测,那么可以参考官网上的教程https://github.com/BVLC/caffe/wiki/Using-a-Trained-Network:-Deploy但调用模型和网络结构的时候是用python的形式,非常的简单和简洁,如果要用C++来完成调用则比较麻烦。可以参考http://caffe.berkeleyvision.org/gathered/e...

2018-04-18 19:12:53 3240

原创 caffe中的loss值,训练loss比测试loss更大,为什么?

在caffe中,训练的时候,默认会打印出测试的loss值和训练的loss值,比如下图第一个loss值0.380612是指模型在测试阶段,但是在训练集上的loss值,第二个loss值0.416171是指模型在测试阶段,在测试集上的loss值第三个loss值是训练阶段打印出的loss值但是这里比较奇怪的是为什么训练阶段的loss最大?而且为什么这个loss值和测试阶段在测试集上的loss值不一样大?初...

2018-04-18 19:11:48 5539

原创 caffe中如何打印/输出总loss,包括loss和正则项(待完成)

并没有找到合适的方案,目前来看,需要修改源码,但是咋修改源码,还没有搞定。并没有找到合适的方案,目前来看,需要修改源码,但是咋修改源码,还没有搞定。并没有找到合适的方案,目前来看,需要修改源码,但是咋修改源码,还没有搞定。...

2018-04-18 19:10:59 1098

原创 tensorflow和caffe的loss有区别

用tensorflow实现了一个网络,意欲用caffe复现该网络,几经挣扎后,代码终于写好了,但是出现了新的问题,精度不一样,caffe的精度比tensorflow低2~3个百分点。这可咋整,仔细分析网络,通过打印accuracy和loss,发现caffe的loss总是比tensorflow低一下,而caffe的accuracy却也要低一些。如下图所示:横坐标表示准确率,纵坐标表示loss sco...

2018-04-18 19:10:02 605

原创 深度学习模型在各个框架之间转换(待续)

根据个人的使用情况,开源情况等,可能会用到各种深度学习的框架,比如tensorflow,caffe,mxnet,pytorch等。如果要把某种框架下的模型转成另一种框架下的模型,可以参考该github,没做太多的研究,只是粘过来,以备不时之需。https://github.com/ysh329/deep-learning-model-convertor...

2018-04-18 19:08:58 1703

原创 caffe在窗口上不打印log信息

利用caffe训练和测试时,默认都会打印很多的内容,比如训练精度等。在caffe中常用的打印日志信息的语句有LOG(INFO) << "print log info";LOG(WARNING) << "print log warning";LOG(ERROR) << "print log error";控制是否打印这些信息,可以通过环境变量GLOG_minlog..

2018-04-18 11:51:36 2534

原创 python 数组反转

python中有一个列表a = [1,2,3,4,5,6]如果想反转该数组怎么办呢?一行代码搞定-Python 代码1a = a[::-1]

2018-04-17 11:45:08 27360 1

原创 caffe 指定使用的GPU

caffe若在GPU模式下,会默认是使用0号GPU,且默认只使用需要的GPU内存。(这一点和tensorflow不一样,tensorflow会默认使用所有的GPU,以及所有的GPU内存),如果0号GPU内存满了,即使其它GPU空闲,caffe也不会使用其它GPU在运行caffe程序前,可以先用nvidia-smi命令查看哪些GPU空闲,然后指定某个GPU使用,比如train.sh -gpu 2  ...

2018-04-17 11:43:24 4488 1

原创 putty配色设置

用putty连接linux系统,默认的配色,会导致注释基本看不见,尝试修改配色。修改配色可以从设置里面的colors修改,如果想copy别人的修改,也可以修改注册表1、打开运行2、输入regedit,打开注册表3、进入到目录 /HKEY_CURRENT_USER/Software/SimonTatham/Putty/Sessions/xx.xx.xx.xx 邮件导出该注册表,修改其中的color部...

2018-04-17 11:40:03 565

原创 caffe python读取lmdb文件

一般用caffe训练模型的时候,都会首先把数据写入数据库,lmdb/leveldb, 但如果写入之后想check一下是否写对了,怎么去读lmdb文件呢?这里用python代码读取lmdb文件,查看其中的内容,看是否符合预期。代码如下:-Python 代码01import caffe02import lmdb03 04lmdb_env = lmdb.open('train_lmdb') #caffe...

2018-04-17 11:39:02 1023

原创 caffe 新增代码编译

1、在caffe初次编译时,用make all即可2、如果修改了caffe源码,直接make即可,会把修改的部分做编译3.1、那如果新增了cpp文件代码呢?如果该cpp文件在caffe默认会编译的目录下,也可以直接make,比如代码放在tools/下,make后,会在caffe/build/tools找到对应的可执行文件3.2、如果cpp文件在自己新建的目录下呢?这个没搞定,感觉应该是需要修改Ma...

2018-04-17 11:38:05 518

原创 深度学习中shuffle后随机读取多个文件夹内的数据变慢

不管是用tensorflow还是caffe,都涉及到把数据写成需要的数据格式,加快运行速度,在caffe中一般写成LMDB/LEVELDB,在tensorflow中一般写成tfrecord格式。在写数据之前,当然是需要得到一个list,list中保存了文件名,以及对应的类型。并且需要对这个list进行shuffle处理,但是偶然发现,shuffle之后,再去读取数据会比从一个文件夹内按顺序读取数据...

2018-04-17 11:37:08 1216

原创 char * 和string互转,陷阱:char*中包含较多的'\0'

一般来说,char *和string能够比较容易的进行相互转换,比如char *转换成string,可以直接转,如下:-Cpp 代码1char *a = "abcdefg";2std::string b = a;相对的,string转char *也是比较容易的,如下:-Cpp 代码查看代码1std::string s = "abcdefg";2s.c_str();但在用的过程中,碰到过一个问题,利...

2018-04-17 11:36:11 6015 2

原创 caffe中非图片数据转为lmdb文件

图片的怎么转,比较简单?可以参考的博客较多,主要是使用convert_imageset函数https://www.cnblogs.com/denny402/p/5082341.html那么对于非图片的呢?比如pcap文件、txt文件等有几个参考网址,给出了python的代码,把一维数据转成lmdb文件,https://www.cnblogs.com/dcsds1/p/5205669.htmlhtt...

2018-04-17 11:34:41 559

原创 tensorflow统计tfrecord中的样本数量

在用tf处理数据时,一般都会保存为tfrecord格式的数据,有时候会想查看该tfrecord格式的数据样本多少个。那么如何做呢?参考如下代码:-Python 代码查看代码1import tensorflow as tf2 3tf_records_filenames = 'xxx.tfrecords'4c = 05for record in tf.python_io.tf_record_itera...

2018-04-17 11:33:16 6795 4

原创 tensorflow冻结部分层,只训练某一层

其实fine tune就是这样子的,如何把某些层冻结,然后训练最后一层。那么在tensorflow里如何实现呢?优化的时候,只选择优化特定层的参数即可。如下:-Python 代码1#定义优化算子2optimizer = tf.train.AdamOptimizer(1e-3)3#选择待优化的参数4output_vars = tf.get_collection(tf.GraphKyes.TRAINA...

2018-04-16 16:45:11 22261 8

原创 tensorflow 恢复部分参数、加载指定参数

现实中碰到一个问题,训练好分类模型,比如训练保存了一个10分类的模型,但是实际用的时候呢,可能是做20分类,但是还想继续使用前面保存的模型。那么相当于是只加载前几层的参数,最后一层做一些修改。一般实验情况下保存的时候,都是用的saver类,保存-Python 代码1saver = tf.train.Saver()2saver.save(sess,"model.ckpt")加载-Python 代码1...

2018-04-16 16:44:18 18580 9

原创 提前预测类问题的思路

存在较多的问题,需要先做预测,再做检测,比如我之前碰到的光模块故障预测,再比如铜线质量评估等等问题这些问题基本上都可以分为两个问题:预测和检测,也有较多的解决思路。1、先做预测再做检测,即先对某些属性利用时间序列的算法(AR、LSTM)做预测,再用分类算法做检测(比如二分类,故障和非故障)这个方法的检测部分,按理说是比较好做的,但时序预测部分,需要进行多阶预测,而故障的模式一般会突变,预测难度较大...

2018-04-16 16:41:34 1171 1

原创 分类时为什么都选择one hot编码

这里可以做一个思考啊,分类时,一般都会选择把类别用one hot进行编码,比如共有5个类,那么就有5个编码[1 0 0 0 0][0 1 0 0 0][0 0 1 1 1][0 0 0 1 0][0 0 0 0 1]这是为什么呢?为什么不直接用1,2,3,4,5来表示5个类别呢?个人觉得,一个很重要的原因在于计算loss时的问题。loss一般用距离来表示,如果用1~5来表示,那么1和2的距离时1,...

2018-04-16 16:40:52 8070 1

原创 深度学习,提高分类精度

利用深度学习网络训练出模型后,如果用模型测试,准确率低于训练集上的准确率,那么一般是存在过拟合的。可以尝试用bagging或者boosting或者stacking的方式提升准确率。我自己用过bagging的方式,其实就是训练3个/5个模型,然后做多数投票,一般会有1~2个点的提升...

2018-04-16 16:40:12 6397

原创 linux用pyinstaller将tensorflow的python代码打包成可执行文件

pyinstaller可以轻易地将python代码打包成可执行文件。1、安装pyinstaller-Bash 代码1sudo pip install pyinstaller安装好后,可以用如下命令查看pyinstaller版本-Bash 代码1pyinstaller --version2、写python代码test.py,如-Python 代码1import numpy as np2 3if __...

2018-04-16 16:39:01 4653 1

原创 如何用C++ API读取tfrecord

tensorflow提供了一套机制,可以先把数据预处理为tfrecord格式,这样可以大大加快训练时的数据交换。但是如果需要用c++ API来训练tensorflow模型,就涉及到如何读取数据的问题,需要用c++ 读取tfrecord格式的数据。这里还得再琢磨琢磨google基本无果,百度更是没戏自己看API来写?感觉太难了吧。都不知道如何下手那能不能和训练的时候,类似,只是写名字,然后c++调用...

2018-04-16 16:37:57 915

stm32模拟IIC

stm32的模拟IIC程序,有最基本的IIC只会简介,注释很详细。

2013-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除