Tensorflow学习笔记(一)会话 常量 变量 占位符
基础知识
在观看了莫烦PYTHON和零起点Tensorflow所记录的一些笔记和心得,文中部分代码参考了上述链接。
Session(会话)
import tensorflow as tf # 以下所有代码默认导入
# 创建一个常量
hello = tf.constant('Hello,TF')
# 创建会话sess
sess = tf.Session()
print(sess.run(hello))
# 关闭Session
sess.close()
运行结果如下
b'Hello,TF'
Session 是 Tensorflow 为了控制,和输出文件的执行的语句. 运行 session.run()可以获得你要得知的运算结果, 或者是你所要运算的部分.
Session会话对象在使用完后需要关闭以释放资源,除了显示调用close()方法外,也可以使用“with”代码块来自动完成关闭动作。
如下:
# 创建一个常量
hello = tf.constant('Hello,TF')
# 创建会话sess
with tf.Session() as sess:
print(sess.run(hello))
Variable(变量)
import tensorflow as tf # 以下所有代码默认导入
# 创建一个常量
one = tf.constant(1)
# 创建一个变量
num = tf.Variable(4)
# 创建一个加法步骤,注意这里并没有直接计算
sum = tf.add(num,one)
# 初始化变量,如果定义Variable就必须初始化
init = tf.global_variables_initializer()
# 创建会话sess
with tf.Session() as sess:
sess.run(init)
print(sess.run(sum))
结果
5
在Tensorflow中如果定义变量Variable,那么初始化变量是最重要的!!
一定要初始化并运行*
init = tf.global_variables_initializer()
sess.run(init)
在计算tf.add()的时候x,y的数据类型必须相同,都是整型或浮点型不然就会运行出错,例如
# 创建一个常量
one = tf.constant(1.)
# 创建一个变量
num = tf.Variable(4)
TypeError: Input 'y' of 'Add' Op has type float32 that does not match type int32 of argument 'x'.
Placeholder(占位符)
import tensorflow as tf # 以下所有代码默认导入
# 创建一个变量
one = tf.Variable(2.0)
# 创建一个占位符,在Tensorflow中需要定义placeholder的type,一般为 float32形式
num = tf.placeholder(tf.float32,name='input')
# 创建一个加法步骤,注意这里并没有直接计算
sum = tf.add(num,one,name='output')
# 初始化变量,如果定义Variable就必须初始化
init = tf.global_variables_initializer()
# 创建会话sess
with tf.Session() as sess:
sess.run(init)
print(sess.run(sum,feed_dict={num:5.0}))
结果
7.0
Tensorflow 如果想要从外部传入data, 那就需要用到 tf.placeholder(), 然后以这种形式传输数据 sess.run(***, feed_dict={input: ***}). feed_dict 输入数据形式通常用 字典 形式传入.
希望这篇文章对您有帮助,感谢阅读!