在Python中编写矩阵,在Torch中读取,出了什么问题

时间:2016-04-29 12:27:19

标签: python hdf5 torch

我在Python中构建了一个矩阵,一个带有data.shape的numpy数组是(249,230)。这里的一切似乎都很好。

我用一些简单的代码将它写入hdf5文件:

GET /static/x/images/lolcat.jpg HTTP/1.1
Host: example.com

现在我希望这些数据作为Torch神经网络的输入。 (249个长度为230的输入样本)。 因此,我尝试用

将这个hdf5文件读入火炬
f = h5py.File("instructions.hdf5", "w")
f.create_dataset('/instructions', data=data)
f.close()

然而,当我打印(#input)时,我得到一个意想不到的结果,也有完全不同的数字:

local datafile = hdf5.open('instructions.hdf5', 'r')
local input = datafile:read('/instructions'):all()

有人知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

我认为您可以尝试使用lutorpy将numpy矩阵转换为火炬张量。 Lutorpy在python中有一个lua引擎,能够用火炬分享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()