tensor是Tensorflow中最基础的数据结构,常常翻译为张量,可以理解为n维数组或矩阵,相关函数:

constant(value, dtype=None, shape=None, name='Const', verify_shape=False)

三维方向定义,适用于2维和3维

0、零维张量

import tensorflow as tf#零维张量
const0 = tf.constant(1, tf.float16)
print(const0)

运行结果:

Tensor("Const:0", shape=(), dtype=float16)

1、一维张量

#一维张量,长度为4
const1 = tf.constant([1, 2, 3, 4], tf.float16)
print(const1)

运行结果:

Tensor("Const_1:0", shape=(4,), dtype=float16)

几何表示:

一维张量没有行和列的概念,只有长度的概念。上述的const1就是长度为4的一维张量,或者称为向量。
上面的图仅为示意,代表一维张量只有axis=0这个方向,并不是指这是一个4行的向量。事实上,tensorflow在做一些运算时,反而经常把1行N列的二维张量简化成一个长度为N的一维向量。

2、二维张量

#二维张量,3行4列
const2 = tf.constant([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]], tf.float16)
print(const2)

运行结果:

Tensor("Const_2:0", shape=(3, 4), dtype=float16)

几何表示:

3、三维张量

#三维张量,3行4列深度为2的张量
const3 = tf.constant([[[ 1,  2], [ 3,  4], [ 5,  6], [ 7,  8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]], tf.float16)
print(const3)

运行结果:

Tensor("Const_3:0", shape=(3, 4, 2), dtype=float16)

几何表示:

4、四维张量(图像仅用于理解,坐标系axis已经不再适用)

#四维张量
const4 = tf.constant([#第一个3行4列深度为2的三维张量[[[1,  2], [ 3,  4], [ 5,  6], [ 7,  8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]],#第二个3行4列深度为2的三维张量[[[1,  2], [ 3,  4], [ 5,  6], [ 7,  8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]]], tf.float16)
print(const4)

运行结果:

Tensor("Const_4:0", shape=(2, 3, 4, 2), dtype=float16)

几何表示:

这个图上的axis不对,行应为axis=1,以此类推

如何判断一个张量的batch数、行、列、深度:

const4 = tf.constant([#第一个3行4列深度为2的三维张量[[[1,  2], [ 3,  4], [ 5,  6], [ 7,  8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]],#第二个3行4列深度为2的三维张量[[[1,  2], [ 3,  4], [ 5,  6], [ 7,  8]],[[11, 12], [13, 14], [15, 16], [17, 18]],[[21, 22], [23, 24], [25, 26], [27, 28]]]], tf.float16)

从左边开始数连续[的数量,最多有X个[说明是X维张量。上面的例子就是4维张量。
以三维以上的张量为例:
从左边开始数连续的[,最后一个[对应的]中一共两个元素,分别为1, 2,说明深度为2。
接下来向左边数上一级[对应的]中一共有4个元素[1, 2], [ 3, 4], [ 5, 6], [ 7, 8],说明列为4。
同理继续数上一级,得到3行,2个batch。

小结:

shape属性中的元素大于等于3时,可以用3维空间来理解。
shape=(3, 4, 2)时,表示3行4列深度为2的张量
shape=(2, 3, 4, 2)时,表示有2个 3行4列深度为2的张量
shape=(6, 2, 3, 4, 2)时,表示有6个四维张量,这个四维张量又可以表示为2个 3行4列深度为2的张量。

shape中的属性分别与axis=0axis=1axis=2axis=3……对应,以此类推。当维度超过3时,上图几何中的坐标系表示就已经错误了。但是对于理解多维是有帮助的。

作者:X_xxieRiemann
链接:https://www.jianshu.com/p/f34457c222c5
来源:简书

tensor多维向量的简单理解相关推荐

  1. 06_2_Pytorch的基础数据类型、CPU tensor类型和GPU tensor类型、判断数据类型、CPU或GPU张量之间的转换、数据类型转换、1-4维向量、Tensor张量、Variable等

    1.6.2.Pytorch的基础数据类型 1.6.2.1.Torch定义了的七种CPU tensor类型和八种GPU tensor类型 1.6.2.2.基础数据类型 1.6.2.3.Pytorch数据 ...

  2. 人工智能:深度学习算法及应用——简单理解CNN卷积神经网络并python实现(带源码)

    深度学习算法及应用 一. 实验目的 二. 实验要求 三. 实验的硬件.软件平台 四. 实验原理 1.1. 深度学习概述 1.2. 深度学习的常见结构 1.3. 卷积神经网络(CNN) **卷积** * ...

  3. 基线系统需要受到更多关注:基于词向量的简单模型 | ACL 2018论文解读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. 词向量、句子向量、篇章向量的一些理解(转)

    2019独角兽企业重金招聘Python工程师标准>>> 词向量.句子向量.篇章向量的一些理解(转) (转自)http://blog.csdn.net/sinat_26917383/a ...

  5. SVM核函数的简单理解

    该篇文章摘自知乎,主要为了帮助自己学习 An Intuitive Explanation of Kernels in Support Vector Machine (SVM) towardsdatas ...

  6. 点在直线的投影坐标 n维向量投影坐标 几何投影坐标

    点在直线的投影坐标  n维向量投影坐标 几何投影坐标 [转载请注明出处]http://blog.csdn.net/guyuealian/article/details/53954005 一.点在直线的 ...

  7. svm 支持向量机 回归 预测_机器学习:简单理解支持向量机SVM

    在介绍过贝叶斯之后,今天尝试着给大家介绍支持向量机SVM. 在机器学习中,SVM试图找到一个最佳的超平面,该平面可以最佳地分割来自不同类别的观察结果.一个在N-1维的超平面可以分割Ñ维的特征空间.例如 ...

  8. 教你简单理解分布式与传统单体架构的区别

    教你简单理解分布式与传统单体架构的区别 原文:教你简单理解分布式与传统单体架构的区别 分布式是一种系统架构方式,而在分布式系统中一般基于中间件进行开发,消息中间件是分布式系统中比较核心的中间件之一.这 ...

  9. 03 ,n 维向量,向量运算,向量组,向量组的线性组合,基,张成空间,向量组的线性相关性 :

    1 ,n 维向量 : 列向量 行向量 : 列向量与行向量的关系 : 一回事 2 ,向量运算 : 加法运算 运算 3 ,向量运算 : 数乘运算 运算 4 ,向量组 : 定义 : 若干个同维数的向量组成的 ...

最新文章

  1. C#获取摄像头拍照显示图像
  2. mysql xa 演示_mysql的XA事务恢复过程详解
  3. multiprocessing(python 版)
  4. 如何通过git客户端上传项目到github上
  5. 汽车车载诊断基础知识
  6. 数字水印技术 概念 应用及现状
  7. 目标客户画像_4 种类型 + 10 大步骤,详解用户画像
  8. ffmpeg 中av_rescale_rnd 的含义
  9. c++实验3——个人税收计算器
  10. Adobe flash player ActiveX、NPAPI、PPAPI 的区别
  11. 学生党白嫖服务器-不会吧不会吧,你还在买学生机吗?
  12. 自上而下 or 自下而上?企业部署RPA的2种策略
  13. 【开源编码分享】Python古三式∶太乙神数丶奇门遁甲丶大六壬
  14. 【全栈开发实战小草看书之Web端(一)开发环境】
  15. untiy Resorces目录动态加载资源
  16. 关于pbootcms中被挂马以后的处理
  17. 史上最简单的软件破解——5行脚本代码完美破解99%的过期软件
  18. RTB 广告投放流程详解
  19. docker push: retrying in 5 seconds... keep doing this
  20. 通达oa php_PHP的版本选择 discuz x3.2 php版本 通达oa php版本 最新版

热门文章

  1. SIMD、SIMD、SIMT、MISD、MIMD详解与比较
  2. 直线检测算法博文中缺失的几个源码(Hough_line、LSD、FLD、EDlines、LSWMS、CannyLines、MCMLSD、LSM)
  3. win7 电脑如何内外网同时使用
  4. String字符串转化为int类型
  5. 遍历Java中的列表
  6. 论“正义”——什么是正义?
  7. 使用JedisClusters批量高效删除redis中的key
  8. esp8266_arduino源码
  9. 矩阵分析L1 线性空间基础
  10. 精准医学中的深度学习和影像组学