Windows下使用Caffe-Resnet
參考文章:
??????? 編譯歷程參考:CNN:Windows下編譯使用Caffe和Caffe2???????????
??????? caffe的VS版本源代碼直接保留了sample里面的shell命令,當然這些shell命令在Windows平臺下是不能運行的,需要稍微修改一下,轉換為CMD可以理解的腳本代碼。
一、使用cifar數據集合。
???? 1.獲取cifar10數據集get_cifar10數據集:
echo "Downloading..." wget --no-check-certificate http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz echo "Unzipping..." tar -xf cifar-10-binary.tar.gz && rm -f cifar-10-binary.tar.gz mv cifar-10-batches-bin/* . && rm -rf cifar-10-batches-bin
?????? 還是直接下載劃算。
????? 2. 生成標準格式的數據集合create_cifar10.sh:
set -e EXAMPLE=examples/cifar10 DATA=data/cifar10 DBTYPE=lmdb echo "Creating $DBTYPE..." rm -rf $EXAMPLE/cifar10_train_$DBTYPE $EXAMPLE/cifar10_test_$DBTYPE ./build/examples/cifar10/convert_cifar_data.bin $DATA $EXAMPLE $DBTYPE echo "Computing image mean..." ./build/tools/compute_image_mean -backend=$DBTYPE \ $EXAMPLE/cifar10_train_$DBTYPE $EXAMPLE/mean.binaryproto echo "Done."????? cifar10數據集合使用了二進制的bin文件,對于我們來說幾乎沒有任何意義,只是作為一個測試流程使用。
????? 修改為cmd命令:
convert_cifar_data.exe E:/DataSet/cifar10 E:/DataSet/cifar10 lmdb????? 把e盤cifar10文件夾下面的文件轉換為lmdb格式,到同目錄下。
????? 分別生成train和test文件夾,每個文件夾下面存在兩個lock.lmdb和data.lmdb文件。
????? 至于為何使用lmdb格式的文件,請到知乎搜索....................
?????? 然后修改為cmd命令:???
?????? 依次生成lmdb文件,mean.binaryproto文件
二、開始使用Caffe網絡
?????? 修改Caffe的train_quick命令,修改為:
caffe.exe train --solver=E:/DataSet/cifar10/net/cifar10_quick_solver.prototxt
?????? 可以從
cifar10_quick_solver.prototxt
????? 啟動簡單的caffe網絡,開始訓練過程
????? prototxt配置文件里面初始參數是這樣的:
name: "CIFAR10_quick" layer { name: "cifar" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { mean_file: "E:/DataSet/cifar10/mean.binaryproto"} data_param{ source: "E:/DataSet/cifar10/cifar10_train_lmdb" batch_size: 100 backend: LMDB } } layer{ name: "cifar" type: "Data" top: "data" top: "label" include { phase: TEST } transform_param { mean_file: "E:/DataSet/cifar10/mean.binaryproto"} data_param { source: "E:/DataSet/cifar10/cifar10_test_lmdb" batch_size: 100 backend: LMDB } }
???? 訓練完成后,生成.model文件。留作使用。
?三、注意事項
? ? ? 1. 在使用初始化的過程中,使用protobuf解析網絡配置文件,出現默認初始化問題。 ???
?????
?????? 在solver_param.mutable_train_state()->set_level(FLAGS_level);
?????????? CHECK(ReadProtoFromTextFile(param_file, param));
?????????? ReadProtoFromTextFile(filename.c_str(), proto);
?????????? bool success = google::protobuf::TextFormat::Parse(input, proto);/
???? 調用棧之中,解析文件目錄為? filename = 0x0000029ed8a371a0 "E:/DataSet/cifar10/net/cifar10_quick_solver.prototxt"
???? 而 默認初始化 net 目錄和+?? ??? ?snapshot_prefix_? 為? 0x0000029ee0ead6b0 "examples/cifar10/cifar10_quick"?? ,是相當悲劇的行為。
???? 下載源碼,編譯后,調試進入,
???????? 載回頭來看這些繁瑣的東西,真是蛋疼。
三、開始使用殘差網絡
?????? 修改E:/DataSet/cifar10/net/cifar10_quick_solver.prototxt 文件,修改為:
#net: "E:/DataSet/cifar10/Net/cifar10_quick_train_test.prototxt"
net: "E:/DataSet/Net/ResNet-50-deploy.prototxt"
?????? 可以直接使用caffe的ResNet50網絡
總結
以上是生活随笔為你收集整理的Windows下使用Caffe-Resnet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统:MovivLens20M数据集
- 下一篇: 回纥人是现在的什么人