深度学习(二)--tensor张量

一、张量的概念

1.在TensorFlow中,所有的数据都通过张量的形式来表示

2.从功能的角度,张量可以简单理解为多维数组

  • 零阶张量表示标量(scalar),也就是一个数;
  • 一阶张量为向量(vector),也就是一维数组;
  • n阶张量可以理解为一个n维数组;

3.张量并没有真正保存数字,它保存的是计算过程

二、张量的属性

  • Tensor(“Add:0”, shape=(), dtype=float32)

名字(name)

  • “node:src_output”:node 节点名称,src_output 来自节点的第几个输出

形状(shape)

  • 张量的维度信息,shape=() ,表示是标量

类型(type)

  • 每一个张量会有一个唯一的类型
  • TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会

三、张量的形状

三个术语描述张量的维度:阶(rank)、形状(shape) 、维数(dimension number)

深度学习(二)--tensor张量_第1张图片
其实可以从最外围的括号数量可以看出这个张量是几阶的,例如 [[[ 那么这个张量就是三维的也就是三阶

给大家写个小栗子

import tensorflow as tf
tens1 = tf.constant([[[1, 2, 3], [2, 2, 3]],
                     [[5, 5, 5], [1, 4, 2]],
                     [[2, 5, 3], [2, 6, 1]],
                     [[1, 3, 5], [2, 3, 4]]], name='tens1')
print(tens1)

其实通过我们人眼可以看出它是一个三维数组
我们来看一下输出结果

Tensor("tens1:0", shape=(4, 2, 3), dtype=int32)

第一个参数是name 第二个参数是形状 第三个参数是数据类型
我们主要来看看第二个形状
首先解释
4 — 就是在最外围有四组二维数组
2 — 就是在二维数组里面有两个一维数组
3 — 就是在一维数组里有三个标量

再来一个例子

import tensorflow as tf

scalar = tf.constant(100)
vector = tf.constant([1, 2, 3, 4])
matrix = tf.constant([[1, 2, 3], [1, 2, 3]])
cube_matrix = tf.constant([[[1], [2], [3]], [[4], [1], [5]], [[1], [2], [7]]])
print(scalar.get_shape())
print(vector.get_shape())
print(matrix.get_shape())
print(cube_matrix.get_shape())

打印结果:

()
(4,)
(2, 3)
(3, 3, 1)

get_shape方法就是得到张量的形状,也就是几维数组,

四、张量的阶

1.概念

深度学习(二)--tensor张量_第2张图片

2.获取张量的元素

深度学习(二)--tensor张量_第3张图片

五、张量的类型

深度学习(二)--tensor张量_第4张图片

Tip:多个张量进行运算时,必须是同等类型,否则无法进行运算,会报错!

我自己运营的一个公众号-----IT资源君
我每天都会分享java全套教程,python爬虫,python数据分析,各类IT资源等1000G资源,大家可以去免费无套路领取
深度学习(二)--tensor张量_第5张图片

你可能感兴趣的:(python,tensorflow)