首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以存储中间结果吗?

问我可以存储中间结果吗?
EN

Stack Overflow用户
提问于 2016-10-16 20:10:48
回答 1查看 104关注 0票数 1

我希望存储中间结果,以避免对一件事进行多次计算。我要找的东西是这样的:

代码语言:javascript
复制
    h1_activ = sigmoid(self.bias_visiblie + T.dot(D, self.W))
    h1_sample = h1_activ > rnds.uniform((n_samples, self.n_hidden )) 

    f_h1_sample = theano.function(
        inputs=[D],
        outputs=h1_sample,
        # I'd like to take the result from 'h1_sample' and store it into 'H1_sample'
        updates=[(self.H1_sample, ??? )] 
    )

上面的代码当然不会运行,但是有没有办法这样做呢?将中间值存储到共享变量中?

EN

回答 1

Stack Overflow用户

发布于 2016-10-17 15:46:17

您可以在相同的theano.function中编写使用相同中间结果的最终结果。

例如:

代码语言:javascript
复制
h1_activ = sigmoid(self.bias_visiblie + T.dot(D, self.W))
h1_sample = h1_activ > rnds.uniform((n_samples, self.n_hidden )) 
# h2_sample use the intermediate result h1_sample.
h2_sample = h1_sample * 2

f_h1_sample = theano.function(
    inputs=[D],
    outputs=[h1_sample, h2_sample],
)

h2_smaple是使用h1_sample的最终结果。

您还可以保存中间结果,并将它们用作另一个theano.function中的输入。

不同的theano.function对应不同的计算图。我认为不同的计算图之间不能共享任何计算。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40070098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档