tensor多维向量的简单理解-程序员宅基地

技术标签: python  深度学习  

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
来源:简书

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39236432/article/details/106823466

智能推荐

cascader懒加载不回显,输入框无显示_lazy cascader 回显不了-程序员宅基地

文章浏览阅读9.3k次,点赞20次,收藏21次。目录cascader懒加载不回显`element`中的用例:改写用例:手动刷新组件`div`悬浮在`input`之上(像是使用修正带)`placeholder`显示为内容(666操作)cascader懒加载不回显使用:element-ui+Vue问题:使用element的cascader组件动态加载数据时不能正常回显element中的用例:<script> let id = 0; export default { data() { return { _lazy cascader 回显不了

3D建模需要学多久可以学会?自学能就业吗_3d建模要学多久-程序员宅基地

文章浏览阅读8.8k次。零基础学习3D建模,需要一个完整的3D建模课程设计,一个好的课程设计大致应该包含4个方面的内容,时间在6个月-12个月之间:1、一个月预科班基础课,虽然零基础可以学习3D建模,并不代表看着可以不重视基础。所以学习的第一步是要巩固自己的美术基础,最快的练习方式是直接在PS手绘板上进行临摹,一个月一般临摹40个左右的肩甲类、图表类小物件,数量就可以达标了。2、三个月专业基础课,专业基础课主要是在预科班的基础上学习美术基础,3Dmax基础,UV拆分和摆放,贴图绘制基础,三个月高强度的训练,对3_3d建模要学多久

博客摘录「 Navicat工具常用操作快捷键」2023年5月23日_nvicat编辑器中如何给多多行数据添加分隔符-程序员宅基地

文章浏览阅读122次。原文链接:https://blog.csdn.net/liu865033503/article/details/100770596。_nvicat编辑器中如何给多多行数据添加分隔符

EOS开发入门-程序员宅基地

文章浏览阅读58次。EOS开发入门  在上一篇文章《EOS开发环境搭建》中,我们已经完成了EOS开发环境的搭建,本次为大家带来的是EOS开发入门的相关内容。1. EOS的合约开发基础  智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。1.1 所需知识熟悉或了解C++14的基本语法,这部分技能需要掌握,短时间内无法搞定..._eos 开发入门

浅谈渗透测试人员职业发展路线_渗透测试职业规划-程序员宅基地

文章浏览阅读5.3k次,点赞4次,收藏42次。引言你有兴趣成为渗透测试工程师吗? 如果你对”五环法和脆弱性评估,以及利用系统和有效沟通调查结果的能力有一个透彻的理解",那么这可能就是适合你的领域。一个 IT 专业人员如何才能成为渗透测试工程师? 这个问题没有单一的答案; 事实上,渗透测试人员们可以来自不同的阶层。 他们可能是网络管理员或工程师,系统或软件开发人员,拥有 IT 安全学位的毕业生,甚至是自学成才的黑客。 不管这个专业人员已..._渗透测试职业规划

LeetCode 695. 岛屿的最大面积【dfs】_leetcode695-程序员宅基地

文章浏览阅读453次。题目描述给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],_leetcode695

随便推点

设置APP字体大小不跟随手机系统字体而改变_软件字体不跟随苹果系统字体-程序员宅基地

文章浏览阅读9.6k次。设置H5页面中字体大小不跟随手机系统 WebSettings webSettings = webView.getSettings(); webSettings.setTextZoom(100);设置原生APP字体不跟随系统字体而变化在acvitity的父类中重写getResource方法 @Override public Resources getResourc..._软件字体不跟随苹果系统字体

ssh连不上虚拟机上linux,ssh工具连接不上 vmware linux虚拟机的处理-程序员宅基地

文章浏览阅读1.5k次。在本地搭建了linux虚拟机,用ssh工具连接的时候总是被拒绝,或者之前好好的,现在连不上;首先,在系统中使用ssh连接测试,看看是否可以连接成功;输入 ssh locahost 肯定报错,显示connect refuse;原因是没有安装sshd,就是openssh-server输入命令:sudo apt-get install openssh-server 按照提示输入yes,还有用户密码..._虚拟机可以连接ssh 但 工具连不上

Python arcpy检查矢量自相交_arcpy 判断两个面是否相交-程序员宅基地

文章浏览阅读4.7k次,点赞4次,收藏26次。arcpy检查面矢量自相交或异相交的问题。基本思路如下:Python脚本如下,需在ArcGIS 10以上版本中运行 ,最后生成__WT.shp的矢量,即为问题矢量:import arcpy#打开覆盖写入arcpy.env.overwriteOutput=TrueA="E:\\zxj\\hh.shp"fold="E:\\zxj\\"index=A.rfind("\\")..._arcpy 判断两个面是否相交

泰勒公式矩阵形式_雅可比矩阵、黑森矩阵、泰勒展开式-程序员宅基地

文章浏览阅读1.4k次。1 雅可比矩阵假设某函数从 , 从 映射到 向量 , 其雅可比矩阵是 m×n 的矩阵,换句话讲也就是从 到 的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。因此,雅可比矩阵类似于单变数函数的导数。此函数 f 的雅可比矩阵 J 为 m×n 的矩阵,一般由以下方式定义:矩阵的分量可表示成:示例:2 黑森矩阵黑塞矩阵(德语:Hesse-Matrix;英语:Hessian m..._雅克比矩阵 泰勒展开

RemoteCall全新推出网页版,不安装软件也能远程技术支持_@remotecall-程序员宅基地

文章浏览阅读235次。专业企业级远程支持产品RemoteCall近期完成了全新升级更新,推出了不安装软件仅用浏览器就能远程连接的网页版远程支持,摆脱了场所和设备的限制,让技术支持人群只要有网络和浏览器,就能给客户提供远程协助和技术支持。RemoteCall是远程访问异地的电脑或手机来诊断并解决问题或系统故障的云端远程支持服务,由远程技术专业企业RSUPPORT早于2002年开发上市,已经有19年技术经验。RSUPPORT公司在业界最早提出远程支持(Remote Support)的概念,并且最早将远程支持技术商业化。Re._@remotecall

visa虚拟卡生成器_虚拟信用卡,额度6万!无需面签即可办理-程序员宅基地

文章浏览阅读5.8k次。随着移动互联网的发展,移动支付方式已经变得越来越普及,与此同时,虚拟信用卡也为越来越多的人所熟知并使用。各家银行也相继推出不同类型的虚拟信用卡。主要以以下几家银行为代表:1.浦发信用卡之E-GO卡浦发银行的虚拟信用卡叫E-GO卡,只有你有浦发的信用卡,就可以通过网银、微信等渠道开通E-GO卡,银联、VISA、万事达、美国运通四个卡组织,每个卡组织可以分别开通一张。2.中信银行网付卡中信银行的虚拟卡..._初审额度生成器

推荐文章

热门文章

相关标签