- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经执行了以下代码并得到了最底部显示的错误。我想知道如何解决这个问题。谢谢
import torch.nn as nn
import torch.nn.functional as F
from torch import optim
from torchvision import transforms
_tasks = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
from torchvision.datasets import MNIST
mnist = MNIST("data", download=True, train=True, transform=_tasks)
from torch.utils.data import DataLoader
from torch.utils.data.sampler import SubsetRandomSampler
create training and validation split
split = int(0.8 * len(mnist))
index_list = list(range(len(mnist)))
train_idx, valid_idx = index_list[:split], index_list[split:]
create sampler objects using SubsetRandomSampler
tr_sampler = SubsetRandomSampler(train_idx)
val_sampler = SubsetRandomSampler(valid_idx)
create iterator objects for train and valid datasets
trainloader = DataLoader(mnist, batch_size=256, sampler=tr_sampler)
validloader = DataLoader(mnist, batch_size=256, sampler=val_sampler)
创建执行模型
class Model(nn.Module):
def init(self):
super().init()
self.hidden = nn.Linear(784, 128)
self.output = nn.Linear(128, 10)
def forward(self, x):
x = self.hidden(x)
x = F.sigmoid(x)
x = self.output(x)
return x
model = Model()
loss_function = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay= 1e-6, momentum = 0.9, nesterov = True)
for epoch in range(1, 11): ## run the model for 10 epochs
train_loss, valid_loss = [], []
#training part
model.train()
for data, target in trainloader:
optimizer.zero_grad()
#1. forward propagation
output = model(data)
#2. loss calculation
loss = loss_function(output, target)
#3. backward propagation
loss.backward()
#4. weight optimization
optimizer.step()
train_loss.append(loss.item())
# evaluation part
model.eval()
for data, target in validloader:
output = model(data)
loss = loss_function(output, target)
valid_loss.append(loss.item())
执行此操作时出现以下错误:
RuntimeError Traceback (most recent call last) in () ----> 1 output = model(data) 2 3 ## 2. loss calculation 4 loss = loss_function(output, target) 5
/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py in call(self, *input, **kwargs) 487 result = self._slow_forward(*input, **kwargs)
/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py in linear(input, weight, bias) 1352 ret = torch.addmm(torch.jit._unwrap_optional(bias), input, weight.t()) 1353 else: -> 1354 output = input.matmul(weight.t()) 1355 if bias is not None: 1356 output += torch.jit._unwrap_optional(bias)
RuntimeError: size mismatch, m1: [3584 x 28], m2: [784 x 128] at /pytorch/aten/src/TH/generic/THTensorMath.cpp:940
最佳答案
您输入的 MNIST 数据的形状 [256, 1, 28, 28]
对应于 [B, C, H, W]
。在将输入图像馈送到线性层 Linear(784, 128)
之前,您需要将输入图像展平为单个 784 长向量,这样输入就变成了 [256, 784]
对应于[B, N]
,其中N是1x28x28,你的图片大小。这可以按如下方式完成:
for data, target in trainloader:
# Flatten MNIST images into a 784 long vector
data = data.view(data.shape[0], -1)
optimizer.zero_grad()
...
在验证循环中也需要做同样的事情。
关于python-3.x - 大小不匹配,m1 : [3584 x 28], m2 : [784 x 128] at/pytorch/aten/src/TH/generic/THTensorMath. cpp:940,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218604/
我对替换 方法有疑问。最近,我正在安装使用 cpp 和 cuda 编译的不同损失函数。然而,我遇到的是一个 fatal error 'THC/THC.h': No such file or direc
在Python中给定一个二维张量,我们可以使用tensor[:,:2]对矩阵左上角前两个元素的2x2矩阵进行切片,例如: x = torch.tensor([[-1.4673, 0.9980, -2
我正在 CUDA GPU 上训练一个 CNN,它将 3D 医学图像作为输入并输出一个分类器。我怀疑pytorch中可能存在错误。我正在运行 pytorch 1.4.0。 GPU 是“特斯拉 P100-
我正在尝试在没有 gpu 的基于 arm 的设备上为 ASR 运行我的 PyTorch 模型。据我所知,arm 不支持 ATen 使用的 MKL。自然地,当我尝试进行推理时会收到以下错误: Runti
我有一个PyTorch张量称为 out_probs其生成方式如下: out_probs=F.softmax(out_dec[:,0],dim=0) 此外,out_probs 的形状是 [128,200
我开始在终端上运行 TensorFlow 应用程序。同时,当我在另一个终端上启动 Pytorch 应用程序时出现错误 THCudaCheck FAIL file=/pytorch/aten/src/T
我已经执行了以下代码并得到了最底部显示的错误。我想知道如何解决这个问题。谢谢 import torch.nn as nn import torch.nn.functional as F from to
我是一名优秀的程序员,十分优秀!