long THTensor_(storageOffset)(const THTensor *self)
{
return self->storageOffset;
}
Run Code Online (Sandbox Code Playgroud)
这是一个预处理器的东西,还是具体的lua?我认为这个想法与"类"中storageOffset的一种排序方法有关THTensor,但我从未见过这种语法.
请参阅https://github.com/torch/nn/blob/master/generic/Tanh.c
例如,
static int nn_(Tanh_updateOutput)(lua_State *L)
{
THTensor *input = luaT_checkudata(L, 2, torch_Tensor);
THTensor *output = luaT_getfieldcheckudata(L, 1, "output", torch_Tensor);
THTensor_(resizeAs)(output, input);
if (input->nDimension == 1 || !THTensor_(isContiguous)(input) || !THTensor_(isContiguous)(output))
{
TH_TENSOR_APPLY2(real, output, real, input, \
*output_data = tanh(*input_data););
}
else
{
real* ptr_output = THTensor_(data)(output);
real* ptr_input = THTensor_(data)(input);
long i;
#pragma omp parallel for private(i)
for(i = 0; i < THTensor_(nElement)(input); i++)
ptr_output[i] = tanh(ptr_input[i]);
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
首先,我不知道如何解释第一行:
static int nn_(Tanh_updateOutput)(lua_State *L)
Run Code Online (Sandbox Code Playgroud)
这里的论点是什么?Tanh_updateOutput是指什么?"nn_"有特殊含义吗?
第二,"TH_TENSOR_APPLY2"和"THTensor _(...)"都被使用,但我看不到它们的定义?此文件中没有其他内容?
我有一些非常大的数据集,我想加载到Torch.但在运行学习算法之前,我无法将它们完全加载到内存中.
我该怎么做才能最大限度地提高性能
当我跑;
require 'cutorch'
Run Code Online (Sandbox Code Playgroud)
在lua中,它会自动为GPU中的两个核心分配两个进程.例如,我得到以下输出nvidia-smi;
---------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
| 1 6091 C /home/msmith/torch/install/bin/qlua 98MiB |
| 2 6091 C /home/msmith/torch/install/bin/qlua 99MiB |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
我希望能够控制进程中的GPU.我试过了;
cutorch.setDevice(<Device Number>)
Run Code Online (Sandbox Code Playgroud)
但这只会在GPU上创建更多进程.
谢谢.
我如何在火炬的柱子上总结?我有一个128*1024张量,我希望通过对所有行求和得到1*1024张量.
例如:a:
1 2 3
4 5 6
我想要b
5 7 9
在卷积模块中,许多参数可能改变输入的维数.有没有办法获得卷积模块输出的维数,或者通常是任何模块的维数?
我试着看看暴露的方法,SpatialConvolution但没有一个建议给我这些信息.
而且,输出张量似乎有这些维度:
conv1 = nn.SpatialConvolution(3, 96, 5, 5, 1, 1, 2, 2)
conv1.id = 'conv1'
print(conv1.output:size())
[torch.LongStorage of size 0]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我意识到我甚至没有设置输入维度,除了通道的数量(可能3x32x32).怎么设置呢?为什么不强制要求?
我有一个,ByteTensor并希望获得有一个指数1.在numpy,我可以做类似的事情
a = np.array([1,0,1,0,1])
return np.where(a)
Run Code Online (Sandbox Code Playgroud)
哪会回来(array([0, 2, 4]),).这个功能是在Torch中定义的吗?
(在我的特定情况下,我想使用这些索引来索引几个不同的Tensor对象,但是知道如何通常这样做会很好.)
我用luarocks安装了'image'包
$ luarocks install image
Run Code Online (Sandbox Code Playgroud)
一切都安装没有任何错误.每当我尝试使用它时,都会返回以下错误:
> th> require('image')
>
> /home/khurram/torch/install/share/lua/5.1/trepl/init.lua:384:
> /home/khurram/torch/install/share/lua/5.1/trepl/init.lua:384: module
> 'sys.fpath' not found:No LuaRocks module found for sys.fpath no field
> package.preload['sys.fpath'] no file
> '/home/khurram/.luarocks/share/lua/5.1/sys/fpath.lua' no file
> '/home/khurram/.luarocks/share/lua/5.1/sys/fpath/init.lua' no file
> '/home/khurram/torch/install/share/lua/5.1/sys/fpath.lua' no file
> '/home/khurram/torch/install/share/lua/5.1/sys/fpath/init.lua' no
> file './sys/fpath.lua' no file
> '/home/khurram/torch/install/share/luajit-2.1.0-beta1/sys/fpath.lua'
> no file '/usr/local/share/lua/5.1/sys/fpath.lua' no file
> '/usr/local/share/lua/5.1/sys/fpath/init.lua' no file
> '/home/khurram/.luarocks/lib/lua/5.1/sys/fpath.so' no file
> '/home/khurram/torch/install/lib/lua/5.1/sys/fpath.so' no file
> '/home/khurram/torch/install/lib/sys/fpath.so' no file
> './sys/fpath.so' no file '/usr/local/lib/lua/5.1/sys/fpath.so' no …Run Code Online (Sandbox Code Playgroud) 我开始使用手电筒7,并且要对数据集进行分类。我已经制作了像素图像和相应的标签。但是,我不知道如何将这些数据输入到割炬中。我从其他人那里读取了一些代码,发现它们正在使用扩展名为'.t7'的数据集,我认为这是张量类型。这样对吗?我不知道如何将我的像素图像(实际上是我通过使用MNIST数据集使用Matlab制作的)转换为与割炬兼容的t7扩展名。必须有t7格式的数据集结构,但我找不到它(标签也是如此)。
总而言之,我有像素图像和标签,并希望将其转换为与手电筒兼容的t7格式。
提前致谢!
我正在尝试将一些userdata打印出来作为一个字符串,但lua的文档相当弱到不存在.如何将userdata变量转换为字符串,以便将其写入文件?