如何从 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)
我们正在研究用于 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)