Я строю один, но когда я использую пользовательскую функцию поезда, указанную на lenet example с размером партии больше 110, моя точность становится больше 1 (100%).Точность Caffe больше 100%
Если я использую размер партии 32, я получаю 30 процентов точности. Размер партии равен 64. Моя чистая точность равна 64. Размер партии равен 128, точность 1,2.
Мои изображения 32x32. Комплект поездов: 56 изображений Нейтральных лиц. 60 изображений Surprise faces. Набор тестовых данных: 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
Итак, что случилось с моим кодом?
Спасибо! Вы спасли мою жизнь = D – Pasdf
Это действительно спасло мой день! Интересно, почему они использовали «правильный/1e4» в примере LeNet. ваш код лучше и приемлемо ... – Cypher