标签: torch

Torch中view()和unqueeze()有什么区别?

使用unsqueeze():

input = torch.Tensor(2, 4, 3) # input: 2 x 4 x 3
print(input.unsqueeze(0).size()) # prints - torch.size([1, 2, 4, 3])
Run Code Online (Sandbox Code Playgroud)

使用view():

input = torch.Tensor(2, 4, 3) # input: 2 x 4 x 3
print(input.view(1, -1, -1, -1).size()) # prints - torch.size([1, 2, 4, 3])
Run Code Online (Sandbox Code Playgroud)

根据文档,unqueeze()在作为参数给出的位置处插入singleton dim,而view()创建一个具有与之关联的存储的不同维度的视图tensor.

什么视图()的作用是明确的给我,但我无法从区别unsqueeze() .而且,我不知道何时使用view()以及何时使用unsqueeze()

任何有良好解释的帮助将不胜感激!

torch

18
推荐指数
1
解决办法
1万
查看次数

Lua中的()()语法是否有特殊含义

我在最近阅读的一些Lua源文件中看到了这种类型的语法,这是什么意思,特别是第二对括号一个例子,在https://github.com/karpathy/char-rnn/blob中的第8行 /master/model/LSTM.lua

local LSTM = {}
function LSTM.lstm(input_size, rnn_size, n, dropout)
  dropout = dropout or 0 

  -- there will be 2*n+1 inputs
  local inputs = {}
  table.insert(inputs, nn.Identity()())  -- line 8
  -- ...
Run Code Online (Sandbox Code Playgroud)

https://github.com/torch/nn/blob/master/Identity.lua的源代码nn.Identity

**********更新**************

()()模式在火炬库'nn'中使用了很多.第一对括号创建容器/节点的对象,第二对括号引用依赖节点.

例如,y = nn.Linear(2,4)(x)表示x连接到y,并且变换是从1*2到1*4的线性.我只是理解它的用法,它的连接方式似乎可以通过下面的答案之一来回答.

无论如何,接口的使用在下面有详细记录. https://github.com/torch/nngraph/blob/master/README.md

lua torch

17
推荐指数
2
解决办法
1892
查看次数

当通过命令行发送ctrl-c时,如何在lua中捕获ctrl-c

我想知道来自命令行的用户何时按下control-c,这样我就可以节省一些东西.

我该怎么做呢?我看了,但还没有看到任何东西.

注意:我对lua有点熟悉,但我不是专家.我主要使用lua来使用库Torch(http://torch.ch/)

lua luajit torch

17
推荐指数
2
解决办法
2487
查看次数

如何在Windows 8.1上安装Torch?

Torch是一种科学计算框架,广泛支持机器学习算法.由于简单快速的脚本语言,LuaJIT和底层的C/CUDA实现,它易于使用且高效.

问:

有没有办法在MS Windows 8.1上安装火炬?

lua luajit windows-8.1 torch

15
推荐指数
1
解决办法
3万
查看次数

pytorch,AttributeError:模块'torch'没有属性'Tensor'

我在具有CentOS Linux 7.3.1611(Core)操作系统的计算机上使用Python 3.5.1.

我正在尝试使用PyTorch,我开始学习本教程.

不幸的是,该示例的#4行会产生麻烦:

>>> torch.Tensor(5, 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'torch' has no attribute 'Tensor'
Run Code Online (Sandbox Code Playgroud)

我无法理解这个错误...当然在火炬中'火炬'确实有一个属性'Tensor'.同样的命令在Torch中有效.

我怎么解决这个问题?

python torch centos7 python-3.5 pytorch

14
推荐指数
1
解决办法
2万
查看次数

火炬中'cuda''cunn''cunn'和'cutorch'之间有什么区别和关系?

我看到许多火炬代码使用:

require cudnn
require cunn
require cutorch
Run Code Online (Sandbox Code Playgroud)

这些包用于什么?他们与Cuda的关系是什么?

cuda torch cudnn

13
推荐指数
1
解决办法
7393
查看次数

什么时候需要一个pytorch自定义函数(而不仅仅是一个模块)?

Pytorch初学者在这里!考虑以下自定义模块:

class Testme(nn.Module):
    def __init__(self):
        super(Testme, self).__init__()

def forward(self, x):
    return x / t_.max(x).expand_as(x)
Run Code Online (Sandbox Code Playgroud)

据我所知,文档:我相信这也可以作为一个自定义实现Function.子类Function需要一个backward()方法,但 Module不需要.同样,在线性的doc示例中Module,它取决于线性Function:

class Linear(nn.Module):
    def __init__(self, input_features, output_features, bias=True):
        ...    
    def forward(self, input):
        return Linear()(input, self.weight, self.bias)
Run Code Online (Sandbox Code Playgroud)

问题:我不明白之间的关系ModuleFunction.在上面的第一个清单(模块Testme)中,它是否应该有相关的功能?如果没有,那么就可以实现这个没有一个backward通过继承模块的方法,那么为什么一个Function总是需要一个backward方法是什么?

也许Functions仅适用于不是由现有火炬功能组成的功能?换句话说:Function如果他们的forward方法完全由先前定义的火炬函数组成,那么模块可能不需要关联?

torch pytorch

13
推荐指数
1
解决办法
3487
查看次数

Pytorch:将FloatTensor转换为DoubleTensor

我有2个numpy数组,我将其转换为张量以使用TensorDataset对象.

import torch.utils.data as data_utils

X = np.zeros((100,30))
Y = np.zeros((100,30))

train = data_utils.TensorDataset(torch.from_numpy(X).double(), torch.from_numpy(Y))
train_loader = data_utils.DataLoader(train, batch_size=50, shuffle=True)
Run Code Online (Sandbox Code Playgroud)

当我做:

for batch_idx, (data, target) in enumerate(train_loader):
    data, target = Variable(data), Variable(target)
    optimizer.zero_grad()
    output = model(data)               # error occurs here
Run Code Online (Sandbox Code Playgroud)

我得到了一个错误的错误:

TypeError:addmm_收到了一个无效的参数组合 - got(int,int,torch.DoubleTensor,torch.FloatTensor),但是期望的一个:[...]
*(浮点测试版,浮动阿尔法,火炬.DoubleTensor mat1,火炬. DoubleTensor mat2)不匹配,因为一些参数具有无效类型:(int,int,torch.DoubleTensor,torch.FloatTensor)
*(float beta,float alpha,torch.SparseDoubleTensor mat1,torch.DoubleTensor mat2)没有匹配,因为一些参数具有无效类型:(int,int,torch.DoubleTensor,torch.FloatTensor)

最后一个错误来自:

output.addmm_(0,1,input,weight.t())

正如你在我的代码中看到的那样,我尝试使用.double()来转换张量 - 但这不起作用.为什么他将一个数组转换为FloatTensor对象而另一个数组转换为DoubleTensor?有任何想法吗?

python torch pytorch

12
推荐指数
2
解决办法
2万
查看次数

运行时错误:后端 CUDA 的预期对象,但有后端 CPU 作为参数:ret = torch.addmm(torch.jit._unwrap_optional(bias), input, weight.t())

forward我的神经网络的功能(训练阶段完成后)正在执行时,我遇到RuntimeError: Expected object of backend CUDA but got backend CPU for argument #4 'mat1'.错误跟踪表明错误是由于调用output = self.layer1(x)命令而发生的。我试图将张量的所有数据移动到我的 GPU。似乎我也想念一些要移动的东西。

这是我尝试过的代码:

use_cuda = torch.cuda.is_available()
device = torch.device('cuda:0' if use_cuda else 'cpu')

class NeuralNet(nn.Module):

    def __init__(self, input_size, hidden_size, output_size):
        super(NeuralNet, self).__init__()
        self.layer1 = nn.Linear(input_size, hidden_size).cuda(device)
        self.layer2 = nn.Linear(hidden_size, output_size).cuda(device)
        self.relu = nn.ReLU().cuda(device)

    def forward(self, x):
        x.cuda(device)
        output = self.layer1(x)  # throws the error
        output = self.relu(output)
        output = self.layer2(output)
        return output


def main():
    transform = transforms.Compose([
        transforms.ToTensor()
    ]) …
Run Code Online (Sandbox Code Playgroud)

python torch pytorch tensor

12
推荐指数
1
解决办法
3万
查看次数

尽管升级到 CUDA 版本,但“断言错误:Torch 未在启用 CUDA 的情况下编译”

我发现这是一个受欢迎的问题,但我仍然找不到解决方案。

我正在尝试运行一个简单的 repo Here,它使用PyTorch. 虽然我刚刚从 pytorch.org ( 1.2.0)将我的 Pytorch 升级到最新的 CUDA 版本,但它仍然抛出相同的错误。我在 Windows 10 上使用 conda 和 python 3.7。

    raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
Run Code Online (Sandbox Code Playgroud)

如何解决问题?

这是我的conda list

# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0    anaconda
_pytorch_select           1.1.0                       cpu    anaconda
_tflow_select             2.3.0                       mkl    anaconda
absl-py                   0.7.1                    pypi_0    pypi
alabaster                 0.7.12                   py37_0    anaconda
anaconda                  2019.07                  py37_0    anaconda
anaconda-client           1.7.2                    py37_0    anaconda
anaconda-navigator        1.9.7                    py37_0    anaconda
anaconda-project …
Run Code Online (Sandbox Code Playgroud)

python conda torch pytorch

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

torch ×10

pytorch ×5

python ×4

lua ×3

luajit ×2

centos7 ×1

conda ×1

cuda ×1

cudnn ×1

python-3.5 ×1

tensor ×1

windows-8.1 ×1