我想知道如何从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)
我也对打印/重新获取矩阵或矢量的值感兴趣。
答案 0 :(得分:14)
您可以像这样获取共享变量的值:
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