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

时间:2017-04-13 14:42:54

标签: python theano conv-neural-network lasagne tensor

我们正致力于实施3D卷积神经网络,用于分割3D医学图像。

我们已经与Lasagne和Theano建立了一个网络,成功建立了5D张量。我们想要提取实际的图像'作为来自这个张量的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),因此损失函数将其与我们的测试数据进行比较所需的输出。 任何人都可以帮助我们吗?

1 个答案:

答案 0 :(得分:0)

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

离。

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