如何从 Theano 张量中提取 numpy 数组?

How to extract numpy arrays from Theano tensor?

我们正在研究用于 3D 医学图像分割的 3D 卷积神经网络的实现。

我们用Lasagne和Theano构建了一个网络,成功构建了一个5D张量。我们想从这个张量中提取实际的 'images' 作为 3D numpy 数组,以查看分段地图的实际外观。

我们得到这样的输出:

prediction = lasagne.layers.get_output(layer)

然后定义损失、更新等

并像这样定义 theano 函数:

train_fn = theano.function([input_var, target_var], loss, updates=updates)

然后我们在 for 循环中训练网络:

for epoch in range(10):
  loss = train_fn(train_data, train_seg)
  print("Epoch %d: Loss %g" % (epoch + 1, loss))

我们试过像这样使用 eval 函数:

print(eval('prediction[2]'))

输出:

Subtensor{int64}.0

但我们真正想要得到的是网络的实际输出(根据我们的输入,它们的大小应该是 24*160*160),所以损失函数用来与我们的比较的输出测试数据。 谁能帮帮我们?

预测只是一个theano张量。你所要做的就是通过 theano 函数调用它,就像你对损失变量所做的那样。

例如。

prediction = lasagne.layers.get_output(theano tensor)  
f = theano.function([Theano tensor],prediction)
X must be your data 
maps = f(X)