用 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文件读入torch
local 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代码,代码如下

用python读/写kivy小部件属性

torch.mul() 、 torch.mm() 及torch.matmul()的区别

python怎么写矩阵

torch安装

Notes13C写文件,hal层,python读文件