A. 如何使用ssd训练自己的数据
可以参照前一篇文章配置下的ssd,本文假设ssd已经通过windows下的编译。
1.准备数据
需要根据PASCAL VOC格式 准备对应的数据,推荐一个好用的贴标签软件(https://github.com/tzutalin/labelImg)
拿VOC2012为例,VOC2012目录下需要Annotations、ImageSets、JPEGImages文件夹,Annotations存储对应的标签xml信息,JPEGImages存储图片数据,ImageSets 主要使用Main文件夹下的数据,Main文件夹保存了对应的训练、验证数据集的txt文本
然后使用caffe-ssd-microsoft\data\VOC0712目录下create_data.bat来生成所需要的lmdb文件(create_data.bat根据实际情况修改内容)
caffe-ssd-microsoft\data\VOC0712目录下get_image_size.bat用于生成test.txt中对应图片的大小映射,生成的结果写入test_name_size.txt
对于后面的训练需要准备以下文件:
test.txt 用于测试的文件集定义
labelmap_voc.prototxt 标签定义文件
test_name_size.txt 测试图片大小定义文件(可通过get_image_size.bat生成)
trainval.txt 训练验证集文件定义(数据排列为乱序,可根据实际情况设定)
train.prototxt 训练网络定义文件
test.prototxt 测试网络定义文件
deploy.prototxt 部署定义文件
solver.prototxt 训练配置文件
2.修改训练文件
caffe-ssd-microsoft\examples\ssd下的ssd_pascal.bat是用来训练数据用的程序(它是调用ssd_pascal.py运行的,ssd_pascal.py用来配置整个的训练环境),因为windows下的对 路径和Linux的不同,所以对应的windows下需要找到ssd_pascal.py对应的内容进行修改:
train_data = "{}/data/VOC0712/trainval_lmdb".format(caffe_root)
test_data = "{}/data/VOC0712/test_lmdb".format(caffe_root)
save_dir = "{}/models/VGGNet/VOC0712/{}".format(caffe_root,job_name)
snapshot_dir = "{}/models/VGGNet/VOC0712/{}".format(caffe_root,job_name)
job_dir = "{}/jobs/VGGNet/VOC0712/{}".format(caffe_root,job_name)
output_result_dir = "{}/data/VOC0712/results/{}/Main".format(caffe_root,job_name)
name_size_file = "{}/data/VOC0712/test_name_size.txt".format(caffe_root)
pretrain_model = "{}/models/VGGNet/VGG_ILSVRC_16_layers_fc_reced.caffemodel".format(caffe_root)
label_map_file = "{}/data/VOC0712/labelmap_voc.prototxt".format(caffe_root)
f.write('{}\Build\{}\Debug\caffe train ^\n'.format(caffe_root,'x64'))
B. 深度学习caffe的代码怎么读
我认为这个问题我是这样看的,希望可以帮到你。
Caffe框架主要有五个组件,Blob,Solver,Net,Layer,Proto,其结构图如下图1所示。Solver负责深度网络的训练,每个Solver中包含一个训练网络对象和一个测试网络对象。每个网络则由若干个Layer构成。每个Layer的输入和输出Feature map表示为Input Blob和Output Blob。
最后因为我自己也不是专业的程序员所以如果有不对的地方欢迎更正。
C. 如何在VS2013中使用caffe接口
观察caffe-master的第三方程序包,这个与caffe-master本文件夹都需行仔要档首汪加上去的。所以在属性表里,先后需要include以下这些:(路径请自行修改)
D:\caffe-master\include
D:\NugetPackages\boost.1.59.0.0\lib\native\include
D:\NugetPackages\glog.0.3.3.0\build\native\include
D:\NugetPackages\gflags.2.1.2.1\build\native\include
D:\NugetPackages\protobuf-v120.2.6.1\build\native\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include
D:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\include
D:\caffe-master\include\caffe\layers
D:\NugetPackages\OpenCV.2.4.10\build\native\include
D:\NugetPackages\OpenCV.2.4.10\build\native\include\opencv
D:\NugetPackages\OpenCV.2.4.10\build\native\include\opencv2
最后一项是CUDA的配置路径,找一下应该就可以找到。
那么我们的附加依赖项需要添加:
libcaffe.lib
libprotobuf.lib
opencv_highgui2410.lib
opencv_core2410.lib
opencv_imgproc2410.lib
libglog.lib
gflags.lib
libopenblas.dll.a
hdf5.lib
hdf5_hl.lib
cublas.lib
cublas_device.lib
cuda.lib
cudadevrt.lib
cudnn.lib
cudart.lib
cufft.lib
cudart_static.lib
cufftw.lib
cusparse.lib
cusolver.lib
curand.lib
nppc.lib
OpenCL.lib
对了,最后别忘了配置环境变量哟,配置完之后重启一遍:
D:\NugetPackages\gflags.2.1.2.1\build\native\x64\v120\dynamic\Lib
D:\NugetPackages\hdf5-v120-complete.1.8.15.2\lib\native\bin\x64
D:\NugetPackages\glog.0.3.3.0\build\native\bin\x64\v120\Release\dynamic
D:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\bin\x64
D:\NugetPackages\gflags.2.1.2.1\build\native\x64\v120\dynamic\Lib
D:\芹绝NugetPackages\OpenCV.2.4.10\build\native\bin\x64\v120\Release
D:\caffe-master\Build\x64\Release
那么在做完这些之后,我们就可以在新建工程里使用Caffe的接口了