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