У меня проблема, которую я не могу решить уже неделю. Я пытаюсь построить классификатор CIFAR-10, но значение моих потерь после каждой партии скачет случайным образом, и точность не улучшается даже для одной и той же партии (я даже не могу переобучить модель одной партией), так что я думаю, это единственная возможная причина есть - веса не обновляются.
def train():
for epoch in range(5): # loop over the dataset multiple times
for i in range(0, df_size):
# get the data
try:
images, labels = loadBatch(ds, i)
except BaseException:
continue
# wrap
inputs = Variable(images)
optimizer.zero_grad()
outputs = net(inputs)
loss = criterion(outputs, Variable(labels))
loss.backward()
optimizer.step()
acc = test(images,labels)
print("Loss: " + str(loss.data[0]) + " Accuracy %: " + str(acc) + " Iteration: " + str(i))
if i % 40 == 39:
torch.save(net.state_dict(), "model_save_cifar")
print("Finished epoch " + str(epoch))
Я использую batch_size = 20, image_size = 32 (CIFAR-10)
loadBatch возвращают кортеж из LongTensor 20x3x32x32 для изображений и LongTensor 20x1 для изображений. метки
Я был бы очень рад, если бы вы помогли мне или предложили возможное решение (я предполагаю, что это из-за последовательных модулей в NN, но параметры, которые я передаю оптимизатор вроде бы прав)
У меня проблема, которую я не могу решить уже неделю. Я пытаюсь построить классификатор CIFAR-10, но значение моих потерь после каждой партии скачет случайным образом, и точность не улучшается даже для одной и той же партии (я даже не могу переобучить модель одной партией), так что я думаю, это единственная возможная причина есть - веса не обновляются.
if i % 40 == 39: torch.save(net.state_dict(), "model_save_cifar")
print("Finished epoch " + str(epoch)) [/code]
Я использую [b]batch_size[/b] = 20, [b]image_size[/b] = 32 (CIFAR-10)
[b]loadBatch[/b] возвращают кортеж из [b]LongTensor[/b] 20x3x32x32 для изображений и [b]LongTensor[/b] 20x1 для изображений. метки
Я был бы очень рад, если бы вы помогли мне или предложили возможное решение (я предполагаю, что это из-за последовательных модулей в NN, но параметры, которые я передаю оптимизатор вроде бы прав)