2016-04-29 53 views
3

我已經在Python中構建了一個矩陣,具有data.shape的numpy數組是(249,230)。這裏一切似乎都很好。在Python中編寫矩陣,在火炬中讀取,發生了什麼問題

我把它寫入了一些簡單的代碼一個HDF5文件:

f = h5py.File("instructions.hdf5", "w") 
f.create_dataset('/instructions', data=data) 
f.close() 

現在我想這個數據,作爲我在火炬神經網絡的輸入。 (249個長度爲230的輸入樣本)。 所以我嘗試當我做印刷(#INPUT)來讀取這個文件HDF5到炬

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

但是我得到一個意外的結果,也有完全不同的數字:

1 
32 
32 
[torch.LongStorage of size 3] 

是否有人有一個想法出了什麼問題?

回答

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()