[Caffe]使用经验积累
Caffe使用经验积累
本贴记录Caffe编译好了,使用过程的常用命令与常见错误解决方式。如果对编译过程还存在问题,请参考史上最全的caffe安装过程配置Caffe环境。
1 使用方法
训练网络
xxx/caffe/build/tools/caffe train --solver xx/solver.prototxt
选择某个模型作为预训练模型
xxx/caffe/build/tools/caffe train --solver solver.protxt --weights pre_training.caffemodel
继续之前的状态续训
xxx/caffe/build/tools/caffe train --solver solver.protxt --snapshot=train_iter_95000.solverstate
画出网络结构
python /caffe/python/draw_net.py train_alex.prototxt alexnet.png
选择多gpu进行训练
xxx/caffe/build/tools/caffe train --solver xx/solver.prototxt --gpu=0,1
设置系统环境变量使所需GPU可见
export CUDA_VISIBLE_DEVICES=1
训练log保存
nohup xxx/caffe/build/tools/caffe train –solver solver.prototxt &
tail –f output
查看log中训练loss的值
cat output.log | grep "Train net output" | awk '{print $11}' > loss.log
其中,awk的 ‘{print $11}’ 是用来截取串中的第11个子串
2 常见使用过程报错含义
(1) errror: Check failed: error == cudaSuccess (2 vs. 0) out of memory
说明GPU内存不够用了,减少batch_size即可,参考
(2) error: ImportError: No module named pydot when python draw_net.py train_val.prototxt xxx.png
使用draw_net.py画图时所报的错误,需要安装graphviz
pip install pydot
pip install GraphViz
sudo apt-get install graphviz
(3) error: Cannot copy param 0 weights from layer 'fc8'; shape mismatch.
Source param shape is 5 4096 (20480); target param shape is 1000 4096 (4096000). To learn this layer's parameters from scratch rather than copying from a saved net, rename the layer.
出现这个问题一般是层与层的之前blob维度对应不上,需要改prototxt
change deploy.prototxt adapt to train_val.prototxt
(4) error: Use hdf5 as caffe input, error: HDF5Data does not transform data
transform_param { scale: 0.00392156862745098 }
这句是说如果HDF5作为输入图像,不支持scale操作,把它注释就好了
Reference
(5) error: Loading list of HDF5 filenames from: failed to open source file
Read hdf5 data failed:
- source中 .txt位置用绝对路径
- .txt中.h5文件的要用绝对路径
- .prototxt中应该是:hdf5_data_param {}而非data_param{}
(6) error: Top blob 'data' produced by multiple sources.
检查数据输入层是不是多了 一层,比如定义了两遍’data’
(7) Error: Check failed: shape[i] >= 0 (-1 vs. 0)
- 数据维度顺序不对, blobs的顺序: [ 图像数量 N *通道数 C *图像高度 H *图像宽度 W ]
- kernerl size 与 feature map的大小不对应
(8) Error: Check failed: outer_num_ * inner_num_ == bottom[1]->count() (128 vs 128x51)
这层是accuracy layer出现的问题,检测accuracy的两个bottom的维度是否对应,实在解决不了的话,直接去掉。
[Caffe]使用经验积累的更多相关文章
- git日常使用经验积累
1 git merge origin/develop 将远程分支合并到本地,一般先执行合并,解决冲突,然后再git commit合入新建的分支,推送到远程分支里面,最后码云上找pl pull requ ...
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...
- 安装Caffe纪实
第一章 引言 在ubuntu16.04安装caffe,几乎折腾了一个月终于成功;做一文章做纪要,以便日后查阅.总体得出的要点是:首先,每操作一步,必须知道如何检验操作的正确性;笔者的多次失误是因为配置 ...
- 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比
http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...
- caffe代码阅读10:Caffe中卷积的实现细节(涉及到BaseConvolutionLayer、ConvolutionLayer、im2col等)-2016.4.3
一. 卷积层的作用简单介绍 卷积层是深度神经网络中的一个重要的层,该层实现了局部感受野.通过这样的局部感受野,能够有效地减少參数的数目. 我们将结合caffe来解说详细是怎样实现卷积层的前传和反传的. ...
- 基于window7+caffe实现图像艺术风格转换style-transfer
这个是在去年微博里面非常流行的,在git_hub上的代码是https://github.com/fzliu/style-transfer 比如这是梵高的画 这是你自己的照片 然后你想生成这样 怎么实现 ...
- caffe的python接口学习(7):绘制loss和accuracy曲线
使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupy ...
- 《Effective Java》学习笔记——积累和激励
从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...
- 基于Caffe的Large Margin Softmax Loss的实现(中)
小喵的唠叨话:前一篇博客,我们做完了L-Softmax的准备工作.而这一章,我们开始进行前馈的研究. 小喵博客: http://miaoerduo.com 博客原文: http://www.miao ...
随机推荐
- Quartz.Net 与 Autofac 自动注入 的整合问题
一.问题发现 今天早上在用 Quartz.Net 做定时扫描异常队列的功能模块时,发现处理异常队列的Job里面的ILog对象服务,Autofac没有自动注入进来. 然后在网上查阅相关资料,无奈发现 Q ...
- 【firefox】关闭firefox缓存
在Firefox中关闭缓存 看看这里 在地址栏输入:about:config 然后在过滤器中输入:browser.cache.disk.enable 解释:When a page is loaded, ...
- 5.spark弹性分布式数据集
弹性分布式数据集 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark弹性分布式数据集 ...
- cesium根据经纬度计算距离
var startLatitude = 36;var startLongitude = 120; var endLatitude=34; var endLongitude=121; var start ...
- C语言_第一讲_C语言入门
一.C语言的简介 1.C语言是一个标准,而执行标准的时候产生的自动化程序则是编译器2.了解:1983年美国国家标准化歇会(ANSI)制定了C语言标准.C语言的特点:3.代码的可移植性(理想状态是代码可 ...
- SecureCRT-转换密钥-Xshell-配置服务-使用xshell登录远程linux服务器
这篇文档不保证正确,仅仅是备份个因为所以,不必当真. SecureCRT和xShell这2个工具功能类似,均可以控制远程服务器模拟并发用户. SecureCRT自带功能可以将私钥转换为xShell可用 ...
- shell编程之文件包含
shell脚本也可以包含文件 格式: . filename 或者source filename 举例: a.sh #!/bin/sh calla() { echo "a.sh is call ...
- JS和OC交互的简单应用
先简单地说一下思路吧 需求:在App中嵌入一个webView,已经有了网址,但是需要去掉这个网页中的一些内容 解决方案:取到webView要加载的网址,对这个网址对应的网页信息进行修改 简单描述: 遵 ...
- js基础语法习题补充
输入三个整数,x,y,z,最终以从小到大的方式输出. <<script> var x=prompt("请输入数字") var y=prompt("请输入 ...
- 理解javascript中的回调函数(callback)
以下内容来源于:http://www.jb51.net/article/54641.htm 最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs ...