
今天通过简单实例给大家介绍如何在 TensorFlow 中定义变量、常量和计算会话。并且会写一个简单事例。感谢教程提供者在网上无私奉献,希望自己将其进行传递。
定义变量
在 TensorFlow 中定义变量,我们学习语言中定义变量方式有所不同,需要通过 tf.Variable 显式声明为变量才是变量。
counter = tf.Variable(0, name='increment')
print(counter.name)
- 可以给初始值和名字,这里给名字为 increment
increment_1:0
下面运算是对一个变量进行每次自增 1 ,这个在我们平时写程序时候经常遇到,写起来也很简单,不过要用 TensorFlow 实现起来却有所不同而且比较繁琐。
import tensorflow as tf
counter = tf.Variable(0, name='increment')
one = tf.constant(1)
result = tf.add(counter,one)
updata = tf.assign(counter, result)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for _ in range(3):
sess.run(updata)
print(sess.run(counter))
- 定义常量 one 后通过调用 tf.add 对变量和常量进行加法运算
- 计算后输出结果为变量,需要通过 update 来赋值回给变量 counter
- 定义好运算我们一定不要忘记初始化,而且要用 Session 运行一下才能初始化我们的结构。
init = tf.global_variables_initializer()
和我们平时所了解有所差别也就是值得注意的是如果要输出 couter 运算后结果我们还需要调用 sess.run 一下,
计算单元(会话)
import tensorflow as tf
matrix1 = tf.constant([[3,3]])
matrix2 = tf.constant([[2],[2]])
multi = tf.matmul(matrix1,matrix2)
# 方法
sess = tf.Session()
result = sess.run(multi)
print(result)
sess.close()
注意这里 Session 是一个对象所以需要首字母大写,在计算结束我们可以一种优雅形式关闭计算会话。
with tf.Session() as sess:
result = sess.run(multi)
print(result)
传入变量
import tensorflow as tf
inputOne = tf.placeholder(tf.float32)
inputTwo = tf.placeholder(tf.float32)
output = tf.multiply(inputOne,inputTwo)
with tf.Session() as sess:
print(sess.run(output,feed_dict={inputOne:[2.],inputTwo:[3.]}))
我们是通过占位符 placeholder 预留变量位置供调用 run 方法时候进行输入
网友评论