【问题标题】:How to extract numpy arrays from Theano tensor?如何从 Theano 张量中提取 numpy 数组?
【发布时间】:2017-04-13 14:42:53
【问题描述】:

我们正在实施 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),所以损失函数用来与我们的测试数据进行比较的输出. 谁能帮助我们?

【问题讨论】:

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


    【解决方案1】:

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

    例如。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2016-10-30
      相关资源
      最近更新 更多