TensorFlow入门(三、TensorFlow模型的运行机制)

news2024/11/26 13:38:47

TensorFlow通过"图"和会话的方式分离了计算的定义和执行,即它的运行机制是"定义"与"运行"相分离的。从操作层面可以把它抽象成两种:模型构建和模型运行。

TensorFlow模型中的几个概念:

①张量(tensor):数据,即某一类型的多维数组

②变量(Variable):常用于定义模型中的参数,是通过不断训练得到的值

③占位符(placeholder):输入变量的载体,也可以理解成定义函数时的参数

④"图"中的节点操作(operation,OP):即一个OP获得0个或多个tensor,执行计算,输出额外的0个或多个tensor

关于"图"的概念:

①一个"图"代表一个计算任务

②在模型运行的环节中,"图"将在会话(session)里被启动

③session将"图"的OP分发到如CPU或GPU之类的设备上,同时提供执行OP的方法。这些方法执行后,将产生的tensor返回。在Python语言中,返回的tensor是numpy ndarray对象,在C和C++语言中,返回的tensor是TensorFlow::Tensor实例

session与"图"的工作关系如下图所示:

"图"的运行情况有3种应用场景:

①训练场景:

即实现模型从无到有的过程,通过对样本的学习训练,调整学习参数,形成最终的模型。其过程是将给定的样本和标签作为输入节点,通过大量的循环迭代,将图中的正向运算(从输入的样本通过OP运算得到输出的方向)得到的输出值,再进行反向运算(从输出到输入的方向),以更新模型中的学习参数,最终使模型产生的正向结果最大化地接近样本标签。这样就得到了一个可以拟合样本规律的模型

②测试场景:

即利用"图"的正向运算得到的结果与真实值进行比较的过程

③使用场景:

即利用"图"的正向运算得到结果,并直接使用。该场景下,模型与函数相比,输入的样本就是实参,占位符就是形参,运算过程相当于函数体,得到的结果相当于返回值

session的建立使用

        session的建立共分为4种方法:

        ①创建对象实例

import tensorflow as tf

#定义一个常量
hello = tf.constant('Hello,Tensorflow!')
#建立一个session
sess = tf.Session()
#通过session里的run函数来运行结果
print(sess.run(hello))
#关闭session
sess.close()

        ②使用with语法

import tensorflow as tf

#定义两个常量
a = tf.constant(3)
b = tf.constant(4)

#建立session
with tf.Session() as sess:
    print("相加: %i"%sess.run(a + b))
    print("相乘: %i"%sess.run(a * b))


#with session的用法是最常见的,沿用了Python中with的语法,即当程序结束后会自动关闭session,而不需要再去写close

        ③使用交互式session方式

import tensorflow as tf

#定义两个常量
a = tf.constant(3)
b = tf.constant(4)
#建立一个有交互式功能的session
#运行结果
print(a.eval())
print(b.eval())
#关闭session
sess.close()

#一般在Jupyter环境下使用较多,具体用法与with session类似。不需要用session的run函数这种形式运行。而是定义好会话对象后,每次执行时,调用tensor.eval()即可

        ④使用Supervisor方式,该方式更高级一些,可以自动来管理session中的具体任务,例如,载入/载出检查点文件、写入TensorBoard等,另外该方法还支持分布式训练的部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1042667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Wi-Fi直连分享:Android设备间的高速连接

Wi-Fi直连分享:Android设备间的高速连接 引言 随着无线局域网(Wi-Fi)的普及和发展,使用Wi-Fi直连技术(P2P)在没有中间接入点的情况下实现设备间直接互联成为可能。通过Wi-Fi直连,具备相应硬件…

链动2+1模式:如何用二级分销打造高效团队,实现销量突破

你是否想要拥有一个高效的团队,让你的销量快速提升?你是否厌倦了传统的多层级分销模式,觉得它太复杂、太难管理、太不合规?你是否想要找到一种简单、合理、合法的商业模式,让你的收益稳定、可持续、可复制?…

【深度学习实验】卷积神经网络(三):自定义二维卷积神经网络:步长和填充、输入输出通道

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 步长、填充 a. 二维互相关运算(corr2d) b. 二维卷积层类(Conv2D) c. 模型测试 d. 代码整合 2. 输入输出通道 a…

前缀树-Trie树

前缀树—Trie树,也叫作“单词查找树”、“字典树” 它属于多叉树结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利…

【前段基础入门之】=>玩转【CSS】开篇章!

目录 CSS 的简介:CSS的编写位置行内样式内部样式外部样式 样式表的优先级CSS语法规范: 总结: CSS 的简介: 层叠样式表(Cascading Style Sheets,缩写为 CSS)是一种样式表语言,用来描述…

前端项目练习(练习-007-typescript-02)

学习前,首先,创建一个web-007项目,内容和web-006一样。(注意将package.json中的name改为web-007) 前面的例子,我们使用了nodejswebpack,成功创建了包含html,ts,css三个文…

【.net core】使用nssm发布WEB项目

nssm下载地址:NSSM - the Non-Sucking Service Manager 配置方式 修改服务在nssm工具下输入命令:nssm edit jntyjr 其中 jntyjr为添加服务时设置的Service name nssm可以设置任何以参数启动的应用程序以服务形式启动,通过设置参数内容启动服务 以上配置等同于执行…

ReferenceError: primordials is not defined错误解决

问题场景: 从github上拉了一个项目,想要学习一下,在起服务的时候出现了这个问题。 造成的原因: gulp 与 node 版本起冲突。 1)首先,安装 gulp,查看版本; npm install gulp -g g…

如何设计科研问卷?

问卷研究法的最大特点在于能在较短时间内调查很多研究对象取得大量的资料,并能对资料进行数量化处理,经济省时,因此是教育研究中使用频率较高、用途较广泛的一种研究方法。问卷研究法的关键在于设计一份信度、效度较高,内容合理的…

二维码怎么分解成链接?线上快速解码教学

怎么分解二维码呢?有些时候我们需要将二维码图片分解成链接使用,所以想要使用解码功能一般都需要通过二维码生成器工具来完成。那么如何在线将二维码分解成链接呢,可能有些小伙伴还不知道怎么操作,下面就给大家分享一下免费二维码…

较真儿学源码系列-PowerJob时间轮源码分析

PowerJob版本:4.3.2-main。 之前分析过PowerJob的启动流程源码,感兴趣的可以查看《较真儿学源码系列-PowerJob启动流程源码分析》 1 简介 试想一下,如果此时有一个需要延迟3s执行的任务,你会怎么实现呢?一种常规的思路…

洗地机哪个牌子好用又实惠?口碑最好的洗地机推荐

智能技术飞速发展的时代,扫地机器人这类智能家电其实也在顺应潮流和用户需求,不断更新迭代。暂且不说市面上现有多少个洗地机品牌,单单一个洗地机品牌旗下,其实每年都会有多个系列的新品亮相,我们面对的选择多了&#…

Python交叉验证实现

目录 <font colorblue size4 face"楷体">HoldOut 交叉验证<font colorred size4 face"楷体">K 折交叉验证<font colorblue size4 face"楷体">分层 K 折交叉验证<font colorblue size4 face"楷体">Leave P Out…

融云 CallPlus + X,通话场景一站式解决方案

融云近期上线的 CallPlus SDK&#xff0c;针对音视频呼叫场景单独设计后端服务 Call Server&#xff0c;信令延时低至 150ms&#xff0c;确保各端计时准确、一致&#xff1b;上线了音视频通话互转、灵活的多人通话、通话记录管理能力等功能。关注【融云全球互联网通信云】了解更…

掌动智能兼容性测试有哪些优势

兼容性测试为企业带来市场竞争优势&#xff0c;并提高用户满意度。在软件开发过程中&#xff0c;将兼容性测试作为一个重要的环节&#xff0c;将为企业的成功和用户满意度打下坚实的基础。那么&#xff0c;掌动智能兼容性测试的具体优势是什么?下面&#xff0c;就来看看具体介…

【面试题】说说你对 async和await 理解

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 async await详解 原理&#xff1a; async声明该函数是异步的&#xff0c;且该函数会返回一个…

比例导引详解(Proportional navigation guidance,PNG)-及Python程序

模型算法推导 比例导引是一种制导算法&#xff0c;其经典程度相当于控制器中的PID&#xff0c;在本文中&#xff0c;只对其二维平面的情况做分析&#xff0c;考虑一个拦截弹拦截机动目标&#xff08;固定目标相当于目标速度为0&#xff09;&#xff0c;其运动如下图所示&#…

变配电智能化系统:提高效率与安全性

随着科技的发展&#xff0c;电力系统正在逐步向智能化、数字化方向转型。变配电系统作为电力系统的重要组成部分&#xff0c;其智能化水平直接影响着电力系统的运行效率和稳定性。 一、系统概述 力安科技变配电智能化系统是一种采用先进技术&#xff0c;实现对变配电设…

DD5 进制转换

目录 一、题目 二、分析 三、代码 一、题目 进制转换_牛客题霸_牛客网 二、分析 三、代码 #include <iostream> #include <vector> #include <string> using namespace std; string Greater_than_Ten(int digit)//余数大于等于10的时候转换成对应的字母…

低照度增强算法(图像增强+目标检测+代码)

本文介绍 在增强低光图像时&#xff0c;许多深度学习算法基于Retinex理论。然而&#xff0c;Retinex模型并没有考虑到暗部隐藏的损坏或者由光照过程引入的影响。此外&#xff0c;这些方法通常需要繁琐的多阶段训练流程&#xff0c;并依赖于卷积神经网络&#xff0c;在捕捉长距…