TensorFlow基本–张量 – AI-Dog

里面的所有数据都以张量的形式表示。从函数的角度来看,张量可以简单理解为多维数据,其中零阶张量表示一个标量(一个数),一阶张量是一个向量(一维数组), 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.]
"""



 

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片