会话的介绍|学习笔记

简介: 快速学习会话的介绍

开发者学堂课程【深度学习框架 TensorFlow 入门会话的介绍学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/773/detail/13541


会话的介绍


内容介绍

一、会话

二、初始化对象时的参数

三、会话的 run()

四、feed 操作


一、会话

一个运行 TensorFlow operation 的类,会话包含以下两种开启方式

tf.Session:用于完整的程序当中

tf.InteractiveSession:用于交互式上下文中的 TensorFlow,例如 shell

1、TensorFlow 使用  tf.Session 类来表示客户端程序(通常为 Python 程序,但也提供了使用基他语言的类似接口)与C++运行时

之间的连接

2、tf.Session 对象使用分布式 TensorFlow 运行时提供对本地计算机中的设备和远程设备的访问权限。


二、初始化对象时的参数

_init_ (target=", graph=None, config=None)

会话可能拥有的资源,如 tf.Variable, tf.QueueBase和 tf.ReaderBase。 当这些资源不再需要时,释放这些资源非常重要。

因此,需要调用 tf.Session.close 会话中的方法,或将会话用作上下

文管理器。以下两个例子作用是一样的:

def session. demo():

“”“

会话演示

:return:

““”

a_t = tf.constant(10)

b_t = tf.constant(20)

#不提倡直接运用这种符号运算符进行计算

#更常用 tensorf Low 提供的函数进行计算

#c_t-a_t+b_t

c_t = tf.add(a _t, b _t)

print("tensorflow 实现加法运算:\n", c_ t)

#开启会话

#传统的会话定义

# sess = tf.Sess ion()

# sum_t =sess.run(c _t)

# print("sum_ t:\n", sum_t)

# sess.close()

#开启会话

with tf.Session() as sess:

# sum_t = sess.run(c. _t)

#想同时执行多个tensor

print(sess.run([a_t, b_t, c_t]))

#方便获取张量值的方法

# print("在sess 当中的 sum_ t:\n",c_ t.eval())

#会话的图属性

print("会话的图属性: \n", sess.graph)

return None

target: 如果将此参数留空(默认设置),会话将仅使用本地计算机中的设备。可以指定 grpc://网址,以便指定 TensorFlow 服务器的地址,这使得会话可以访问该服务器控制的计算机上的所有设备。

graph: 默认情况下,新的 tf.Session 将绑定到当前的默认图。

config: 此参数允许您指定一个 tf.ConfigProto 以便控制会话的行为。例如,

ConfigProto 协议用于打印设备使用信息

代码如下:

#运行会话并打印设备信息

sess = tf. Session(config=tf.Conf igProto(allow_ soft_ placement=True ,

log_ device_ placement=True))

会话可以分配不同的资源在不同的设备上运行。

/job: worker/replica:0/task:0/device:CPU:0

device_type:类型设备(例如CPU,GPD,TPU)


三、会话的 run()

run(fetches,feed_ dict=None, options=None, run_metadata=None)

通过使用 sess.run()来运行operation。

fetches: 单一的 operation, 或者列表、元组(其它不属于 tensorflow 的类型不行)。

feed_ dict: 参数允许调用者覆盖图中张量的值,运行时赋值。

与 tf.placeholder 搭配使用, 则会检查值的形状是否与占位符兼容。

使用 tf.operation.eval()也可运行 operation,但需要在会话中运行

#创建图

a = tf.constant(5.0)

b=tf.constant(6.0)

c=a*b

#创建会话

sess=tf.Session()

#计算 C 的值

print(sess. run(c))

print(c. eval(session=sess))


四、feed操作

placeholder 提供 占位符,run 时候通过 feed_dict 指定参数

def session_ run. demo():

“””

会话的 run 方法: return:

“””

#定义占位符

a = tf.placeholder(tf. float32)

b = tf.placeholder(tf. float32)

sum_ ab = tf.add(a, b)

print("sum_ ab:\n", sum_ ab)

#开启会话

with tf.Session() as sess:

print("占位符的结果:

\n",sess. run(sum_ ab, feed_ dict={a: 3.0, b:4.0}))

turn None

请注息运行时候报的错误error:

RuntimeError: 如果这 Session 是无效状态(例如已关闭)。

TypeError: 如果 fetcheste 或者 feed_dict 键的类型不适合。

ValueError: 如果 fetches 或 feed_dict 键无效或引用 Tensor 不存在的键。

相关文章
|
设计模式 API 开发者
探索现代后端开发:微服务架构与API设计
【10月更文挑战第6天】探索现代后端开发:微服务架构与API设计
|
JSON 小程序 开发者
微信小程序--数字化会议OA系统之首页搭建
微信小程序--数字化会议OA系统之首页搭建
222 0
|
JSON 自然语言处理 算法
工业组态 + LLM : 大模型技术引领传统工业软件创新与实践(下)
工业组态 + LLM : 大模型技术引领传统工业软件创新与实践(下)
1142 0
|
运维 安全 网络协议
GScan - Linux安全入侵扫描工具
GScan - Linux安全入侵扫描工具
580 0
|
存储 前端开发 JavaScript
No14.精选前端面试题,享受每天的挑战和学习
No14.精选前端面试题,享受每天的挑战和学习
|
测试技术 开发工具 git
使用【Python】快速生成本项目的requeirments.txt
使用【Python】快速生成本项目的requeirments.txt
|
人工智能 JavaScript IDE
干货|app自动化测试之Appium 源码修改定制分析
干货|app自动化测试之Appium 源码修改定制分析
|
资源调度 应用服务中间件 Linux
npm私服安装教程 - verdaccio 入门
笔者安装的是 verdaccio@3.2.0,需要 node > 6.12.0, npm >=3.x 我们使用 pm2 来管理进程,需要全局安装 pm2
739 0
|
分布式计算 Java Hadoop
Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManag
5002 0