model = Classifier()
criterion = nn.NLLLoss()
optimizer = optim.Adam(model.parameters(), lr=0.003)
epochs = 1
steps = 0
train_losses, test_losses = [], []
for e in range(epochs):
running_loss = 0
for images, labels in trainloader:
optimizer.zero_grad()
log_ps = model(images)
loss = criterion(log_ps, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
else:
## TODO: Implement the validation pass and print out the validation accuracy
t_p,t_class= log_ps.topk(1,dim=1)
print("t_class.type=",type(t_class))
print("t_class=",t_class)
print("t_class=",t_class.size())
equals = t_class==labels.view(t_class.size())
accuracy = torch.mean(equals.type(torch.FloatTensor))
#print("type(accuracy)=",type(accuracy))
#accuracy = accuracy.type(torch.FloatTensor)
print(f'Accuracy: {accuracy.item()*100}%')
#result
t_class.type= <class 'torch.Tensor'>
t_class= tensor([[ 8],
[ 8],
[ 2],
[ 3],
[ 9],
[ 7],
[ 0],
[ 9],
[ 2],
[ 1],
[ 6],
[ 3],
[ 0],
[ 4],
[ 4],
[ 9],
[ 2],
[ 9],
[ 3],
[ 2],
[ 0],
[ 1],
[ 7],
[ 9],
[ 8],
[ 2],
[ 9],
[ 1],
[ 5],
[ 2],
[ 2],
[ 7]])
t_class= torch.Size([32, 1])
Accuracy: 87.5%

被折叠的 条评论
为什么被折叠?



