2016-01-23 61 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的阵列和火炬张量,没有磁盘保存,甚至没有内存复制之间进行。