里面的所有数据都以张量的形式表示。从函数的角度来看,张量可以简单理解为多维数据,其中零阶张量表示一个标量(一个数),一阶张量是一个向量(一维数组), n阶向量可以理解为n维数组。
但是实现并不是直接以数组的形式,它只是对操作结果的引用。实际数字不存储在张量中,它是如何获得这些数字的计算。
import tensorflow as tf # tf.constant是一个计算,这个计算的结果是一个张量保存在变量a中 a = tf.constant([1.0, 2.0], name="a") b = tf.constant([3.0, 4.0], name="b") c = tf.constant([1.0, 1.0, 1.0], name="c") result = tf.add(a, b, name="add") print(result) print(a) print(c) """ Tensor("add:0", shape=(2,), dtype=float32) Tensor("a:0", shape=(2,), dtype=float32) Tensor("c:0", shape=(3,), dtype=float32) """
从输出结果可以看出,NumPy中的张量与NumPy中的数组不同。计算的结果不是一个具体的数字,而是一个张量结构。一个()主要保存三个属性:name(名称)、(形状)、type(类型)
name属性是一个张量的唯一标识符,也给出了张量的计算方式
shape属性是张量的维度,描述了张量的维度信息(程序中a变量的维度为2,c的维度为3)
type 属性表示一个张量只有一个唯一的类型
如果没有指定类型,则给出默认类型。默认 int32 不带小数点,默认带小数点。由于使用默认类型可能会导致类型不匹配问题,所以一般用dtype来表示变量或常量的类型。
支持14种数据类型,主要包括:实数(tf.、tf.)、整数(tf.int8、tf.int16、tf.int32、tf.int64、tf.uint8)、布尔( tf.bool),复数(,)
张量的使用主要分为两类:一、对中间计算结果的引用;二、计算图构建完成后,可用于获取计算结果(个数)
# 使用张量计算中间结果 a = tf.constant([1.0, 2.0], name="a") b = tf.constant([3.0, 4.0], name="b") result = tf.add(a, b, name="add") # 获取张量的维度信息 print(result.get_shape) # tf.Session().run(result)可得到计算结果 print(tf.Session().run(result)) """ 输出 <bound method Tensor.get_shape of > [4. 6.] """
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容