欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tensorflow入门基本概念-----张量

程序员文章站 2022-07-13 13:10:36
...

张量是TensorFlow最主要的数据结构,张量是数学领域的概念,具体到TensorFlow中,一个张量就是一个张量类的实例,是绑定了相关运算的一个特定类型的多维数组。

1、张量的属性:

  • 所有张量都有一个静态的类型和动态的维数,也就是说你可以实时的改变一个张量的内部结构。
  • 只有张量类型的对象才能在计算图的节点中传递。
  • 张量的阶(rank):表示张量的维度,但跟矩阵的秩又不太一样。它表示张量的维度的质量。
表1-1 张量的阶
数学表示
0 标量(Scalar)
1 向量(Vector)
2 矩阵(Matrix)
3 3维张量(3-tensor)
n n维张量(n-tensor)
  • 张量的形状(shape):形如[[,][,]] ,或0阶:比如单个数字2。下面举个例子:
import tensorflow as tf
tens1 = tf.constant([[[1,2],[2,3]],[[3,4],[5,6]]])
sess = tf.session()
print(sess.run(tens1)[1,1,0])

#输出结果为5
#[1,1,0]  其中第一个1表示取[[3,4],[5,6]]
#第二个1表示取[5,6]
#第三个0表示取5
#所以结果为5
  • 张量的数据类型:这里主要说一下tf.string,可变长度的字节数组,每一个张量元素都是一个字节数组。

    2、张量的创建 

  • TensorFlow和numpy是可互操作的,通常调用eval()函数会返回numpy对象。该函数可以用作标准数值工具。(注:张量对象只是一个操作结果的符号化句柄,它并不持有该操作的结果。所以可以使用eval()方法来获取实际的值,等价于Session.run(tensor_to_eval)
  • tf.convert_to_tensor()方法将python对象转化为tensor对象,可以是tensor对象、numpy数组、Python列表、Python标量。