我想知道如何从theano检索SharedVariable的尺寸。

这是这里不起作用:

from theano import *
from numpy import *

import numpy as np

w = shared( np.asarray(zeros((1000,1000)), np.float32) )

print np.asarray(w).shape
print np.asmatrix(w).shape

只返回
()
(1, 1)

我也对打印/导出矩阵或向量的值感兴趣。

最佳答案

您可以像这样获取共享变量的值:

w.get_value()

然后,这将工作:
w.get_value().shape

但这将复制共享变量的内容。要删除副本,您可以使用如下所示的借用参数:
w.get_value(borrow=True).shape

但是,如果共享变量在GPU上,则仍会将数据从GPU复制到CPU。要不这样做:
w.get_value(borrow=True, return_internal_type=True).shape

他们是执行此操作的一种更简单的方法,编译一个返回形状的Theano函数:
w.shape.eval()
w.shape返回一个符号变量。 .eval()将编译Theano函数并返回shape的值。

如果您想了解有关Theano如何处理内存的更多信息,请查看以下网页:http://www.deeplearning.net/software/theano/tutorial/aliasing.html

关于python - Theano:获取矩阵尺寸和值(SharedVariable),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22579246/

10-15 02:26