深度学习(三)--session对话和operation操作

简介: 深度学习(三)--session对话和operation操作


Session对话


一、session的第一种模式:

import tensorflow as tf
# 定义一个计算图
tens1 = tf.constant([1, 2, 3])
# 创建一个会话
sess = tf.Session()
# 我们通过使用这个对话来实现计算图的计算
print(sess.run(tens1))
# 最后要关闭这个对话
sess.close()


需要明确调用 session.close()来关闭会话并且释放资源,当程序因为异常退出时,关闭会话函数可能就不会被执行从而导致资源的泄漏


升级一下代码:

import tensorflow as tf
# 定义一个计算图
tens1 = tf.constant([1, 2, 3])
# 创建一个会话
sess = tf.Session()
try:
    # 我们通过使用这个对话来实现计算图的计算
    print(sess.run(tens1))
except:
    print("发生异常")
finally:
    # 最后要关闭这个对话
    sess.close()



二、Session的第二种模式


import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
result = tf.add(node1, node2)
# 创建一个会话,并通过python的上下文管理器来管理这个会话
with tf.Session() as sess:
    print(sess.run(result))
# 此时不需要调用sess.close()函数来结束会话
# 会话会随着上下文管理器的的关闭而自动释放


我们第二种模式是通过python的上下文管理器来创建管理这个会话session,此时是不需要手写来关闭这个session,因为它会随着上下文管理器的关闭而自动结束并且自动释放资源。


三、指定默认会话

import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
result = tf.add(node1, node2)
sess = tf.Session()
# 指定默认会话
with sess.as_default():
    print(result.eval())
sess = tf.Session()
# 这样也是可以直接进行计算的
print(result.eval(session=sess))


tensorflow不会生成默认的会话,需要手动指定,当默认的会话指定之后,可通过eval()函数来计算一个张量的取值


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


  • 在交互式环境下,python脚本和jupter编辑器下,通过设置默认会话来获取张量的取值更加方便


  • 使用 tf.InteractiveSession() 会自动将生成的会话注册为默认会话


import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
result = tf.add(node1, node2)
sess = tf.InteractiveSession()
print(result.eval())
sess.close()


operation操作


这里给大家总结一下啥是操作,总的来说也就这几点啦:


   • 计算图中的节点就是操作(Operation)

   • 一次加法是一个操作,一次乘法也是一个操作

   • 构建一些变量的初始值也是一个操作

   • 每个运算操作都有属性,它在构建图的时候需要确定下来

   • 操作可以和计算设备绑定,指定操作在某个设备上执行

   • 操作之间存在顺序关系,这些操作之间的依赖就是“边”

   • 如果操作A的输入是操作B执行的结果,那么这个操作A就依赖于操作B

相关文章
|
6天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【深度学习】Tensorflow、MindSpore框架介绍及张量算子操作实战(超详细 附源码)
【深度学习】Tensorflow、MindSpore框架介绍及张量算子操作实战(超详细 附源码)
71 0
|
6天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Reduction归约和自动微分操作讲解及实战(附源码 超详细必看)
PyTorch深度学习基础之Reduction归约和自动微分操作讲解及实战(附源码 超详细必看)
55 0
|
7月前
|
机器学习/深度学习 算法 计算机视觉
卷积操作的概念及其在深度学习中的应用
卷积操作的概念及其在深度学习中的应用
132 0
|
10月前
|
机器学习/深度学习 计算机视觉 Python
深度学习图像操作 PIL opencv
深度学习图像操作 PIL opencv
76 0
|
机器学习/深度学习 Linux
Linux下安装gmp6.2.1的详细操作(深度学习)
Linux下安装gmp6.2.1的详细操作(深度学习)
365 0
Linux下安装gmp6.2.1的详细操作(深度学习)
|
机器学习/深度学习
当深度学习搭上一双鞋,有人要用这检测你的压力水平!可无线操作,准确率达84%
当深度学习搭上一双鞋,有人要用这检测你的压力水平!可无线操作,准确率达84%
当深度学习搭上一双鞋,有人要用这检测你的压力水平!可无线操作,准确率达84%
|
机器学习/深度学习 数据可视化 计算机视觉
直观理解深度学习的卷积操作,超赞!
在本文中,我们将逐步分解卷积操作的原理,将他与标准的全连接网络联系起来,并且探索如何构建一个强大的视觉层次,使其成为高性能的图像特征提取器。
4971 0
|
机器学习/深度学习 数据挖掘 测试技术
惊!C++竟然还能有这种操作——高性能深度学习库(DLL)
C++也能玩转深度学习了?没错,高性能C++深度学习库(DLL)已经发布了,本文作者为了满足自己的需求,开发了支持C++接口的深度学习库。作者特意用了两个小例子让你见识一下C++也能玩转深度学习,而且玩的比其他库还要6!
6188 0
|
22小时前
|
机器学习/深度学习 传感器 算法
深度学习在图像识别中的应用与挑战
【5月更文挑战第20天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心动力,尤其在图像识别任务中展现出了非凡的能力。本文将探讨深度学习技术在图像识别中的应用,涉及的关键算法如卷积神经网络(CNN),以及在实际应用中遇到的挑战和解决方案。通过分析现有文献和最新研究成果,我们将概述深度学习如何推动图像识别的边界,并讨论未来的发展方向。
|
22小时前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶领域的应用进展
【5月更文挑战第20天】 随着人工智能技术的飞速发展,深度学习在图像识别领域取得了显著成果。这些进展为自动驾驶技术的安全性与可靠性提供了强大的技术支持。本文综述了深度学习在图像识别中的关键算法,分析了其在自动驾驶环境感知、决策制定和控制系统中的应用,并探讨了当前技术面临的主要挑战及潜在的解决策略。通过实验验证,深度学习模型表现出卓越的性能,推动了自动驾驶技术的进一步发展。