加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

tf.initialize_all_variables()和tf.global_variables_initializer()的区别

(2018-01-26 10:25:58)
分类: tensorflow

注意对于 tf.initialize_all_variables() 接口,TensorFlow 文档有一个重要说明:

tf.initialize_all_variables(): THIS FUNCTION IS DEPRECATED. It will be removed after 2017-03-02. Instructions for updating: Use tf.global_variables_initializer instead.

tf.initialize_all_variables() 该函数将不再使用,在 2017年3月2号以后;

用 tf.global_variables_initializer() 替代 tf.initialize_all_variables()

1. 变量初始化

变量初始化的标准形式:

init = tf.initialize_all_variables()

sess = tf.Session()

sess.run(init)

当然也可简写为:

tf.Session().run(tf.initialize_all_variables())

如何有选择地初始化部分变量呢?使用 tf.initialize_variables(),比如要初始化v_6, v_7, v_8三个变量:

init_new_vars_op = tf.initialize_variables([v_6, v_7, v_8])

sess.run(init_new_vars_op)

2. 识别未被初始化的变量

用 try & except 语句块捕获:

uninit_vars = []

for var in tf.all_variables():

    try:

        sess.run(var)

    except tf.errors.FailedPreconditionError:

        uninit_vars.append(var)

init_new_vars_op = tf.initialize_variables(uninit_vars)

3. 变量的更新

>> state = tf.Variable(1, name='counter')

>> add_one = tf.add(state, tf.constant(1))

>> update = tf.assign(state, add_one)

>> with tf.Session() as sess:

        sess.run(tf.gloabl_variables_initializer())

        sess.run(state)

        for _ in range(3):

            sess.run(update)

            print(sess.run(state))

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有