關於caffe訓練網路時用到的命令

2021-08-20 21:17:16 字數 3133 閱讀 8457

###訓練網路

#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...