Tensorflow基本概念

简介:本文从Graph讲到Session,同时讲解了tf.constant创建tensor的用法和variable需要初始化的知识点,可以给你打好一个学习Tensorflow的基础。本文都是基于TensorFlow1.14.0的版本下运行。
本专栏将会系统的讲解TensorFlow在1.14.0版本下的各种用法并且会讲解各种常用的神经网络模型,希望能给大家带来一定的帮助,我也需要大家的关注
Tensorflow基本概念
- 1.1使用图Graphs表示计算任务
- 1.2 在被称之为会话Session的上下文Context中执行图
- 1.3 使用tensor表示数据
- 1.3.1 tf.constant的用法
- 1.4 通过变量vaiable维护状态
- 1.5 使用feed和fetch可以为任意的操作赋值或者从其中获取数据
- 沟通
- 致谢
1.1使用图Graphs表示计算任务
as_default是一种方便、规范地管理和使用自定义计算图,将相关操作准确添加到期望的计算图中的重要手段。
import tensorflow as tf
Graph_mean = tf.Graph()
with Graph_mean.as_default():# 在这个自定义图中定义两个常量a = tf.constant(5, name='a')b = tf.constant(3, name='b')# 定义一个加法操作c = tf.add(a, b, name='c')# 查看计算图中的操作
print(Graph_mean.get_operations())

在上述代码中:
首先通过 tf.Graph() 创建了一个新的计算图对象 graph。
然后使用 with graph.as_default() 上下文管理器,确保后续定义的操作都添加到这个自定义的计算图中。这里定义了两个常量 a 和 b,并通过 tf.add 操作将它们相加得到 c。
最后通过 graph.get_operations() 打印出这个计算图中的操作信息,可以看到包含了定义的常量和加法操作相关内容。
1.2 在被称之为会话Session的上下文Context中执行图
在下面这段代码中 通过tf.compat.v1.Session 定义一个会话,使用run来进行定义好的加法操作
import tensorflow as tf
Graph_mean = tf.Graph()
with Graph_mean.as_default():# 在这个自定义图中定义两个常量a = tf.constant(5, name='a')b = tf.constant(3, name='b')# 定义一个加法操作c = tf.add(a, b, name='c')with tf.compat.v1.Session(graph = Graph_mean) as cacluate:result = cacluate.run(c)print("计算结果:", result)

注意:网上跟TensorFlow的代码有很多,因为版本不同,有的时候会遇到warnings ,一些老版本的代码使用的是tf.Session,但是在1.14.0的版本中,对于老版本代码不再维护,推荐使用tf.compat.v1.Session来避免warnings,提醒大家是怕大家在阅读一些Github中找到的项目复制代码到自己的项目中。
1.3 使用tensor表示数据
1.3.1 tf.constant的用法
tf.constant(value, dtype=None, shape=None, name=‘constant’)
dtype:这是可选参数,用于指定张量的数据类型。
shape:也是可选参数,用于指定张量的形状。如果指定了形状,value的元素个数必须与形状所定义的元素个数一致。
name:同样是可选参数,用于给这个常量张量一个名字。
下面的代码展示了不同参数的作用
import tensorflow as tf
# 这是一个标量,也可以叫做零维张量
zero_dim_scalar = tf.constant(10,dtype=tf.float32)
# 创建一个一维张量
one_dim_tensor = tf.constant([1,2,3])
# 创建一个二维张量
two_dim_tensor = tf.constant([[1,2],[3,4]])
# 创建一个三维张量
tf.constant([[[1, 2], [3, 4]], [[5, 6], [7, 8]]],name='three_dim_tensor')with tf.compat.v1.Session()as cacluate:print(f"常量:{cacluate.run(zero_dim_scalar)}")print(f"一维张量:{cacluate.run(one_dim_tensor)}")print(f"二维张量:{cacluate.run(two_dim_tensor)}")print(f"三维张量:{cacluate.run(three_dim_tensor)}")

1.4 通过变量vaiable维护状态
在下面这段代码中,使用tf.Variable定义一个变量variable_element,给他定义了一个自增1 操作add_one_option,在会话中初始化以后,用for循环重复执行查看变量变化情况
import tensorflow as tf
# 定义一个Variable 变量叫做 variable_element
variable_element = tf.Variable(0, dtype=tf.int32)
# 定义一个使 variable_element自增1的操作
add_one_option = variable_element.assign_add(1)
# 使用variable需要先初始化
init_option = tf.global_variables_initializer()with tf.compat.v1.Session() as cacluate:cacluate.run(init_option)for i in range(5):cacluate.run(add_one_option)print("变量当前值:", cacluate.run(variable_element))

1.5 使用feed和fetch可以为任意的操作赋值或者从其中获取数据
在下面的代码实例中,定义了占位符,并且定义了平方操作,然后传入需要处理的数据
import tensorflow as tf
# 创建占位符
place = tf.compat.v1.placeholder(dtype = tf.int32,shape = [None])# 创建一个操作,计算向量中元素的平方
square_option = tf.square(place)with tf.compat.v1.Session() as sess:# 使用feed机制,将实际的数据传入占位符并执行操作,获取结果(fetch)input_data = [1, 2, 3]result = sess.run(square_option, feed_dict={place: input_data})print("计算结果:", result)

沟通
如果你们哪里有看不懂的地方可以积极和我沟通,我哪里讲的不够全了,哪里讲的不太对了,万事万物都是发展的,当你们有经验了以后,你们也会发现我的不足,希望我们能共同进步。
致谢
本文参考了一些博主的文章,博取了他们的长处,也结合了我的一些经验,对他们表达诚挚的感谢,使我对 TensorFlow的使用有更深入的了解,也推荐大家去阅读一下他们的文章。纸上学来终觉浅,明知此事要躬行:
TensorFlow创建常量(tf.constant)详解
tf.compat.v1.placeholder
相关文章:
Tensorflow基本概念
简介:本文从Graph讲到Session,同时讲解了tf.constant创建tensor的用法和variable需要初始化的知识点,可以给你打好一个学习Tensorflow的基础。本文都是基于TensorFlow1.14.0的版本下运行。 本专栏将会系统的讲解TensorFlow在1.14.0版本下的各…...
游戏引擎学习第九天
视频参考:https://www.bilibili.com/video/BV1ouUPYAErK/ 修改之前的方波数据,改播放正弦波 下面主要讲关于浮点数 1. char(字符类型) 大小:1 字节(8 位)表示方式:char 存储的是一个字符的 A…...
CondaError: Run ‘conda init‘ before ‘conda activate‘解决办法
已经执行了conda init,但是还是会报错CondaError: Run ‘conda init’ before ‘conda activate’ 原因:权限不够 解决办法:以管理员身份运行cmd,然后进入要操作的文件夹下,重新执行 conda init 和 conda activate 就可…...
如何提高谷歌浏览器的稳定性
谷歌浏览器是全球使用最广泛的网络浏览器之一,以其速度和易用性著称。然而,随着时间的推移,用户可能会遇到一些稳定性问题,比如页面加载缓慢、崩溃或意外关闭等。本文将提供一些实用的技巧来帮助你提高谷歌浏览器的稳定性…...
Spring基础之——控制反转(IOC)、依赖注入(DI)与切面编程(AOP)概念详解(适合小白,初学者必看)
前言 本篇博客讲详细介绍Spring框架中的两个最核心且最基础的概念:控制反转(IOC)和面向切面编程(AOP)。以及如何通过IDEA来构建一个Spring项目,通过实战和理论结合的方式来让大家真的学会Spring这个最流行的…...
java排序算法汇总
一、排序算法我介绍 1.1、介绍 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 1.2、排序的分类: 1) 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。 2) 外部排序法&…...
游戏引擎中LOD渲染技术
一.LOD(Level Of Detail) 为了降低GPU渲染压力,根据摄像机距离模型距离将面数较高的模型替换为面数较低的模型. LOD LOD0(distance<10) LOD1(distance<20) LOD2(distance<30) 故通常引擎中MetaMesh是由一个或多个LOD模型构成. MetaMesh mesh mesh.lod1 mesh.lod…...
【MacOS开发环境配置与应用开发--详细教程】
在macOS上进行应用开发,通常使用Xcode作为主要开发环境,Xcode集成了所有必需的工具和资源,支持多种编程语言,如Swift、Objective-C、C等。 MacOS开发环境配置与应用开发 1. 安装Xcode1.1 安装方法1.2 验证安装1.3 配置命令行工具…...
【回溯法】——组合总数
回溯核心思想 回溯算法的关键在于:不合适就退回到上一步具体的:通过枚举法,对所有可能性进行遍历,枚举顺序是一条路走到黑,走到头满足条件后,退一步,再尝试之前没走过的路,直到所有…...
JavaScript 自动化软件:AutoX.js
<div id"content_views" class"htmledit_views" deep"6"><p></p>...
探索Scala编程:图书管理系统实战
在这篇文章中,我们将通过一个简单的图书管理系统项目来深入理解Scala编程。这个项目不仅会帮助你掌握Scala的基本操作,还会让你了解如何使用Scala来处理实际问题。准备好了吗?让我们开始吧! 项目目标 我们的目标是创建一个图书管…...
Java之遍历List集合安全地删除元素
Java之遍历List集合安全地删除元素 在Java中,遍历一个List并安全地删除元素是一个需要注意的问题。因为直接在遍历过程中修改集合(如删除元素)可能会导致ConcurrentModificationException异常。这是因为集合的迭代器在检测到集合在迭代过程中…...
ceph的集群管理
0 环境说明 ip地址主机名额外硬盘是否加入ceph集群10.0.0.141ceph141sdb 300G,sdc 500G是10.0.0.142ceph142sdb 300G,sdc 500G, sdd 1000G否10.0.0.143ceph143sdb 300G,sdc 500G否 在上一篇文章中,已经成功地初始化了一个ceph管…...
STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。
使用 STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。 一、硬件设计 微控制器:选择 STM32F4 系列微控制器,如 STM32F407ZGT6,具有高性能和丰富的外设资源。 传感器模块&#x…...
Kettle配置数据源错误“Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found”解决记录
问题描述 错误提示:“Driver class ‘org.gjt.mm.mysql.Driver’ could not be found, make sure the ‘MySQL’ driver (jar file) is installed.” 原因分析: 根据错误提示是缺少了相关的数据源连接jar包。 解决方案: 安装对应的Mysql…...
二分搜索的三种方法
首先总的说一下二分搜索。如果区间具有二分性,这个二分性不仅仅是指区间是有序的,而是我们可以通过某一种性质将整个区间分成左区间和右区间。我们通过二分的方法去不断缩小查找的区间,最终让区间内没有元素,这个时候的我们就得到…...
使用python编写工具:快速生成chrome插件相关文件结构
本文将详细分析一段用 wxPython 编写的 Python 应用程序代码。该程序允许用户创建一些特定文件并将它们保存在指定的文件夹中,同时也能够启动 Google Chrome 浏览器并打开扩展页面,自动执行一些操作。 C:\pythoncode\new\crxiterationtaburl.py 全部代码…...
内存、显存和GPU在Transformer架构中承担什么计算任务
目录 内存、显存和GPU在Transformer架构中承担什么计算任务 一、内存、显存和GPU的区别 二、在Transformer架构中的计算任务 内存、显存和GPU在Transformer架构中承担什么计算任务 是计算机系统中重要的组成部分,它们在Transformer架构中承担着不同的计算任务。以下是对这…...
【计算机网络】TCP协议特点3
心跳机制 什么是心跳机制 心跳机制是在计算机系统、网络通信和许多其他技术领域广泛应用的一种机制,用于检测两个实体之间的连接是否仍然活跃,或者设备是否还在正常运行。就是每隔一段时间发送一个固定的消息给服务端,服务端回复一个固定…...
移植LVGL8.2以及移植过程的理解
一、LVGL刷新显示(画点 OR 区域刷新颜色) 原来LCD的区域填充,由于没用到DMA就是普通的遍历区域块的坐标,需要传入的坐标就是显示区域的x轴起始与x轴尾部。y轴的起始与y轴的尾部。 怎么实现呢? SPI不加DMA实现区域填充…...
ncmdump:突破NCM格式限制的音频转换解决方案
ncmdump:突破NCM格式限制的音频转换解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 问题场景:数字音乐格式的兼容性困境 在流媒体音乐服务普及的今天,网易云音乐采用的NCM加密格式成为了…...
如何突破信息壁垒?Bypass Paywalls Clean让优质内容触手可及
如何突破信息壁垒?Bypass Paywalls Clean让优质内容触手可及 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代,学术论文、深度报道和专业分…...
实时手机检测-通用部署指南:3步完成环境搭建与模型调用
实时手机检测-通用部署指南:3步完成环境搭建与模型调用 1. 环境准备与快速部署 1.1 系统要求 操作系统:Linux/Windows/macOS(推荐Ubuntu 20.04)Python版本:3.7-3.10GPU支持:NVIDIA显卡(可选&…...
DIYables WebApps:面向Arduino的嵌入式WebSocket Web应用框架
1. 项目概述DIYables WebApps 是一个面向教育与快速原型开发的嵌入式 Web 应用框架,专为 Arduino Uno R4 WiFi 与 DIYables STEM V4 IoT 平台深度优化。它并非传统意义上的“Web 服务器库”,而是一套硬件感知、内存敏感、即插即用的 WebSocket Web 应用容…...
Windows系统管理员必备:LastActivityView详细使用指南(含数据导出技巧)
Windows系统管理员必备:LastActivityView深度实战手册 作为Windows系统管理员,我们常常需要追踪用户活动、排查异常行为或进行合规审计。市面上虽然有不少商业监控工具,但NirSoft出品的LastActivityView以其轻量高效、数据全面且完全免费的特…...
技术小白AI入门避坑指南:避开4大雷区,高效进阶不走弯路
技术小白AI入门避坑指南:避开4大雷区,高效进阶不走弯路 前言:作为技术小白,入门AI的路上,最可怕的不是“基础薄弱”,而是“走偏方向”——明明付出了时间和精力,却因为踩中误区,要么…...
570-‘基于坠落机制改进的混沌麻雀算法SSACD‘在23个标准测试函数上可直接运行Matlab语言
570-基于坠落机制改进的混沌麻雀算法SSACD在23个标准测试函数测试可直接运行 Matlab语言 改进点如下: 1.首先,引入Sinusoidal混沌映射和变尺度混沌策略对种群进行初始化,提高种群多样性使算法具备跳出局部最优解的能力 2.其次,引入…...
OFA-Image-Caption赋能Android应用:移动端图像智能描述实战
OFA-Image-Caption赋能Android应用:移动端图像智能描述实战 你有没有想过,手机拍下一张照片,它就能立刻告诉你照片里有什么?对于视障朋友来说,这不仅仅是便利,更是打开世界的一扇窗。而对于内容平台&#…...
Session 的默认失效时间是多长?如何配置和修改?
Session 的默认失效时间是多久?如何配置和修改?1. 引言:停车场的“免费停车券”2. 前置知识:Session 是什么?它为什么需要“失效”?3. 默认失效时间是多少?4. Session 超时的工作原理5. 如何配置…...
Simulink模型到AUTOSAR RTE的‘最后一公里’:手把手教你处理ARXML接口冲突并自动配置ISOLAR
Simulink模型到AUTOSAR RTE的‘最后一公里’:手把手教你处理ARXML接口冲突并自动配置ISOLAR 在汽车电子软件开发中,Simulink与AUTOSAR工具链的集成已经成为行业标配。但当你满怀期待地将Simulink模型导出为ARXML文件,准备导入ISOLAR进行后续开…...
