理解Tensorflow中的张量

Understand the tensor in Tensorflow

Posted by alovn on April 14, 2019

前言

目前机器学习如火如荼,作为一名有志青年,Tensorflow作为目前众多机器学习框架中最火的一个,自然要学习一下。

刚接触Tensorflow的的人都会接触到Tensor,也就是『张量』,它到底是什么呢?

tensor (张量) 是什么

张量 = 容器

张量是现代机器学习的基础,它的核心其实是一个数据容器。大多情况下它包含数字,少数情况下也会包含字符串,你可以把它想象城一个数字的水桶。

  • 0维张量(标量) 装在张量里的每个数字称为【标量】,标量是一个数字
  • 1维张量也被称为向量
  • 2维张量称为矩阵
  • 3维张量,可看做把一系列的二维张量存储到水桶里,就形成了三维张量,它是一个数字构成的立方体。

我们可以继续堆叠立方体,创建一个越来越大的张量,组成4维、5维张量、n维张量。

下面图片是对张量从直观上给出的示意。一阶张量可以理解成一个向量,二阶张量可以理解成矩阵,三阶张量可以理解成立方体,四阶张量可以理解成立方体组成的一个向量,五阶张量可以理解成立方体组成的矩阵,依次类推。 tensor

rank就是上面提到的阶, 也就是张量是几维的数组。可以理解成 [ 的深度,直观上看就是有几层括号。

一个图像可以使用3个字段表示:

1
(width, height, color_depth) = 3D

但是,在机器学习中,经常要处理不止一张图片,而是要处理一个集合,可能有10000张图片,这样我们就会用到4D张量, 第四维就是样本的大小:

1
(sample_size, width, height, color_depth) = 4D

张量可以做各种变换操作,也就是说可以通过一些操作让张量流动(flow)起来。