TensorFlow 基础

TensorFlow 中的基本数据类型,它包含了数值型、字符串型和布尔型。

一、数值类型

  1. 标量
    标量(Scalar) 单个的实数,如1.2, 3.4 等,维度数(Dimension,也叫秩)为0,shape 为[]
    在这里插入图片描述

  2. 向量
    向量(Vector) n 个实数的有序集合,通过中括号包裹,如[1.2],[1.2, 3.4]等,维度数为1,长度不定,shape 为[𝑛]

    与标量不同,向量的定义须通过List类型传给tf.constant()。
    在这里插入图片描述

  3. 矩阵
    在这里插入图片描述
    在这里插入图片描述

  4. 张量
    张量(Tensor) 所有维度数dim > 2的数组统称为张量。
    张量的每个维度也做轴(Axis),一般维度代表了具体的物理含义,比如Shape 为[2,32,32,3]的张量共有4 维,如果表示图片数据的话,每个维度/轴代表的含义分别是:图片数量、图片高度、图片宽度、图片通道数,其中2 代表了2 张图片,32 代表了高宽均为32,3 代表了RGB 3 个通道。
    张量的维度数以及每个维度所代表的具体物理含义需要由用户自行定义在 TensorFlow 中间,为了表达方便,一般把标量、向量、矩阵也统称为张量,不作区分,需要根据张量的维度数和形状自行判断。

必须通过TensorFlow 规定的方式去创建张量,而不能使用Python 语言的标准变量创建方式。
在这里插入图片描述
其中id 是TensorFlow 中内部索引对象的编号,shape 表示张量的形状,dtype 表示张量的数值精度,张量numpy()方法可以返回Numpy.array 类型的数据,方便导出数据到系统的其他模块:
在这里插入图片描述

二、字符串类型

TensorFlow 还支持字符串(String)类型的数据,例如在表示图片数据时,可以先记录图片的路径,再通过预处理函数根据路径读取图片张量。通过传入字符串对象即可创建字符串类型的张量:
在这里插入图片描述

三、布尔类型

为了方便表达比较运算操作的结果,TensorFlow 还支持布尔类型(Boolean, bool)的张
量。布尔类型的张量只需要传入Python 语言的布尔类型数据,转换成TensorFlow 内部布
尔型即可:
在这里插入图片描述
TensorFlow 的布尔类型和Python 语言的布尔类型并不对等,不能通用

四、数值精度

在创建张量时,可以指定张量的保存精度:
在这里插入图片描述
对于大部分深度学习算法,一般使用tf.int32, tf.float32 可满足运算精度要求,部分对
精度要求较高的算法,如强化学习,可以选择使用tf.int64, tf.float64 精度保存张量。

  1. 读取精度
    在这里插入图片描述
  2. 类型转换
    在这里插入图片描述

五、待优化张量

为了区分需要计算梯度信息的张量与不需要计算梯度信息的张量,TensorFlow 增加了一种专门的数据类型来支持梯度信息的记录:tf.Variable

tf.Variable 类型在普通的张量类型基础上添加了name,trainable 等属性来支持计算图的构建。

由于梯度运算会消耗大量的计算资源,而且会自动更新相关参数,对于不需要的优化的张量,如神经网络的输入X,不需要通过tf.Variable 封装;相反,对于需要计算梯度并优化的张量,如神经网络层的W和𝒃,需要通过tf.Variable 包裹以便TensorFlow 跟踪相关梯度信息
在这里插入图片描述
其中张量的name 和 trainable 属性是Variable 特有的属性

name 属性用于命名计算图中的变量,这套命名体系是TensorFlow 内部维护的,一般不需要用户关注name 属性;
trainable表征当前张量是否需要被优化,创建Variable 对象是默认启用优化标志,可以设置trainable=False 来设置张量不需要优化。

除了通过普通张量方式创建Variable,也可以直接创建:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Tensorflow是一个开源的机器学习框架,由Google开发。它被广泛应用于深度学习、神经网络和其他机器学习算法的开发和部署。 以下是Tensorflow基础训练的步骤: 1. 安装Tensorflow Tensorflow可以通过pip命令安装。在命令行中输入以下命令即可: pip install tensorflow 2. 创建Tensorflow图 在Tensorflow中,图是指一系列的操作。创建图的第一步是创建一个空白的图,然后向其中添加操作。在Tensorflow中,所有的操作都是节点,它们可以接受输入并产生输出。以下是创建一个简单的图的示例: import tensorflow as tf # 创建一个空白的图 graph = tf.Graph() # 向图中添加节点 with graph.as_default(): a = tf.constant(5) b = tf.constant(2) c = tf.add(a, b) 3. 运行Tensorflow图 在Tensorflow中,我们需要创建一个会话来运行图。会话是Tensorflow中用于执行图的对象。我们可以使用会话执行图中的操作,并获取它们的输出。以下是运行上面创建的图的示例: import tensorflow as tf # 创建一个图 graph = tf.Graph() # 向图中添加节点 with graph.as_default(): a = tf.constant(5) b = tf.constant(2) c = tf.add(a, b) # 创建一个会话 with tf.Session(graph=graph) as session: # 运行图中的操作 result = session.run(c) print(result) 输出结果为: 7 4. 使用Tensorflow变量 在Tensorflow中,变量是指可以在图中持久化存储的值。我们可以使用变量来存储模型的参数。以下是创建和使用Tensorflow变量的示例: import tensorflow as tf # 创建一个变量 x = tf.Variable(0, name='counter') # 创建一个操作 increment_op = tf.assign(x, x+1) # 创建一个会话 with tf.Session() as session: # 初始化变量 session.run(tf.global_variables_initializer()) # 运行操作 print(session.run(increment_op)) print(session.run(increment_op)) print(session.run(increment_op)) 输出结果为: 1 2 3 5. 保存和加载Tensorflow模型 在Tensorflow中,我们可以使用Saver对象将模型保存到磁盘上,并在需要时加载它们。以下是保存和加载Tensorflow模型的示例: import tensorflow as tf # 创建一个变量 x = tf.Variable(0, name='counter') # 创建一个操作 increment_op = tf.assign(x, x+1) # 创建一个Saver对象 saver = tf.train.Saver() # 创建一个会话 with tf.Session() as session: # 初始化变量 session.run(tf.global_variables_initializer()) # 运行操作 print(session.run(increment_op)) print(session.run(increment_op)) print(session.run(increment_op)) # 保存模型 saver.save(session, 'my-model') # 加载模型 with tf.Session() as session: # 加载模型 saver.restore(session, 'my-model') # 运行操作 print(session.run(increment_op)) print(session.run(increment_op)) print(session.run(increment_op)) 输出结果为: 1 2 3 4 5 6 以上就是Tensorflow基础训练的步骤。Tensorflow是一个非常强大的机器学习框架,它提供了丰富的工具和函数库,可以帮助我们开发和部署各种机器学习模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值