【发布时间】:2016-02-19 02:26:27
【问题描述】:
我正在构建一个,但是当我使用lenet example 上提供的自定义训练函数且批量大小大于 110 时,我的准确度会大于 1 (100%)。
如果我使用批量大小 32,我会得到 30% 的准确率。批量大小等于 64 我的净精度为 64。批量大小等于 128,精度为 1.2。
我的图像是 32x32。 训练数据集:56 张中性人脸图像。 60 张惊喜面孔的图像。测试数据集:15 张中性人脸图像。 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
那么,我的代码有什么问题?
【问题讨论】:
标签: neural-network deep-learning caffe conv-neural-network pycaffe