在this文章之后,我试图在pymc3的贝叶斯深度学习中实现Minibatches。我可以按照本文底部所述训练模型。但是,当我使用迷你批处理时,我不知道如何显示与不使用迷你批处理而产生的图片相似的图片。这需要预测网格上许多输入的值。作者将theano.shared
变量用于输入和输出(ann_input
,ann_output
),以便以后可以更改它们。根据{{3}},应该可以使用ann_input.set_value(grid_2d)
和
ann_output.set_value(dummy_out)
,即使它们是pm.Minibatch
,也与theano.shared
一样。但是,在pm.Minibatch
的情况下,它仅替换基础的theano.shared
变量,因此模型仅预测32个(最小批量大小)值。根据{{3}},我应该能够将输入替换为以下内容:
replacements = {ann_input:grid_2d, ann_output:dummy_out}
neural_network.out = theano.clone(neural_network.out, replacements)
(或者也许没有.out
?)
但是,(使用.out
)我得到ValueError: cannot reshape array of size 32 into shape (100,100)
,因此结果预测仍然只包含一个小批量的值。
我可能做的是完全错误的事情。 如何正确使用这些“网格”输入以便绘制图片?