pytorch在定义网络时需要注意的一些

torch.nn仅支持小批量。 整个torch.nn包仅支持作为微型样本而不是单个样本的输入。

例如,nn.Conv2d将采用nSamples x nChannels x Height x Width的 4D 张量。

如果您只有一个样本,只需使用input.unsqueeze(0)添加一个假批量尺寸。

要反向传播误差,我们要做的只是对loss.backward()。 不过,您需要清除现有的梯度,否则梯度将累积到现有的梯度中。

如果计算loss时报错‘RuntimeError: "host_softmax" not implemented for 'Long'“,应该将

loss = criterion(label,output)改为
loss = criterion(output,label),原因在查看F.cross_entropy的源码中参数的顺序

如果报错:RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0! (when checking argument for argument mat1 in method wrapper_addmm)是因为有一部分是在CPU上运算而另一部分是在GPU上运算,比如在迁移学习时,net=net.to(device) net.fc=nn.Linear(512,10),就会报错,因为net.fc在运算的时候没在GPU中,应该时

参考神经网络 (apachecn.org)

你可能感兴趣的:(pytorch学习笔记,pytorch,深度学习,python)