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的介面了