会话的介绍|学习笔记

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

开发者学堂课程【深度学习框架 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 不存在的键。

相关文章
|
4天前
|
人工智能 运维 安全
|
2天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
10天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
833 109
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
435 11
|
3天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
4天前
|
机器学习/深度学习 传感器 算法
Edge Impulse:面向微型机器学习的MLOps平台——论文解读
Edge Impulse 是一个面向微型机器学习(TinyML)的云端MLOps平台,致力于解决嵌入式与边缘设备上机器学习开发的碎片化与异构性难题。它提供端到端工具链,涵盖数据采集、信号处理、模型训练、优化压缩及部署全流程,支持资源受限设备的高效AI实现。平台集成AutoML、量化压缩与跨硬件编译技术,显著提升开发效率与模型性能,广泛应用于物联网、可穿戴设备与边缘智能场景。
188 127