专栏名称: 人工智能头条
专注人工智能技术前沿、实战技巧及大牛心得。
目录
相关文章推荐
宝玉xp  ·  回复@LiXia99ye:主流模型都可以的, ... ·  昨天  
宝玉xp  ·  回复@想要一架梯子:官方 github ... ·  昨天  
爱可可-爱生活  ·  【[73星]Awesome-Multimod ... ·  昨天  
爱可可-爱生活  ·  本文通过引入同时考量计算与内存访问成本的Ki ... ·  3 天前  
51好读  ›  专栏  ›  人工智能头条

TensorFlow架构与设计:变量初始化

人工智能头条  · 公众号  · AI  · 2017-05-24 17:36

正文

请到「今天看啥」查看全文


初始化模型

Variable 是一个特殊的OP,它拥有状态(Stateful)。如果从实现技术探究, Variable 的Kernel实现直接持有一个 Tensor 实例,其生命周期与变量一致。相对于普通的Tensor实例,其生命周期仅对本次迭代(Step)有效;而Variable对多个迭代都有效,甚至可以存储到文件系统,或从文件系统中恢复。

此外,存在几个操作Variable的特殊OP,例如Assign, AssignAdd等。变量所持有的Tensor以引用的方式输入到Assign中,Assign根据初始值,就地修改Tensor内部的值,最后以引用的方式输出该Tensor。

一般地,在使用变量之前,必须对变量进行初始化。事实上,TensorFlow设计了一个精巧的变量初始化模型。Variable根据初始值(Initial Value)进行类型推演,并确定Tensor的形状(Shape)。另外,通过初始化器(Initializer)在初始化期间,将初始化值赋予Variable内部所持有Tensor,完成Variable的就地修改。

例如,变量 W 的定义如下。 tf.zeros([784,10]) 常称为初始值,它通过初始化器Assign,将W内部持有的Tensor以引用的形式就地修改为该初始值。

W = tf.Variable(tf.zeros([784,10]), name='W')

如果要读取变量的值,则通过 Identity 恒等变化,直接输出变量所持有的Tensor。但时, Identity 去除了Variable的引用标识,同时也避免了内存拷贝。


变量初始化模型

初始化过程






请到「今天看啥」查看全文