2
我正在構建一個,但是當我使用批量大於110的lenet example上提供的定製列車功能時,我的準確度會大於1(100%)。Caffe精度大於100%
如果我使用批量大小32,我會得到30%的準確度。批量大小等於64我的淨精度是64.而批量大小等於128,精度爲1.2。
我的圖像是32x32。火車數據集:56張中性面孔圖像。 60驚訝的面孔的圖像。測試數據集:15張中性臉圖像。 Surprise面臨15張圖片。
這是我的代碼:
def train(solver):
niter = 200
test_interval = 25
train_loss = zeros(niter)
test_acc = zeros(int(np.ceil(niter/test_interval)))
output = zeros((niter, 32, 2))
for it in range(niter):
solver.step(1)
train_loss[it] = solver.net.blobs['loss'].data
solver.test_nets[0].forward(start='conv1')
output[it] = solver.test_nets[0].blobs['ip2'].data[:32]
if it % test_interval == 0:
print 'Iteration', it, 'testing...'
correct = 0
for test_it in range(100):
solver.test_nets[0].forward()
correct += sum(solver.test_nets[0].blobs['ip2'].data.argmax(1) == solver.test_nets[0].blobs['label'].data)
test_acc[it // test_interval] = correct/1e4
那麼,什麼是錯我的代碼?
謝謝!你救了我的命= D – Pasdf
這真的救了我的一天!我想知道他們爲什麼在LeNet示例中使用'correct/1e4'。你的代碼更好,可以接受... – Cypher