tensorflow 转张量类型为float_TensorFlow基础

本文详细介绍了TensorFlow的基础知识,包括张量的概念、数据类型、精度、创建方法以及张量的典型应用。重点讲解了如何在TensorFlow中将张量转换为float类型,强调了不同类型张量的创建、类型转换以及张量在深度学习中的作用。通过示例展示了创建全0和全1张量、自定义数值张量和采样自特定分布的张量的方法。
摘要由CSDN通过智能技术生成

a26cd5a75e08a4723171d15acf2484b5.png

tensorflow简介

TensorFlow 是一个面向于深度学习算法的科学计算库,内部数据保存在张量(Tensor)对

象上,所有的运算操作(Operation, OP)也都是基于张量对象进行。

核心概念

TensorFlow 中的计 算可以表示为一个有向图( directed graph ) ,或称计

(computation graph) 每一个运算操作 operation )将作为一个节点( node ),节点与

节点之间的连接称为边 (edge) 。这个计算图描述了数据的计算流程,它也负责维护个更新状态,用户可以对计算图的分支进行条件控制或循环操作。计算图中的每一个节点可以有任意输入和任意多个输出,每一个节点描述了一种运算操作。节点可以算是运算操作的实例化(instance)。

在计算图的边中流动(flow)的数据被称为张量(tensorflow),故得名TensorFlow。

问题来了,什么是张量,什么是流

张量这个概念在数学或者物理学中可以有不同的解释,但在这里并不强调它本身

的含义,在tensorflow中张量可以被简单的理解为多维数组。

流代表了张量之间通过计算相互转化的过程。

使用 TensorFlow, 你必须明白 TensorFlow:

  • 使用图 (graph) 来表示计算任务.
  • 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
  • 使用 tensor 表示数据.
  • 通过 变量 (Variable) 维护状态.
  • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据

tensorflow中的数据类型

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

数值类型的张量是 TensorFlow 的主要数据载体,分为:

❑ 标量(Scalar) 单个的实数,如 1.2, 3.4 等,维度数(Dimension,也叫秩)为 0,shape 为[]

❑ 向量(Vector) n 个实数的有序集合,通过中括号包裹,如[1.2],[1.2,3.4]等,维度数为

1,长度不定,shape 为[ ]

❑ 矩阵(Matrix) n 行 m 列实数的有序集合,如[[1,2],[3,4]],维度数为2,每个维度上的长度不定,shape为[n,m].

❑ 张量(Tensor) 所有维度数dim > 2的数组统称为张量。张量的每个维度也做轴(Axis),

一般维度代表了具体的物理含义,比如 Shape 为[2,32,32,3]的张量共有 4 维,如果表

示图片数据的话,每个维度/轴代表的含义分别是:图片数量、图片高度、图片宽度、

图片通道数,其中 2 代表了 2 张图片,32 代表了高宽均为 32,3 代表了 RGB 3 个通

道。张量的维度数以及每个维度所代表的具体物理含义需要由用户自行定义

在 TensorFlow 中间,为了表达方便,一般把标量、向量、矩阵也统称为张量,不作区

分,需要根据张量的维度数和形状自行判断。

tensorflow是如何创建标量的:

必须通过 TensorFlow 规定的方式去创建张量,而不能使用 Python 语言的标准变量创建方

式。

import tensorflow as tf


a = 1
aa = tf.constant(1.2) #创建标量
print(type(a),type(aa),tf.is_tensor(aa))
# 创建向量
# 通过print可以打印出向量x的相关信息
x = tf.constant([1, 2., 3.3])
print(x)
# 创建张量
c = tf.constant([[[1,2],[3,4],[5,6],[7,8]]])

# 运行结果
<class 'int'> <class 'tensorflow.python.framework.ops.EagerTensor'> True
tf.Tensor([1.  2.  3.3], shape=(3,), dtype=float32)
tf.Tensor(
[[[1 2]
  [3 4]
  [5 6]
  [7 8]]], shape=(1, 4, 2), dtype=int32) (1, 4, 2)

shape 表示张量的形状,dtype 表示张量的数值精度。

字符串类型

tensorflow 中除了丰富的数值类型外,tensorflow还支持字符串(String)类型的数据,例如在表示图 片数据时,可以先记录图片的路径,再通过预处理函数根据路径读取图片张量。通过传入 字符串对象即可创建字符串类型的张量:

import tensorflow as tf

a = tf.constant('hello,world')
print(a)


# 结果
tf.Tensor(b'hello,world', shape=(), dtype=string)

在 tf.strings 模块中,提供了常见的字符串型的工具函数,如拼接 join(),长度 length(),切

分 split()等等。

深度学习算法主要还是以数值类型张量运算为主,字符串类型的数据使用频率较低, 我们不做过多阐述。

布尔类型

为了方便表达比较运算操作的结果,TensorFlow 还支持布尔类型(Boolean, bool)的张

量。布尔类型的张量只需要传入 Python 语言的布尔类型数据,转换成 TensorFlow 内部布

尔型即可:

b = tf.constant
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值