caffe-windows训练自己的数据(1)
2016-11-28 09:28
573 查看
收集训练数据和测试数据各100张和20张,其中训练数据中猫和狗的的图片各50张。train.txt和val.txt的制作网上教程有很多问题也不大,不重复介绍。
生成将图片数据转换为leveldb
shell文件用不太来,sleep命令没用每次执行之后不能暂停,导致错误无法查看,最后看到有bat版本的,果断使用bat。
注意train.txt和val.txt中的路径要写对,之前试了N次都不成功,生成的log都是0KB,很可能是路径错了。
运行结果:
成功生成的leveldb文件夹中应包含以下内容,如果log文件大小只有0KB则说明数据没有转换成功
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/28/d6a492fe943c152963490bd02388d12c)
计算均值文件时出现如下错误
问题1 caffe-parallel has a bug: Check failed: proto.SerializeToOstream(&output)
问题描述:在运行训练网络一段时间出现
解决:一般是没有相应的目录或者权限对这个目录进行写操作而引起的,我这里是meanlevel.binaryproto的路径写错了,从log信息中可以看出写了D:D:,改为正确的目录就好。
执行的bat文件
处理后的结果信息
在dogcat目录中出现相应的均值文件,注意这里如果大小为1KB说明均值文件没有成功生成,很有可能是leveldb数据没有转成功
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/28/2650d061c2f4785e928db059eb0f9d66)
此次训练当迭代20次时train loss=0.145274,迭代500次后train loss=0.671998,不知道为什么loss反而会变大,test accuracy=0.55,??
还有一个问题train_val.prototxt中的train和test阶段的均值文件是使用同一个吗??
下篇博客再想想怎么回事。
生成将图片数据转换为leveldb
shell文件用不太来,sleep命令没用每次执行之后不能暂停,导致错误无法查看,最后看到有bat版本的,果断使用bat。
<!--在转换数据时总是出现*.exe已停止工作,查了原因,很可能是空指针(指针没有初始化)和数组溢出。-->
注意train.txt和val.txt中的路径要写对,之前试了N次都不成功,生成的log都是0KB,很可能是路径错了。
set EXAMPLE=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/examples/dogcat set DATA=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/data/dogcat set TOOLS=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/Build/x64/Release set TRAIN_DATA_ROOT=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/data/dogcat/train/ set VAL_DATA_ROOT=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/data/dogcat/val/ set backend=leveldb set resize_width=256 set resize_height=256 set GLOG_logtostderr=1 echo "Creating train leveldb..." "%TOOLS%/convert_imageset.exe" -backend=%backend% -resize_width=%resize_width% -resize_height=%resize_height% %TRAIN_DATA_ROOT% %DATA%/train.txt %EXAMPLE%/dogcat_train_leveldb echo "Creating test leveldb..." "%TOOLS%/convert_imageset.exe" -backend=%backend% -resize_width=%resize_width% -resize_height=%resize_height% %VAL_DATA_ROOT% %DATA%/val.txt %EXAMPLE%/dogcat_val_leveldb echo "Done." pause
运行结果:
D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set EXAMPLE=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/examples/ dogcat D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set DATA=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/data/dogcat D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set TOOLS=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/Build/x64/R elease D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set TRAIN_DATA_ROOT=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/d ata/dogcat/train/ D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set VAL_DATA_ROOT=D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/dat a/dogcat/val/ D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set backend=leveldb D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set resize_width=256 D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set resize_height=256 D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set GLOG_logtostderr=1 D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data da21 \dogcat>echo "Creating train leveldb..." "Creating train leveldb..." D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>"D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/Build/x64/Release/co nvert_imageset.exe" -backend=leveldb -resize_width=256 -resize_height=256 D:/360Downloads/NVIDIA/CaffeDev/caffe-windows /data/dogcat/train/ D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/data/dogcat/train.txt D:/360Downloads/NVIDIA/CaffeDev/caf fe-windows/examples/dogcat/dogcat_train_leveldb I1127 22:09:02.013578 19888 convert_imageset.cpp:86] A total of 100 images. I1127 22:09:02.026579 19888 db_leveldb.cpp:18] Opened leveldb D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/examples/dogcat/d ogcat_train_leveldb I1127 22:09:05.144757 19888 convert_imageset.cpp:150] Processed 100 files. D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>echo "Creating test leveldb..." "Creating test leveldb..." D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>"D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/Build/x64/Release/co nvert_imageset.exe" -backend=leveldb -resize_width=256 -resize_height=256 D:/360Downloads/NVIDIA/CaffeDev/caffe-windows /data/dogcat/val/ D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/data/dogcat/val.txt D:/360Downloads/NVIDIA/CaffeDev/caffe-w indows/examples/dogcat/dogcat_val_leveldb I1127 22:09:05.269764 20388 convert_imageset.cpp:86] A total of 20 images. I1127 22:09:05.281765 20388 db_leveldb.cpp:18] Opened leveldb D:/360Downloads/NVIDIA/CaffeDev/caffe-windows/examples/dogcat/d ogcat_val_leveldb I1127 22:09:05.440774 20388 convert_imageset.cpp:150] Processed 20 files. D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>echo "Done." "Done." D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>pause 请按任意键继续. . .
成功生成的leveldb文件夹中应包含以下内容,如果log文件大小只有0KB则说明数据没有转换成功
计算均值文件时出现如下错误
问题1 caffe-parallel has a bug: Check failed: proto.SerializeToOstream(&output)
问题描述:在运行训练网络一段时间出现
I1127 22:18:49.948206 12116 compute_image_mean.cpp:106] Write to **D:D:**\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat\ meanlevel.binaryproto F1127 22:18:49.994209 12116 io.cpp:78] Check failed: proto.SerializeToOstream(&output) *** Check failure stack trace: ***
解决:一般是没有相应的目录或者权限对这个目录进行写操作而引起的,我这里是meanlevel.binaryproto的路径写错了,从log信息中可以看出写了D:D:,改为正确的目录就好。
执行的bat文件
set GLOG_logtostderr=1 D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\Build\x64\Debug\compute_image_mean.exe --backend=leveldb D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\examples\dogcat\dogcat_train_leveldb D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat\meanlevel.binaryproto pause
处理后的结果信息
D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>set GLOG_logtostderr=1 D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\Build\x64\Debug\compu te_image_mean.exe --backend=leveldb D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\examples\dogcat\dogcat_train_leveldb D:\360 Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat\meanlevel.binaryproto I1127 22:31:39.641230 17616 db_leveldb.cpp:18] Opened leveldb D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\examples\dogcat\d ogcat_train_leveldb I1127 22:31:39.651231 17616 compute_image_mean.cpp:68] Starting Iteration I1127 22:31:42.536396 17616 compute_image_mean.cpp:99] Processed 100 files. I1127 22:31:42.562397 17616 compute_image_mean.cpp:106] Write to D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat\me anlevel.binaryproto I1127 22:31:42.619400 17616 compute_image_mean.cpp:112] Number of channels: 3 I1127 22:31:42.624400 17616 compute_image_mean.cpp:117] mean_value channel [0]:106.604 I1127 22:31:42.641402 17616 compute_image_mean.cpp:117] mean_value channel [1]:123.369 I1127 22:31:42.647403 17616 compute_image_mean.cpp:117] mean_value channel [2]:136.302 D:\360Downloads\NVIDIA\CaffeDev\caffe-windows\data\dogcat>pause 请按任意键继续. . .
在dogcat目录中出现相应的均值文件,注意这里如果大小为1KB说明均值文件没有成功生成,很有可能是leveldb数据没有转成功
此次训练当迭代20次时train loss=0.145274,迭代500次后train loss=0.671998,不知道为什么loss反而会变大,test accuracy=0.55,??
还有一个问题train_val.prototxt中的train和test阶段的均值文件是使用同一个吗??
下篇博客再想想怎么回事。
相关文章推荐
- Windows下用caffe训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- 【caffe-Windows】训练自己数据——数据集格式转换
- 【caffe-Windows】训练自己数据——数据集格式转换
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- Caffe_Windows学习笔记(二)用自己的数据训练和测试CaffeNet
- Windows下caffe训练自己的数据(2016-03-28)
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows 训练、微调caffenet 训练测试自己的数据
- windows-caffe入门之用CPU训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- Caffe学习笔记(六)—— Windows下训练自己的数据