###訓練網路
#sudo sh ./build/tools/caffe train --solver=examples/mnist/train_lenet.sh
--solver:必選引數。乙個protocol buffer型別的檔案,即模型的配置檔案。如:
# ./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt
-gpu:可選引數。該引數用來指定用哪一塊gpu執行,根據gpu的id進行選擇,如果設定為"-gpu all"則使用所有的gpu執行。如使用第二塊gpu執行:
# ./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt -gpu 1
-weights:可選引數。用預先訓練好的權重來fine-tuning模型,需要乙個caffemodel如:
# ./build/tools/caffe train -solver examples/finetuning_on_flickr_style/solver.prototxt -weights modela/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
###測試網路
# ./build/tools/caffe test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -gpu 0 -iterations 100
time引數用來在螢幕上顯示程式執行時間。如:
# ./build/tools/caffe time -model examples/mnist/lenet_train_test.prototxt -iterations 10
###關於gpu
# ./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt -gpu 0,1
# ./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt -gpu all
###計算均值
#sudo /home/abc/caffe/build/tools/compute_image_mean /home/abc/caffe/examples/mnist/mnist_train_lmdb /home/abc/caffe_case/mean.binaryproto
###繪製視覺化網路模型
1、安裝graphviz
#sudo apt-get install graphviz
2、安裝pydot
#sudo pip install pydot
#sudo python /home/abc/caffe/python/draw_net.py /home/abc/caffe/examples/mnist/lenet_train_test.prototxt /home/abc/caffe_case/lenet.png --rankdir=bt
第乙個引數:網路模型的prototxt檔案
第三個引數:--rankdir=x,x有四種選項,分別是lr,rl,tb,bt。用來表示網路的方向,分別是從左到右,從右到左,從上到下,從下到上。預設為lr。
###繪製loss曲線
import numpy as np
import matplotlib.pyplot as plt
import sys,os
caffe_root = '/home/abc/caffe/' #this file should be run from/examples (otherwise change this line)
sys.path.insert(0,caffe_root + 'python')
import caffe
caffe.set_device(0,1)
caffe.set_mode_gpu()
solver = caffe.sgdsolver('/home/abc/caffe/examples/mnist/lenet_solver.prototxt')
niter = 1000 #迭代的次數
test_interval = 200 #每隔多少次測試一次
train_loss = np.zeros(niter)
test_acc = np.zeros(int(np.ceil(niter / test_interval)))
#the main solver loop
for it in range(niter):
solver.step(1) #sgd by caffe
#store the train loss
train_loss[it] = solver.net.blobs['loss'].data
solver.test_nets[0].forward(start = 'conv1')
if it % test_interval == 0:
acc=solver.test_nets[0].blobs['accuracy'].data
print 'iteration',it,'testing...','accuracy:',acc
test_acc[it // test_interval] = acc
print test_acc
_,ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(np.arange(niter),train_loss)
ax2.plot(test_interval * np.arange(len(test_acc)),test_acc,'r')
ax1.set_xlabel('iteration')
ax1.set_ylabel('train loss')
ax2.set_ylabel('train accuracy')
plt.show()
caffe訓練自己的資料時的錯誤
root wzy ubuntu home wzy caffe master sh examples wzy create meanfile.sh f0821 16 03 04.561220 17469 db lmdb.hpp 15 check failed mdb status 0 2 vs.0 n...
在caffe上訓練網路模型總結
這段時間使用遷移學習的方法,使用vgg16模型訓練自己的資料集,現將在訓練過程中遇到的問題記錄下來 1 不改變vgg16模型的網路結構,來訓練自己的資料集。這部分都是照著網上一步一步來,沒有什麼大的問題,就是要特別要注意base lr 學習率的設定 這個設定的不對在訓練過程中會出現不收斂的情況。2 ...
caffe訓練時的一些錯誤記錄
最近突然需要需要將之前的模型載入並進行訓練,發現出錯,就趕緊排查 i0328 09 35 34.497181 6268 layer factory.hpp 76 creating layer data i0328 09 35 34.509884 6268 net.cpp 106 creating l...