在Theano调试过程中,TensorSharedVariable类型变量可以用get_value方法和set_value方法获取和设置其值,至于TensorVariable类型变量是没有值的,无法直接获取,只能通过提前赋值或者打印的方法来看。
对于TensorSharedVariable,在调试过程中使用get_value就可以查看,例如我们可以查看MNIST数据集中训练集的尺寸:
同理还可以查看交叉验证集以及测试集的shape。但是如果同样的方法对train_set_y(训练集标号)就不行,因为它是TensorVariable,没有共享,即保存在GPU内寸中。
那在调试过程中,要如何查看TensorVariable值呢?可以通过tag.test_value,即定义theano变量x时,赋值给x.tag.test_value。如下代码:
from theano import config在调试过程中,可以通过tag.test_value来查看theano变量,如下图:
from theano import tensor as T
config.compute_test_value = 'raise'
import numpy as np
import theano
x = T.vector()
x.tag.test_value = np.array([1,2],dtype=theano.config.floatX)
x.tag.test_valuey = T.vector()
y = x+x
print y.tag.test_value
除了这种方法还可以通过theano.printing.Print()函数,更详细的可以参看官网教程:Debugging Theano:FAQ and Troubleshooting
如果这篇文章对你有帮助,可以点个赞或者关注我,我会有更有动力分享学习过程,谢啦~