TensorFlow常量、变量和占位符

tensorflow 占位符 tensorflow的占位符本质就是先声明数据类型,以便建立模型时申请内存。 在这里声明的:https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/python/ops/array_ops.py tf.placeholder( dtype, shape=None, name=None ) 需... 阅读详情

最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算。张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。



 

TensorFlow 支持以下三种类型的张量:

  1. 常量:常量是其值不能改变的张量。
  2. 变量:当一个量在会话中的值需要更新时,使用变量来表示。例如,在神经网络中,权重需要在训练期间更新,可以通过将权重声明为变量来实现。变量在使用前需要被显示初始化。另外需要注意的是,常量存储在计算图的定义中,每次加载图时都会加载相关变量。换句话说,它们是占用内存的。另一方面,变量又是分开存储的。它们可以存储在参数服务器上。
  3. 占位符:用于将值输入 TensorFlow 图中。它们可以和 feed_dict 一起使用来输入数据。在训练神经网络时,它们通常用于提供新的训练样本。在会话中运行计算图时,可以为占位符赋值。这样在构建一个计算图时不需要真正地输入数据。需要注意的是,占位符不包含任何数据,因此不需要初始化它们。

TensorFlow 常量

声明一个标量常量:

t_1 = tf.constant(4)

一个形如 [1,3] 的常量向量可以用如下代码声明:

t_2 = tf.constant([4,3,2])

要创建一个所有元素为零的张量,可以使用 tf.zeros() 函数。这个语句可以创建一个形如 [M,N] 的零元素矩阵,数据类型(dtype)可以是 int32、float32 等:

tf.zeros([M,N],tf.dtype)

例如:

zero_t = tf.zeros([2,3],tf.int32)
# Results in an 2x3 array of zeros:[[0 0 0],[0 0 0]]

还可以创建与现有 Numpy 数组或张量常量具有相同形状的张量常量,如下所示:



创建一个所有元素都设为 1 的张量。下面的语句即创建一个形如 [M,N]、元素均为 1 的矩阵:

tf.ones([M,N],tf,dtype)

例如:

ones_t = tf.ones([2,3],tf.int32)
# Results in an 2x3 array of ones:[[1 1 1],[1 1 1]]


更进一步,还有以下语句:

  • 在一定范围内生成一个从初值到终值等差排布的序列:

    tf.linspace(start,stop,num)

    相应的值为 (stop-start)/(num-1)。例如:

    range_t = tf.linspace(2.0,5.0,5)
    #We get:[2. 2.75 3.5 4.25 5.]

  • 从开始(默认值=0)生成一个数字序列,增量为 delta(默认值=1),直到终值(但不包括终值):

    tf.range(start,limit,delta)

    下面给出实例:

    range_t = tf.range(10)
    #Result:[0 1 2 3 4 5 6 7 8 9]


TensorFlow 允许创建具有不同分布的随机张量:

  1. 使用以下语句创建一个具有一定均值(默认值=0.0)和标准差(默认值=1.0)、形状为 [M,N] 的正态分布随机数组:



     

  2. 创建一个具有一定均值(默认值=0.0)和标准差(默认值=1.0)、形状为 [M,N] 的截尾正态分布随机数组:



     

  3. 要在种子的 [minval(default=0),maxval] 范围内创建形状为 [M,N] 的给定伽马分布随机数组,请执行如下语句:



     

  4. 要将给定的张量随机裁剪为指定的大小,使用以下语句:

    tf.random_crop(t_random,[2,5],seed=12)

    这里,t_random 是一个已经定义好的张量。这将导致随机从张量 t_random 中裁剪出一个大小为 [2,5] 的张量。

    很多时候需要以随机的顺序来呈现训练样本,可以使用 tf.random_shuffle() 来沿着它的第一维随机排列张量。如果 t_random 是想要重新排序的张量,使用下面的代码:

    tf.random_shuffle(t_random)

  5. 随机生成的张量受初始种子值的影响。要在多次运行或会话中获得相同的随机数,应该将种子设置为一个常数值。当使用大量的随机张量时,可以使用 tf.set_random_seed() 来为所有随机产生的张量设置种子。以下命令将所有会话的随机张量的种子设置为 54:

    tf.set_random_seed(54)

    TIP:种子只能有整数值。

TensorFlow 变量

它们通过使用变量类来创建。变量的定义还包括应该初始化的常量/随机值。下面的代码中创建了两个不同的张量变量 t_a 和 t_b。两者将被初始化为形状为 [50,50] 的随机均匀分布,最小值=0,最大值=10:

注意:变量通常在神经网络中表示权重和偏置。

下面的代码中定义了两个变量的权重和偏置。权重变量使用正态分布随机初始化,均值为 0,标准差为 2,权重大小为 100×100。偏置由 100 个元素组成,每个元素初始化为 0。在这里也使用了可选参数名以给计算图中定义的变量命名:



在前面的例子中,都是利用一些常量来初始化变量,也可以指定一个变量来初始化另一个变量。下面的语句将利用前面定义的权重来初始化 weight2:



变量的定义将指定变量如何被初始化,但是必须显式初始化所有的声明变量。在计算图的定义中通过声明初始化操作对象来实现:



每个变量也可以在运行图中单独使用 tf.Variable.initializer 来初始化:



保存变量:使用 Saver 类来保存变量,定义一个 Saver 操作对象:

saver = tf.train.Saver()

TensorFlow 占位符

介绍完常量和变量之后,我们来讲解最重要的元素——占位符,它们用于将数据提供给计算图。可以使用以下方法定义一个占位符:

tf.placeholder(dtype,shape=None,name=None)

dtype 定占位符的数据类型,并且必须在声明占位符时指定。在这里,为 x 定义一个占位符并计算 y=2*x,使用 feed_dict 输入一个随机的 4×5 矩阵:

解读分析

需要注意的是,所有常量、变量和占位符将在代码的计算图部分中定义。如果在定义部分使用 print 语句,只会得到有关张量类型的信息,而不是它的值。

为了得到相关的值,需要创建会话图并对需要提取的张量显式使用运行命令,如下所示:

print(sess.run(t_1))
#Will print the value of t_1 defined in step 1

拓展阅读

很多时候需要大规模的常量张量对象;在这种情况下,为了优化内存,最好将它们声明为一个可训练标志设置为 False 的变量:

t_large = tf.Varible(large_array,trainable = False)

TensorFlow 被设计成与 Numpy 配合运行,因此所有的 TensorFlow 数据类型都是基于 Numpy 的。使用 tf.convert_to_tensor() 可以将给定的值转换为张量类型,并将其与 TensorFlow 函数和运算符一起使用。该函数接受 Numpy 数组、Python 列表和 Python 标量,并允许与张量对象互操作。

下表列出了 TensorFlow 支持的常见的数据类型:



 

请注意,与 Python/Numpy 序列不同,TensorFlow 序列不可迭代。试试下面的代码:

for i in tf.range(10)

你会得到一个错误提示:

#typeError("'Tensor'object id not iterable.")

TensorFlow解析常量、变量和占位符 TensorFlow解析常量、变量和占位符 最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算。张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。 TensorFlow 支持以下三种类型的张量: 常量:常量是其值不能改变的张量。 变量:当一个量在会话中的值需要更新时,使用变量来表示。例如,在神经网络中,权重需要在训练期间更新,可以通过将权重声明为变量来实现。变量在使用前需要被显示初始化。另外需要注意的是,常量存储在计算图的定义中,每次加载 阅读详情

相关推荐

A Mathematical Framework for Transformer Circuits—(一)

transformer数学理解理论

qq_42208244的博客 2660

tensorflow学习之均方误差、标准差(tf.squared_difference()、tf.reduce_mean())

tf.squared_difference() 相关参数 x ,类型:张量 y ,类型:张量 name=None 类型:string , 运算名称 功能:计算张量 x、y 对应元素差的平方 import tensorflow as tf tf.compat.v1.disable_eager_execution() arr1 = [[1, 1], [4, 4]] x = tf.Variable(arr1, dtype=tf.float32) arr2 = [[3, 3], [3, 3]] y = tf.

捌椒的博客 2838

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7611

TensorFlow入门教程:7:方差/标准方差/样本标准方差/协方差

关于方差/标准方差/样本标准方差/协方差相关的基础知识,本文不再赘述,这里简单整理一下如何使用numpy进行相关计算。 方差/标准方差/样本标准方差/协方差 详细的介绍可以参看 https://blog.youkuaiyun.com/liumiaocn/article/details/80784584 验证数据 使用如下验证数据: 数列:[1, 2, 3, 4] 相关的方差等数值为 类别 说明 取...

知行合一 止于至善 9721

复合材料热压罐固化残余应力仿真与优化

复合材料在热压罐固化过程中产生的残余应力是影响构件性能的关键因素,尤其在航空航天和风电叶片等高端制造领域。通过多物理场耦合仿真技术,可以精确预测残余应力分布,优化工艺参数。顺序耦合方法分步求解热分析和结构分析,既保证了计算精度,又控制了成本。Abaqus等有限元工具在此过程中发挥重要作用,通过合理设置边界条件、材料属性和接触关系,能够有效模拟温度场和应力场的相互作用。工程实践中,这种仿真方法已成功应用于无人机机翼、卫星支架等实际项目,显著降低了固化变形和微裂纹风险。

weixin_33146151的博客 214

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api

lzy66666的博客 4775

tensorflow标准差方差_TensorFlow 线性回归

实验目的1.掌握使用TensorFlow进行线性回归2.掌握TensorFlow的基本运行流程实验原理线性回归是用来度量变量间关系的统计技术。该算法的实现并不复杂,但可以适用于很多情形。正是因为这些原因,以线性回归作为开始学习TensorFlow的开始。不管在两个变量(简单回归)或多个变量(多元回归)情形下,线性回归都是对一个依赖变量,多个独立变量xi,一个随机值b间的关系建模。利用TensorF...

weixin_35696112的博客 556

手把手教你用Pico4UE搭建100平米VR大空间:从设备检查、系统升级到地图绘制全流程

本文详细介绍了使用Pico4UE搭建100平米VR大空间的完整流程,包括设备检查、系统升级、地图绘制和性能优化等关键步骤。通过实战案例和专业技术建议,帮助用户高效部署企业级VR解决方案,适用于展厅漫游、工业仿真等多种场景。

weixin_28273593的博客 501

Tensorflow之占位符

占位符: 用于将值输入tensorflow图中, 搭配feed_dict一起用来输入数据.在训练神经网络时,通常用来提供新的训练样本.在会话中运行计算图时,可以为占位符赋值.这样在构建一个计算图时不需要真正的输入数据. 注意: 占位符不包含任何数据,因此,不需要初始化 使用方式: tf.placeholder(dtype, shape=None, name=None) 使用说明: dtype: 固...

遨游大海的猪 1176

DRAM知识整理系列(三):部分时序参数整理

一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t

不吃鱼的猫的博客 7万+

Python 爬虫实战:全球渔业船舶捕捞记录数据采集与分析全攻略

通过本项目,我们实现了对全球渔业船舶捕捞记录数据的采集、处理和可视化,为渔业资源管理和海洋生态保护提供了数据支持。未来,可以进一步结合机器学习和深度学习技术,对捕捞行为进行预测和分类,提高对非法捕捞活动的识别能力。

2201_76125261的博客 555

TensorFlow中张量,变量、常量、占位符概念

1、总结TensorFlow中的张量概念 张量:数据结构:多维数组 零阶张量表示标量(scalar),也就是一个数; 一阶张量为向量(vector),也就是一个数组; N阶张量可以理解为一个n维数组; 张量并没有真正保存数字,它保存的是计算过程 张量的属性 Tensor("Add:0", shape=(), dtype=float32) ·名字( name) “node:src_...

UN_spoken的博客 1225

YOLO11 改进、魔改|分组残差自注意力GRSA,通过分组残差优化 QKV 计算、指数空间映射优化位置偏差,在大幅降低自注意力模块参数和计算量的同时,增强特征关系与位置信息的表征能力

【摘要】研究人员提出GRSA(分组残差自注意力)机制,解决Transformer在图像超分辨率任务中效率与性能难以兼顾的问题。GRSA通过分组残差层减少自注意力参数冗余,同时采用指数空间相对位置偏差优化位置信息表征。实验表明,GRSA在降低50%参数量的同时保持模型性能,适用于目标检测和图像分割任务。在YOLO系列模型中集成GRSA可提升小目标检测精度,代码实现已开源,详细部署教程见相关视频与GitHub资源。该机制为轻量化Transformer模型提供了高效解决方案。

qq_64693987的博客 795

TensorFlow学习之常量、变量和占位符(二)

目录 TensorFlow支持一下三种类型的张量: TensorFlow常量 TensorFlow变量 TensorFlow占位符 TensorFlow支持一下三种类型的张量: 常量:常量是其值不能改变的张量。 变量:当一个量在会话中的值需要更新时,使用变量来表示。变量在使用前需要被显示初始化。另外需要注意的是,常量存储在计算图的定义中,每次加载时都会加载相关变量。换句话说,他...

qq_33589122的博客 431

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

tensorflow 入门之三 - 常量、变量和占位符

tensorflow 常量、变量和占位符

sw 476

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Tensorflow - Tensor张量(常量,变量,占位符)理解

常量 constant tf.constant()函数定义: def constant(value, dtype=None, shape=None, name="Const", verify_shape=False) value: 符合tf中定义的数据类型的常数值或者常数列表; dtype:数据类型,可选; shape:常量的形状,可选; name:常量的名字,可选; verify_shape:常量的形状是否可以被更改,默认不可更改; constant()函数提供在tensorflow中.

yiyi的博客 1360

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Tensorflow中常量、变量和占位符

常量 在TF中运算不会改变的单元,无需进行初始化操作的类型 创建语句: constant_name = tf.constant(value) 变量 在TF运行过程中会改变的单元,需要进行初始化操作。定义后无需人工赋值,系统根据算法模型,训练优化过程中自动调整变量对应的数值。特殊情况中如需人工更新,变量赋值语句如需: update_op = tf.assign(variable_to_be_upda...

weixin_45557849的博客 203

【TensorFlow】基本概念:张量、常量、变量、占位符、计算图

顾名思义,TensorFlow就是以张量(Tensor)在计算图(Graph)上流动(Flow)的方式的实现和执行机器学习算法的框架。它具有以下特点:灵活性。TensorFlow 不是一个严格的“神经网络”库(实际上TF的官方定位是 基于数据流图的科学计算库,而不仅仅是机器学习库)。只要可以将计算表示成数据流图,就可以使用TensorFlow,比如科学计算中的偏微分求解等。可移植性。

凝眸伏笔的博客 1775

常量数组 python_TensorFlow常量、变量和占位符详解

最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算。张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。TensorFlow 支持以下三种类型的张量:常量:常量是其值不能改变的张量。变量:当一个量在会话中的值需要更新时,使用变量来表示。例如,在神经网络中,权重需要在训练期间更新,可以通过将权重声明为变量来实现。变量在使用前需...

weixin_42522400的博客 256

TensorFlow笔记(二):TensorFlow常量、变量和占位符

目录常量变量tf.Variable类tf.get_variable()占位符 TensorFlow中用张量(Tensor)来表示所有的数据结构。张量,可以理解为一个n维矩阵,所有类型的数据都是通过张量来表示的。 本文所用的TensorFlow版本为1.15,以下资料参考自TensorFlow官方API 常量 常量与其他编程语言中的一样,是不可改变的张量。 tf.constant() tf.cons...

菜鸟不会飞 670

tensorflow生成常量_TensorFlow常量、变量和占位符详解

最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算。张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。TensorFlow 支持以下三种类型的张量:常量:常量是其值不能改变的张量。变量:当一个量在会话中的值需要更新时,使用变量来表示。例如,在神经网络中,权重需要在训练期间更新,可以通过将权重声明为变量来实现。变量在使用前需要被显示初...

weixin_39875516的博客 261

tensorflow中张量、常量、变量、占位符

引言 从实例出发 #先导入TensorFlow import tensorflow as tf # Create TensorFlow object called hello_constant hello_constant = tf.constant('Hello World!') with tf.Session() as sess: # Run the tf.constant ...

步步拾遗 3867

TensorFlow常量、变量和占位符详解

http://c.biancheng.net/view/1885.html

newbeixue的博客 218

Tensorflow深度学习:2.1.变量、常量和占位符

变量、常量和占位符1.概述2.TensorFlow 常量3.TensorFlow 变量4.TensorFlow 占位符4.1.解读分析5.拓展阅读 1.概述 最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算。张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。 TensorFlow 支持以下三种类型的张量: 常量:常量是其值不能改变的张量。 变量:当一个量在会话中的值需要更新时,使用变量来表示。例如,在神经网络中,权重需要在训练期间更新,可

ssshyeong的博客 608

TensorFlow常量、变量和占位符详解(学习笔记)

本文章只是学习笔记,不具有任何参考性 http://c.biancheng.net/view/1885.html学习网站 基本的TensorFlow提供了一个库定义和执行对张量的各种数学运算。 张量:可以理解为一个n维矩阵,所有类型的数据。包括标量,矢量和矩阵都是特殊类型的张量。 TensorFlow 支持一下三种类型的张量: 1.常量:常量是其值不能改变的张量 2.变量:当一个量在会话中的值需要更新时,使用变量来表示。例如,在神经网络中,权重需要在训练期间更新,可以通过将...

m0_50636760的博客 537

tensorflow生成常量_TensorFlow学习Program1——3.TF常量、变量和占位符详解+超参数及其调整...

一、TF常量、变量和占位符详解最基本的TensorFlow提供了一个库来定义和执行对张量的各种数学运算。张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。(对TF张量的理解非常有趣,[1]是标量;[1,2,3]、[1,2]是向量,类似于坐标向量(x1,y1,z1);实际二维矩阵是TF的矩阵;实际高维矩阵是TF的高维张量)TensorFlow 支持以下三种类型...

weixin_35748288的博客 389
上一篇: 张量,边,节点,图,会话,设备,变量
下一篇: tensorflow中的name_scope, variable_scope
linux_win
博客等级 码龄8年 4粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值