赞
踩
.view()
方法在PyTorch中用于重塑张量。这里它被用来将单个样本的张量重塑成模型所期望的输入形状。具体地,1,1,28,28
意味着创建一个新的张量,其中:
1
代表批次大小(batch size),这里为1,因为你只预测一个样本。1
可能代表颜色通道的数量,这在处理灰度图像时常见,意味着每个像素只有一个颜色值。对于RGB图像,这个数字会是3。28,28
代表图像的高度和宽度,这是典型的MNIST手写数字数据集的维度。- #graph the loss at epoch
- train_losses = [tl.item() for tl in train_losses]
- plt.plot(train_losses, label= "training loss")
- plt.plot(test_losses, label="validation loss")
- plt.title("loss at epoch")
- plt.legend()
- #graph the accuracy at the end of each epoch
- plt.plot([t/600 for t in train_correct], label = "training accuracy")
- plt.plot([t/100 for t in test_correct], label = "validation accuracy")
- plt.title("accuracy at the end of each epoch")
- plt.legend()
- test_load_everything = DataLoader(test_data, batch_size= 10000, shuffle= False)
- with torch.no_grad():
- correct = 0
- for X_test, y_test in test_load_everything:
- y_val = model(X_test)
- predicted = torch.max(y_val, 1)[1]
- correct += (predicted == y_test).sum()
-
- # did for correct
- correct.item()/len(test_data) * 100
- ## Send New Image Thru The Model
- # grab an image
- test_data[4143] #tensor with an image in it ... at end ,it shows the label
- # grab just the data
- test_data[4143][0]
- #reshape it
- test_data[4143][0].reshape(28,28)
- # show the image
-
- plt.imshow(test_data[4143][0].reshape(28,28))
- # pass the image thru our model
- model.eval()
- with torch.no_grad():
- new_prediction = model(test_data[4143][0].view(1,1,28,28)) #batch size of 1,1 color channel, 28x28 image
-
- # check the new prediction, get probabilities
- new_prediction
- new_prediction.argmax()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。