我试着制作一个CNN,并使用一个训练模块来训练它。我想指定它进行的迭代次数,但是我发现它一直在运行。
有人能帮我吗?
def train(model, epochs=10):
optimiser = torch.optim.SGD(model.parameters(), lr=0.001)
writer = SummaryWriter()
batch_idx = 0
loss_total = 0
epoch = 0
for epoch in range(epochs):
print('range:', range(epochs))
for batch in train_loader:
features, labels = batch
prediction = model(features)
# cf = confusion_matrix(labels, prediction)
loss = F.cross_entropy(prediction, labels) # Loss model changes label size
loss_total += loss.item()
loss.backward()
print('loss:', loss.item())
optimiser.step()
optimiser.zero_grad()
writer.add_scalar('Loss', loss.item(), batch_idx)
batch_idx += 1
print('epoch', epoch)
epoch += 1 # why does this not stop???
print('Total loss:', loss_total/batch_idx)如果有帮助的话,你也可以在我的GitHub:https://github.com/amosmike/facebook-market-search/blob/master/CNN.py上找到这个
谢谢你能提供的任何帮助
发布于 2022-10-04 19:17:29
你根本不应该增加你的时代变量。时代正在被从射程里拉出来。其次,您在批处理循环中。你可能不想在N批之后保释。
发布于 2022-10-04 19:23:21
问题是,您正在批量地增加时间。
epoch += 1 # why does this not stop???https://stackoverflow.com/questions/73952631
复制相似问题