8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

作者:Irain
QQ:2573396010
微信:18802080892
视频链接:第四讲 磨刀不误砍柴工:TensorFlow的基本运算

1 会话(session)

会话拥有并管理TensorFlow程序运行时的所有资源。当所有计算完成之后需要关闭会话帮助系统回收资源。

1.1 会话的模式 1

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践
需要明确调用Session.close函数来关闭会话并释放资源。

1.2 会话的模式 2

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践
不需要再调用Session. closeO函数来关闭会话。当上下文退出时会活关闭和资源释放也自动完成了。

1.3 指定默认的会话

TensorFlow不会自动生成默认的会话,需要手动指定。当默认的会话被指定之后可以通过tf.Tensor.eval函数来计算一个张量的取值。
8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践
下面代码也可以完成相同的功能。

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

1.4 交互式环境下设置默认会话

在交互式环境下,Python脚本 或者Jupyter编辑器下,通过设置默认会话来获取张量的取值,更加方便。
tf.InteractiveSession使用这个函数会自动将生成的会话注册为默认会话。
8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

2 变量赋值

●与传统编程语言不同,TensorF low中的变量定义后,-般无需人工赋值,系统会根据算法模型,训练优化过程中自动调整变量对应的数值。
●后面在将机器学习模型训练时会更能体会,比如权重Weight变量w,经过多次迭代,会自动调。
●特殊情况需要人工更新的,可用变量赋值语句。
变量更新语句:
update_op = tf.assign(variable_to_be_updated, new_value)

2.1 变量赋值案例

2.1.1 通过变量配位输出1、2. 3…10

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

2.1.2 通过TensorF low的变量赋值计算: 1+2+3+…+10

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

3 占位符placehoIder

●TensorF low中的Var iable变量类型,在定义时需要初始化,但有些变量定义时并不知道其数值,只有当真正开始运行程序时,才由外部输入,比如训练数据,这时候需要用到占位符。
●tf. placeholder占位符,是TensorF low中特有的一-种数据结构,类似动态变量,函数的参数、或者C语言或者Python语言中格式化输出时的“%”占位符。
8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

4 Feed提交数据和Fetch提取数据

4.1 Feed提交数据

如果构建了一个包含placehoIder操作的计算图,当在session中调用run方法时,placeholder占用的变量必须通过feed_dict参数传递进去,否则报错。
8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践
8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

4.1.1 多个操作可以通过一次Feed完成执行

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践

4.1.2 一次返回多个值分别赋给多个变量

8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践
feed的使用不需要初始化。
8 会话Session、变量赋值、占位符placehoIder、Feed提交数据和Fetch提取数据-深度学习应用开发-TensorFlow实践
发布:2020年6月17日