0

我们正在研究 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),因此损失函数用来与我们的测试数据进行比较的输出。任何人都可以帮助我们吗?

4

1 回答 1

0

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

前任。

prediction = lasagne.layers.get_output(theano tensor)  
f = theano.function([Theano tensor],prediction)
X must be your data 
maps = f(X)
于 2017-04-15T11:16:27.683 回答