Questions tagged «pytorch»

PyTorch是一个深度学习框架,它实现了动态计算图,可让您更改神经网络动态运行的方式,并能够执行向后自动微分。

8
PyTorch中的“视图”方法如何工作?
我对方法感到困惑 view()对以下代码片段中。 class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.pool = nn.MaxPool2d(2,2) self.conv2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.Linear(16*5*5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = self.pool(F.relu(self.conv2(x))) x = x.view(-1, 16*5*5) x = F.relu(self.fc1(x)) x …
205 python  memory  pytorch  torch  tensor 

5
在PyTorch中保存经过训练的模型的最佳方法?
我一直在寻找其他方法来在PyTorch中保存经过训练的模型。到目前为止,我发现了两种选择。 使用torch.save()保存模型,使用torch.load()加载模型。 model.state_dict()保存训练的模型,model.load_state_dict()加载保存的模型。 我碰到过这种讨论,其中建议方法2优于方法1。 我的问题是,为什么选择第二种方法呢?仅仅是因为torch.nn模块具有这两个功能,我们被鼓励使用它们吗?


10
pytorch中的模型摘要
有什么办法,我可以像在Keras中的model.summary()方法那样在PyTorch中打印模型的摘要,如下所示? Model Summary: ____________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ==================================================================================================== input_1 (InputLayer) (None, 1, 15, 27) 0 ____________________________________________________________________________________________________ convolution2d_1 (Convolution2D) (None, 8, 15, 27) 872 input_1[0][0] ____________________________________________________________________________________________________ maxpooling2d_1 (MaxPooling2D) (None, 8, 7, 27) 0 convolution2d_1[0][0] ____________________________________________________________________________________________________ flatten_1 (Flatten) (None, 1512) 0 maxpooling2d_1[0][0] ____________________________________________________________________________________________________ dense_1 (Dense) (None, 1) …
123 python  pytorch 





6
PyTorch-contiguous()
我正在通过github (link)上的LSTM语言模型示例进行研究。对我来说,它的一般功能非常​​清楚。但是我仍在努力理解调用的contiguous()作用,这在代码中多次发生。 例如,在代码的第74/75行中,创建了LSTM的输入和目标序列。数据(存储在中ids)为二维,其中第一维为批处理大小。 for i in range(0, ids.size(1) - seq_length, seq_length): # Get batch inputs and targets inputs = Variable(ids[:, i:i+seq_length]) targets = Variable(ids[:, (i+1):(i+1)+seq_length].contiguous()) 举一个简单的例子,当使用批处理大小1和seq_length10时inputs,targets如下所示: inputs Variable containing: 0 1 2 3 4 5 6 7 8 9 [torch.LongTensor of size 1x10] targets Variable containing: 1 2 3 4 …

3
pytorch中的重塑和视图有什么区别?
在numpy中,我们ndarray.reshape()用于重塑数组。 我注意到在pytorch中,人们torch.view(...)出于相同的目的而使用,但同时也torch.reshape(...)存在着。 所以我想知道它们之间有什么区别,什么时候应该使用它们中的任何一个?
83 pytorch 



4
如何在PyTorch中做矩阵乘积
在numpy中,我可以像这样做一个简单的矩阵乘法: a = numpy.arange(2*3).reshape(3,2) b = numpy.arange(2).reshape(2,1) print(a) print(b) print(a.dot(b)) 但是,当我使用PyTorch Tensors尝试此操作时,这不起作用: a = torch.Tensor([[1, 2, 3], [1, 2, 3]]).view(-1, 2) b = torch.Tensor([[2, 1]]).view(2, -1) print(a) print(a.size()) print(b) print(b.size()) print(torch.dot(a, b)) 此代码引发以下错误: RuntimeError:/Users/soumith/code/builder/wheel/pytorch-src/torch/lib/TH/generic/THTensorMath.c:503上的张量大小不一致 有什么想法可以在PyTorch中进行矩阵乘法吗?
70 python  matrix  pytorch 

2
pytorch模型中的参数如何不出现在计算图中?
我正在尝试更新/更改神经网络模型的参数,然后使更新的神经网络的正向传递在计算图中(无论我们进行了多少更改/更新)。 我尝试了这个想法,但是每当我这样做时,pytorch都会将更新的张量(在模型内部)设置为叶子,这会终止渐变流到我要接收渐变的网络。它杀死了梯度流,因为叶子节点不是我希望它们成为计算图形的一部分(因为它们不是真正的叶子)。 我已经尝试了多种方法,但似乎没有任何效果。我创建了一个自包含的虚拟代码,该代码打印了我希望具有渐变的网络的渐变: import torch import torch.nn as nn import copy from collections import OrderedDict # img = torch.randn([8,3,32,32]) # targets = torch.LongTensor([1, 2, 0, 6, 2, 9, 4, 9]) # img = torch.randn([1,3,32,32]) # targets = torch.LongTensor([1]) x = torch.randn(1) target = 12.0*x**2 criterion = nn.CrossEntropyLoss() #loss_net = nn.Sequential(OrderedDict([('conv0',nn.Conv2d(in_channels=3,out_channels=10,kernel_size=32))])) …

1
RuntimeError:输入类型(torch.FloatTensor)和权重类型(torch.cuda.FloatTensor)应该相同
我正在尝试按照以下方法训练以下CNN,但关于.cuda(),我一直遇到相同的错误,并且不确定如何解决它。到目前为止,这是我的大部分代码。 import matplotlib.pyplot as plt import numpy as np import torch from torch import nn from torch import optim import torch.nn.functional as F import torchvision from torchvision import datasets, transforms, models from torch.utils.data.sampler import SubsetRandomSampler data_dir = "/home/ubuntu/ML2/ExamII/train2/" valid_size = .2 # Normalize the test and train sets with torchvision …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.