一、Tensor概念
Tensor意思为张量,张量是什么?张量具有维度,或者可有称作为他的秩:Rank/Order
我们以数组为对比,展示张量维度的概念:
在上图中,当在零维的时候,称为标量;
当在一维的时候,就是我们经常提的向量;
当在二维的时候,就是我们经常提的矩阵;即Matrix
在多维的时候,就可以称作n维的张量。
张量的概念是相对与标量,向量,矩阵这一系类概念的拓展
二、Tensor的属性
Tensor和Pyhton中的Numpy包有很多相似的属性和用法:
还有很多如device,name,graph等等。
三、常见的Tensor
1.Constant(常量)
Constant是值不能改变的一种Tensor
下面试引用的方法,要注意的是,我们要想输出const,必须以创建session回话的方式,而不能直接打印
1
2
3
4import tensorflow as tf const = tf.constant(3)
下面是对constant的属性设置:
1
2
3
4
5
6
7constant( value, dtpye = None, shape = None, name = 'Const', verify_shape = False )
2.Variable(变量)
下面是对Variable的使用:
1
2
3import tensorflow as tf const = tf.variable
下面是Variable的构造函数
1
2
3
4
5
6
7
8
9
10
11
12
13__init__( initial_value = None, trainable =True, collections = None, validate_shape = True, caching_device = None, name = None, variable_def = None, dtype = None, expected_shape = None, import_scope = None, constraint = None )
3.placeholder(占位符)
先占住一个固定的位置,等着你之后往里面添加值的一种Tensor
1
2
3import tensorflow as tf const = tf.placeholder
属性如下:
1
2
3
4
5placeholder( dtype shape = None, name = None )
官网代码实例如下:
1
2
3
4
5
6
7
8x = tf.placeholder(tf.float32, shape=(1024, 1024)) y = tf.matmul(x, x) with tf.Session() as sess: print(sess.run(y)) # ERROR: will fail because x was not fed. rand_array = np.random.rand(1024, 1024) print(sess.run(y, feed_dict={x: rand_array})) # Will succeed.
通过tf.float32指定数据类型,shape指定了1024*1024的矩阵;
使用feed_dict进行字典传参。
4.SparseTensor(稀疏张量)
可以类比稀疏矩阵,稀疏矩阵的概念是:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。
ensorFlow表示一个稀疏张量,作为三个独立的稠密张量:indices,values和dense_shape。在Python中,三个张量被集合到一个SparseTensor类中,以方便使用。如果你有单独的indices,values和dense_shape张量,SparseTensor在传递给下面的操作之前,将它们包装在一个对象中。
具体来说,该稀疏张量SparseTensor(indices, values, dense_shape)包括以下组件,其中N和ndims分别是在SparseTensor中的值的数目和维度的数量:
- indices:density_shape[N, ndims]的2-D int64张量,指定稀疏张量中包含非零值(元素为零索引)的元素的索引。例如,indices=[[1,3], [2,4]]指定索引为[1,3]和[2,4]的元素具有非零值。
- values:任何类型和dense_shape [N]的一维张量,它提供了indices中的每个元素的值。例如,给定indices=[[1,3], [2,4]]的参数values=[18, 3.6]指定稀疏张量的元素[1,3]的值为18,张量的元素[2,4]的值为3.6。
- dense_shape:density_shape[ndims]的一个1-D int64张量,指定稀疏张量的dense_shape。获取一个列表,指出每个维度中元素的数量。例如,dense_shape=[3,6]指定二维3x6张量,dense_shape=[2,3,4]指定三维2x3x4张量,并且dense_shape=[9]指定具有9个元素的一维张量。
1
2
3
4
5SparseTensor(indices=[[0, 0], [1, 2]], values=[1, 2], dense_shape=[3, 4]) [[1, 0, 0, 0] [0, 0, 2, 0] [0, 0, 0, 0]]
init方法:
1
2
3
4
5__init__( indices, values, dense_shape )
最后
以上就是高贵高跟鞋最近收集整理的关于TensorFlow中什么是Tensor?的全部内容,更多相关TensorFlow中什么是Tensor内容请搜索靠谱客的其他文章。
发表评论 取消回复