tensorflow学习(2)- 变量的使用

前言

tensorflow学习(1)
上一节了解了下tensorflow的一些代码,这一节学习下tensorflow的变量的使用。

代码一

import tensorflow as tf
#定义一个变量
x = tf.Variable([1,2])
#定义一个常量
a = tf.constant([3,3])
#定义一个减法的op
#shift + tab连续两次查看详情
sub = tf.subtract(x,a)
#增加一个加法的op
add = tf.add(x,sub)
#初始化全局变量
init = tf.global_variables_initializer()
#定义会话
with tf.Session() as sess:
    #执行初始化
    sess.run(init)
    print(sess.run(sub))
    print(sess.run(add))

注意事项

  • x = tf.Variable([1,2])定义变量时,Variable首字母大写。
  • 鼠标光标在某个函数上,shift + tab连续两次可以查看详情
  • 使用Variable定义变量需要tf.global_variables_initializer() 这个操作来初始化,否则将报错Attempting to use uninitialized value Variable_3
  • 如果将上述代码中的Variable改成constant则可以不用初始化

代码二

#创建一个变量初始化为0
state = tf.Variable(0,name = 'counter')
#创建一个op,是state加一
new_state = tf.add(state,1)
#赋值操作
update = tf.assign(state,new_state)

#初始化全局变量
init = tf.global_variables_initializer()

with tf.Session() as sess:
    #执行初始化
    sess.run(init)
    print(sess.run(state))
    for i in range(5):
        sess.run(update)
        print(sess.run(state))

注意事项

  • 用shift+tab可以查看函数的详情基本上都有一个隐藏的参数name = none,所以可以用tf.Variable(0,name = ‘counter’)这个方式给参数起名字,具体使用后续讲。
  • tensorflow的赋值方式update = tf.assign(state,new_state),不可以使用=来赋值。
  • tensorflow通过会话中的run来更新变量,执行变量赋值等操作,上述代码中for循环里的sess.run(update),先执行state = tf.Variable(0,name = ‘counter’),然后执行new_state = tf.add(state,1),然后执行update = tf.assign(state,new_state)最后执行sess.run(update)。
发布了53 篇原创文章 · 获赞 5 · 访问量 2216

猜你喜欢

转载自blog.csdn.net/qq_37668436/article/details/104793769