2016-01-23 91 views
0

我有一個.nrrd文件,我可以讀入python並保存爲np數組。我想在lua/torch中使用生成的數組,我將如何處理這個問題?或者有沒有辦法直接讀入lua的.n​​rrd文件?謝謝。將.nrrd文件讀入Lua

+0

剛剛找到了一個解決方案,使用名爲[npy4th]的包(https://github.com/htwaijry/npy4th)。 – mattdns

回答

1

正如評論,npy4th應該爲你想要的。無論如何,我還發現一個python庫,看起來更容易。

您可以用多種方式將結果導出到Lua中,如輸出到文本文件。我放下一些可能有用的網址。正如我所看到的,使用Python非常簡單,只需要import nrrdframes, options = nrrd.read("test.nrrd")

GitHub documentation for Pynrrd

1

現在你也可以嘗試lutorpy,本質上,你可以用噴燈和蟒蛇任何Lua庫。

轉換將完成與torch.fromNumpyArray(arr),你會得到一個火炬張量。還有另一個功能tensor.asNumpyArray(),幫助你轉換回numpy數組。

import lutorpy as lua 
import numpy as np 

xn = np.random.randn(100) 
## convert the numpy array into torch tensor 
tensor_xn = torch.fromNumpyArray(xn) 

# you can use torch tensor as well 
t = torch.DoubleTensor(10,3) 
print(t._size()) # the corresponding lua version is t:size() 

## convert torch tensor to numpy array 
arr = t.asNumpyArray() 
print(arr.shape) 

大多數情況下,轉換立即與共享內存的numpy的陣列和火炬張量,沒有磁盤保存,甚至沒有內存複製之間進行。