我最近从Matlab / C ++迁移到theano并具有以下功能
train_model = theano.function([x_in, y_index],
classifier.cost,
updates=updates,
givens={
x: x_in,
y: y_in[y_index]})
我想在每次迭代中打印2层网之间的值(用于调试,更好地控制功能等) 我已经尝试编辑功能设置分类器,以便打印(使用print()或theano.printing.Print / theano.pp()),所有我得到的是在设置模型时的单个打印。
答案 0 :(得分:4)
在您的示例中,classifier.cost
是一个表达式,可能由构建在同一输入上的其他几个表达式组成。您可以将这些中间表达式中的任何一个转换为函数,就像使用classifier.cost
一样,例如
f_first_layer = theano.function([x], first_layer)
然后,您可以调用并打印此功能的输出,例如每次致电train_model
后。如果您在 train_model
之前使用相同的参数调用,之后只需调用train_model
,那么您将获得图层的确切输出,因为它们将通过train_model
(在train_model
之后调用它会因更新而不同。)