什么是Tensor

什么是Tensortensor 是 tensorflow 基础的一个概念 张量

tensor是tensorflow基础的一个概念——张量。
Tensorflow用到了数据流图,数据流图包括数据(Data)、流(Flow)、图(Graph)。Tensorflow里的数据用到的都是tensor,所以谷歌起名为tensorflow。
下面介绍张量几个比较重要的概念

张量的维度(秩):Rank/Order
这里写图片描述
Rank为0、1、2时分别称为标量、向量和矩阵,Rank为3时是3阶张量,Rank大于3时是N阶张量。这些标量、向量、矩阵和张量里每一个素被称为tensor element(张量的素),且同一个张量里素的类型是保持一样的。

Tensor的属性

1.数据类型dtype d是data的首字母,type是类型的意思。tensor里每一个素的数据类型是一样的。类似于Numpy中ndarray.dtype,tensorflow里的数据类型可以有很多种,比方说tf.float32就是32位的浮点数,tf.int8就是8位的整型,tf.unit8就是8位的无符号整型,tf.string为字符串等等。
2.形状Shape 类似于Numpy中ndarray.shape,比方说一个2行3列的二维矩阵,他的形状就是2行3列。
3.其他属性 device是tensor在哪个设备上被计算出来的,graph是tensor所属的图,name是tensor的名字
,op是operation的缩写是产生这个tensor的操作运算,对应图上的结点,这些结点接收一些tensor作为输入并输出一些tensor。还有等等属性,可以查阅官网。
tensor和Numpy有很多共同的性质,tensorflow的作者应该参考了numpy(个人臆测)

几种Tensor
1.Constant(常量)是值不能改变的一种tensor,定义在tf.constant这个类里。

这里写图片描述
constant中有几个属性,value就是constant的数值,我们可以给他赋值,比方说0维的scalar,1维的Vector,2维的matrix或者是3维的张量。dtype、shape、name刚都有写过,verify_shape是布尔值,用于验证值的形状。除了value外都不一定要指定,可以有默认的值但是必须要有一个value。
2.Variable(变量)是值可以改变的一种tensor,定义在tf.Variable这个类中。构造函数如下图,我也看不懂其实。
这里写图片描述
3.Placeholder(占位符)先占住一个固定的位置,之后在往里面添加值的一种Tensor。定义在tf.placeholder中。这里只有三个属性如下图。并没有value,因为赋值后就不是占位符了。只有dtype,shape,name三个属性。赋值的机制用到了python中字典,即feed_dict。
这里写图片描述

x = tf.palceholder(tf.float32, shape=(1024, 1024)) y = tf.matmul(x, x) with if.Session() as sess: print(sess.run(y)) rand_array = np.random.rand(1024, 1024) print(sess.run(y, feed_dict = { 
  x: rand_array}))

比刚说官网的例子定义了x占位符,数值类型是tf.float32,形状是1024*1024的二维矩阵。在用会话正式运行图的时候用feed_dict,首先给一个键后加真实的值。

4.SparseTensor(稀疏张量)是一种稀疏的Tensor,类似线代中稀疏矩阵。定义时只需要定义非0的数,其他的数会自动填充。
这里写图片描述

Tensor表示法
这里写图片描述
tf.Tensor就是名字,’Const’是名字。0是索引,表示张量是这个计算中产生的第几个。shape=()是形状,这个是标量所以是空,dtype为数据类型。

今天的文章 什么是Tensor分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-08 11:06
下一篇 2024-12-08 11:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/81049.html