【发布时间】:2021-01-07 16:03:52
【问题描述】:
下面是代码:
import torch
import torchvision
from torchvision import transforms, datasets
#确定批量大小
Batch_size = 10
#下载火车数据
train_mnist = datasets.MNIST(root="./data", train=True, download=True,
transform=transforms.Compose([transforms.ToTensor()]))
#将训练数据传入Dataloader
train_set = torch.utils.data.DataLoader(train_mnist, batch_size=Batch_size, shuffle=True)
#下载测试数据
test_mnist = datasets.MNIST(root="./data", train=True, download=True,
transform=transforms.Compose([transforms.ToTensor()]))
#将测试数据传入Dataloader
test_set = torch.utils.data.DataLoader(test_mnist, batch_size=Batch_size, shuffle=True)
#构建网络
import torch.nn as nn
import torch.nn.functional as f
class Netwk(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(28*28, 64)
self.fc2 = nn.Linear(64, 64)
self.fc3 = nn.Linear(64, 64)
self.fc4 = nn.Linear(64, 10)
def Fpropagation(self, x):
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = F.relu(self.fc3(x))
x = self.fc4(x)
return F.log_softmax(x, dim=1)
return x
net = Netwk()
print(net)
#为损失创建优化
import torch.optim as optim
Optimizer = optim.Adam(net.parameters(), lr=0.001)
EPOCHS = 3
for epoch in range(EPOCHS):
for data in train_set:
X, y = data
net.zero_grad()
output = net(X.view(28*28))
loss = F.nll_loss(output, y)
loss.backward()
optimizer.step()
print(loss)
#我得到的错误
RuntimeError Traceback (most recent call last)
<ipython-input-58-b92f3c4f7059> in <module>()
10 X, y = data
11 net.zero_grad()
---> 12 output = net(X.view(28*28))
13 loss = F.nll_loss(output, y)
14 loss.backward()
RuntimeError: shape '[784]' is invalid for input of size 7840
试图绕过它,我似乎无法理解什么是错的。从已经尝试过的谷歌搜索来看,我的尺寸似乎有问题,如果完全是问题的话,我不知道如何获得正确的尺寸。
【问题讨论】:
-
将
X.view(28*28)更改为X.view(280*280) -
@sahasrara62,是的,已经这样做了,仍然出现错误。 RuntimeError Traceback(最近一次调用最后一次)
in () 10 X, y = data 11 net.zero_grad() ---> 12 output = net(X.view(280* 280)) 13 loss = F.nll_loss(output, y) 14 loss.backward() RuntimeError: shape '[78400]' is invalid for input of size 7840 -
@sahasrara62 看这里的代码,github.com/Elijah-A-W/ALGORITHMS/blob/master/MnestPytorch.ipynb,谢谢。
-
我不在ML区域,但是数据点和矩阵计算似乎不匹配,您需要在该区域查看
标签: python