实验背景
在tensorflow中,模型输入和卷积核一般都是用4-D的tensor来表示,对于构建模型过程中,也都是在多维(超过3维)的tensor或者numpy 数组(权重值weights和偏差bias)进行相应的操作。
对于1维,2维,3维的数据,都可以通过可视化的方式进行直观的理解,有对应现实参照物。超过3维,数据表示和操作,就比较不好理解。诺兰的电影【星际穿越】的第五维空间,脑洞大开。『WedO实验君』就和大家一起看看多维数据的表示。
实验器材
● python
● tensorflow
● numpy
实验内容
表示
我们先来看看1维,2维,3维的数据表示
从中可以看出,多维数据的表示的规律为2维数据的每个单元为1维数据,3维数据的每个单元为2维数据。 从shape来看,最后一个为1维数据的单元个数, 倒数第二个为2维中的1维单元的个数,依此类推。
依照这个规律,4维数据为多个三维数据的集合,5维数据为多个4维数据的集合。
数据访问
tensorflow 的concat 连接理解
concat的含义就是合并,tf.concat([v1,v2] , axis=3)合并 axis表示在哪一个维度进行合并拼接。
tf.concat([v1,v2],axis=3) # 1维上合并,合并前shape为(2,2,2,3) 合并后为(2,2,2,6)
某一维度单元数据访问,还是参照【从shape来看,最后一个为1维数据的单元个数, 倒数第二个为2维中的1维单元的个数】这个来理解
tf.concat([v1,v2],axis=2) # 2维上合并,合并前shape为(2,2,2,3) 合并后为(2,2,4,3)
实验结语
本实验『WedO实验君』查看了tensorflow和numpy中的多维数据的构造和简要操作,希望对大家有帮助。
领取专属 10元无门槛券
私享最新 技术干货