用 Python 写矩阵,用 Torch 读,出了啥问题
Posted
技术标签:
【中文标题】用 Python 写矩阵,用 Torch 读,出了啥问题【英文标题】:Writing matrix in Python, reading in Torch, what goes wrong用 Python 写矩阵,用 Torch 读,出了什么问题 【发布时间】:2016-08-24 14:46:53 【问题描述】:我在 Python 中构造了一个矩阵,一个带有 data.shape 的 numpy 数组是 (249, 230)。在这里一切似乎都很好。
我用一些简单的代码将它写入一个 hdf5 文件:
f = h5py.File("instructions.hdf5", "w")
f.create_dataset('/instructions', data=data)
f.close()
现在我希望这些数据作为我在 Torch 中的神经网络的输入。 (249 个长度为 230 的输入样本)。 因此我尝试用
将此hdf5文件读入torchlocal datafile = hdf5.open('instructions.hdf5', 'r')
local input = datafile:read('/instructions'):all()
但是,当我执行 print(#input) 时,我得到了一个意想不到的结果,而且数字也完全不同:
1
32
32
[torch.LongStorage of size 3]
有人知道出了什么问题吗?
【问题讨论】:
【参考方案1】:我认为您可以尝试使用lutorpy 将 numpy 矩阵转换为 Torch 张量。 Lutorpy在python中有一个lua引擎,可以和torch共享numpy内存,这里是一个例子:
import numpy
import Image
## boot strap lutorpy
import lutorpy as lua
require('torch')
getImage = numpy.asarray(Image.open("image.jpg"))
a = torch.fromNumpyArray(getImage)
# now you can use your image as torch Tensor
# for example: use SpatialConvolution from nn to process the image
require("nn")
n = nn.SpatialConvolution(1,16,12,12)
res = n.forward(n, a)
print(res._size())
# convert back to numpy array
output = res.asNumpyArray()
【讨论】:
以上是关于用 Python 写矩阵,用 Torch 读,出了啥问题的主要内容,如果未能解决你的问题,请参考以下文章
将两行torch代码转为pytorch或python代码,代码如下