本文的ipynb 格式见CSDN下载。

0维张量/标量
标量是一个数字
1维张量/向量
1维张量称为“向量”。
2维张量
2维张量称为矩阵
3维张量
公用数据存储在张量
时间序列数据
股价
文本数据
图片
彩色图片
5D张量
结论

实际上,你可以使用一个数字的张量,我们称为0维张量,也就是一个只有0维的张量。
它仅仅只是带有一个数字的水桶。想象水桶里只有一滴水,那就是一个0维张量。

import numpy as np
x = np.array(5)
print(x)

1维张量/向量,1维张量称为“向量”

x = np.array([1,2,3,4])
print(x)
#通过NumPy’s ndim函数,查看张量具有多个坐标轴。
x.ndim

2维张量

x = np.array([[5,10,15,30,25],[20,30,65,70,90],[7,80,95,20,30]])
print(x)
x.ndim

3维张量

一个3维张量是一个数字构成的立方体


y = np.array([[[5,10,15,30,25],[20,30,65,70,90],[7,80,95,20,30]],[[3,0,5,0,45],[12,-2,6,7,90],[34,3436,4364,3434,566]],[[17,13,25,30,15],[23,36,9,7,80],[1,-7,-5,22,3]]])
print(y)
y.ndim

3维=时间序列

4维=图像

5维=视频

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

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

时间序列数据

用3D张量来模拟时间序列会非常有效!

医学扫描——我们可以将脑电波(EEG)信号编码成3D张量,因为它可以由这三个参数来描述:

(time, frequency, channel)

这种转化看起来就像这样:
如果我们有多个病人的脑电波扫描图,那就形成了一个4D张量:

 (sample_size, time, frequency, channel)

纽交所开市时间从早上9:30到下午4:00,即6.5个小时,总共有6.5 x 60 = 390分钟。
如此,我们可以将每分钟内最高、最低和最终的股价存入一个2D张量(390,3)。如果我们追踪一周(五天)的交易,我们将得到这么一个3D张量:

(week_of_data, minutes, high_low_price)

即:(5,390,3)
同理,如果我们观测10只不同的股票,观测一周,我们将得到一个4D张量
(10,5,390,3)
假设我们在观测一个由25只股票组成的共同基金,其中的每只股票由我们的4D张量来表示。那么,这个共同基金可以有一个5D张量来表示:
(25,10,5,390,3)

文本数据

我们也可以用3D张量来存储文本数据,我们来看看推特的例子。

首先,推特有140个字的限制。其次,推特使用UTF-8编码标准,这种编码标准能表示百万种字符,
但实际上我们只对前128个字符感兴趣,因为他们与ASCII码相同。所以,一篇推特文可以包装成一个2D向量:
(140,128)
如果我们下载了一百万篇川普哥的推文(印象中他一周就能推这么多),我们就会用3D张量来存:

(number_of_tweets_captured, tweet, character)

这意味着,我们的川普推文集合看起来会是这样:
(1000000,140,128)

图片

4D张量很适合用来存诸如JPEG这样的图片文件。之前我们提到过,一张图片有三个参数:高度、宽度和颜色深度。
一张图片是3D张量,一个图片集则是4D,第四维是样本大小。

MNIST图片是黑白的,这意味着它们可以用2D张量来编码,但我们习惯于将所有的图片用3D张量来编码,多出来的第三个维度代表了图片的颜色深度。
MNIST数据集有60,000张图片,它们都是28 x 28像素,它们的颜色深度为1,即只有灰度。
TensorFlow这样存储图片数据:

(sample_size, height, width, color_depth)

于是我们可以认为,MNIST数据集的4D张量是这样的:
(60000,28,28,1)

彩色图片

彩色图片有不同的颜色深度,这取决于它们的色彩(注:跟分辨率没有关系)编码。
一张典型的JPG图片使用RGB编码,于是它的颜色深度为3,分别代表红、绿、蓝。
这是一张我美丽无边的猫咪(Dove)的照片,750 x750像素,这意味着我们能用一个3D张量来表示它:
(750,750,3)

然后,如果我们有一大堆不同类型的猫咪图片(虽然都没有Dove美),
也许是100,000张吧,不是DOVE它的,750 x750像素的。我们可以在Keras中用4D张量来这样定义:
(10000,750,750,3)

5D张量

5D张量可以用来存储视频数据。TensorFlow中,视频数据将如此编码:

(sample_size, frames, width, height, color_depth)

如果我们考察一段5分钟(300秒),1080pHD(1920 x 1080像素),每秒15帧(总共4500帧),颜色深度为3的视频,我们可以用4D张量来存储它:
(4500,1920,1080,3)
当我们有多段视频的时候,张量中的第五个维度将被使用。如果我们有10段这样的视频,我们将得到一个5D张量:
(10,4500,1920,1080,3)

这个5D张量中值的数量为:
10 x 4500 x 1920 x 1080 x 3 = 279,936,000,000
在Keras中,我们可以用一个叫dype的数据类型来存储32bits或64bits的浮点数
我们5D张量中的每一个值都将用32 bit来存储,现在,我们以TB为单位来进行转换:
279,936,000,000 x 32 = 8,957,952,000,000bit = 1.119744T


参考文献


Learning AI if You Suck at Math — P4 — Tensors Illustrated (with Cats!)

你真的懂TensorFlow吗?Tensor是神马?为什么还会Flow?

你真的懂TensorFlow吗?Tensor是神马?为什么还会Flow?相关推荐

  1. [转帖]Tensor是神马?为什么还会Flow?

    Tensor是神马?为什么还会Flow? 互联网爱好者 百家号17-05-2310:03 大数据文摘作品,转载要求见文末 编译 | 邵胖胖,江凡,笪洁琼,Aileen 也许你已经下载了TensorFl ...

  2. 【Tensorflow】你真的懂TensorFlow吗?Tensor是神马?为什么还会Flow?

    文章转载自:https://www.sohu.com/a/144569429_700316(MOOC) 也许你已经下载了TensorFlow,而且准备开始着手研究深度学习.但是你会疑惑:TensorF ...

  3. Tensor是神马?为什么还会Flow?

    大数据文摘作品,转载要求见文末 编译 | 邵胖胖,江凡,笪洁琼,Aileen 也许你已经下载了TensorFlow,而且准备开始着手研究深度学习.但是你会疑惑:TensorFlow里面的Tensor, ...

  4. 织梦熊掌号插件兼容php5.3,织梦CMS百度、熊掌号、MIP、神马自动推送插件

    插件名称: 织梦CMS百度.熊掌号.MIP.神马自动推送插件(支持手机端采集侠火车头等采集后推送)(UTFT-8+GBK2312) 插件介绍: 织梦自动推送百度.熊掌号.MIP.神马插件设置界面截图: ...

  5. 示波器_你真的懂示波器嘛?面试中会用到的示波器知识

    示波器是电子工程师经常使用到的电子测量仪器,用途十分广泛,可将肉眼看不见的电信号变换成看得见的图像,便于人们研究各种电现象的变化过程.利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用它测 ...

  6. “三次握手,四次挥手”你真的懂吗?

    来源:码农桃花源 解读:"拼多多"被薅的问题出在哪儿?损失将如何买单? 之前有推过一篇不错的干货<TCP之三次握手四次挥手>,前几天有兄弟投稿,开始还以为是同一篇,后经 ...

  7. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...

    程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...

  8. tensorflow中tensor的索引

    tensorflow中tensor的索引 1.print(sess.run(outputs[0:2,0:2,:])) 2.print(sess.run(tf.slice(outputs,[0,0,0] ...

  9. 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?

    [转]先说IEnumerable,我们每天用的foreach你真的懂它吗? 我们先思考几个问题: 为什么在foreach中不能修改item的值? 要实现foreach需要满足什么条件? 为什么Linq ...

最新文章

  1. HarmonyOS 实现跑马灯效果
  2. Celery-分布式任务队列
  3. 什么是工装服_王俊凯穿连体工装亮相跨年晚会,中国风满满的设计,尽显帅气...
  4. STP文件服务器,综合监控stp服务器
  5. Excel 2016新增函数之TEXTJOIN
  6. docker安装nginx容器小记
  7. Hibernate,Session清理缓存时间点
  8. 程序员想早点下班被经理拒绝,一气之下要辞职,经理慌了
  9. Python破解ZIP或RAR文件密码
  10. js 获取指定范围的随机数
  11. Windows下SQLMAP的安装图解
  12. CAD2004软件从下载安装到学习CAD教程(后台菜单自助更多)
  13. 调查 问卷 设计 注意 - Web
  14. 云服务器项目乱码,云服务器Ubuntu系统下中文乱码问题解决方案
  15. 1.1.15. Passive Aggressive Algorithms(被动攻击算法)
  16. fastapi+tortoise-orm测试
  17. Pycharm中的Python Console与Terminal
  18. [流体力学]描述流体运动的方法:拉格朗日法和欧拉法
  19. 【声源定位】语音信号
  20. 人生就像一张茶几,摆满了各种杯具/洗具/餐具!

热门文章

  1. Super-palindrome(思维)
  2. [CQOI2015]任务查询系统(差分+主席树)
  3. 完全硬件实现的忆阻器卷积神经网络
  4. java 异常管理员_java web在进行管理员操作的时候,抛出了下面的异常,怎么解决啊...
  5. 【计算机组成原理】计算机软硬件组成
  6. linux7启动某个服务器,如何在单用户模式下启动RHEL 7 CentOS 7服务器
  7. java矩阵加法_在java中的数组加法?
  8. 深度学习(12)TensorFlow高阶操作一: 合并与分割
  9. CF--思维练习--CodeForces - 216C - Hiring Staff (思维+模拟)
  10. Spatial Transformer Networks(STN)详解