阿里云的参考文档:https://help.aliyun.com/document_detail/49571.html
在文档里提供了caffe的一个案例,利用Caffe实现mnist的数据训练。准备的数据源可以在“深度学习案例代码及数据下载”页找到Caffe数据下载并解压。要训练自己的图片,还是遇到了不少的问题。
第一,下载图片集,主要参考点击打开链接http://www.cnblogs.com/denny402/p/5083300.html
第二,生成可用的图片列表清单文件。在examples下面创建一个myfile的文件夹,来用存放配置文件和脚本文件。然后编写一个脚本create_filelist.sh,用来生成train.txt和test.txt清单文件。
# sudo mkdir examples/myfile # sudo vi examples/myfile/create_filelist.sh
编辑此文件,写入如下代码,并保存
#!/usr/bin/env sh DATA=data/re/ MY=examples/myfile
echo "Create train.txt..." rm -rf $MY/train.txt for i in 3 4 5 6 7 do find $DATA/train -name $i*.jpg | cut -d '/' -f4-5 | sed "s/$/ $i/">>$MY/train.txt done echo "Create test.txt..." rm -rf $MY/test.txt for i in 3 4 5 6 7 do find $DATA/test -name $i*.jpg | cut -d '/' -f4-5 | sed "s/$/ $i/">>$MY/test.txt done echo "All done"
然后,运行此脚本
# sudo sh examples/myfile/create_filelist.sh
成功的话,就会在examples/myfile/ 文件夹下生成train.txt和test.txt两个文本文件,里面就是图片的列表清单。
可以看到test.txt这个列表清单文件里保存的是图片的路径,为了能使用阿里的云服务器,把图片也上传到了oss,所以需要再编写一个脚本文件,将文件中的路径(test/)替换为在阿里云上图片存放的路径(imagestt/owndataset-classify/data-test/)
# sudo gedit examples/myfile/takeplace.sh
插入:
# /usr/bin/env sh MY=examples/myfileecho "Create takeplace_test.txt..."rm -rf $MY/takeplace_test.txt sed 's#test/#imagestt/owndataset-classify/data-test/#g' $MY/test.txt >>$MY/takeplace_test.txtecho "Done..."
takeplace_test.txt是替换路径后的txt文件,主要使用linux命令sed,参考上一篇博客: linux sed 批量替换字符串
运行这个脚本文件,生成 takeplace_test.txt文件 。# sudo sh examples/myfile/takeplace.sh第三,上传相应的图片集 data-test , 图片列表清单文件takeplace_test.txt ,训练所需的模型描述文件train_val.prototxt和超参数设置文件solve.prototxt。 其中,outputlist为空文件夹,作为输出oss目录, 如下图所示:
注意:这里的模型描述文件train_val.prototxt和超参数设置文件solve.prototxt,文件里的路径要修改,可参看阿里的文档。
第四,新建空白实验,再 选中格式转换组件-1,进行参数设置,图片列表文件oss路径:oss://imagestt.oss-cn-shanghai-internal.aliyuncs.com/owndataset-classify/takeplace_test.txt
输出路径:oss://imagestt.oss-cn-shanghai-internal.aliyuncs.com/owndataset-classify/outputlist/
第五,可以直接点击运行了。
第六,拖一个Caffe组件,再选中组件,进行参数设置:oss://imagestt.oss-cn-shanghai-internal.aliyuncs.com/owndataset-classify/solver.prototxt
第七,右击caffe组件,执行到此处。