tensorflow之张量扩张Broadcasting合并分割

Posted 月疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow之张量扩张Broadcasting合并分割相关的知识,希望对你有一定的参考价值。

BroadCasting:张量维度的扩张,如果a张量和b张量维度不同,不能进行合并(或者相互加减),那么就在张量少的那一端添加一些元素,使得a张量和b张量维度相同。

原理图: 

 

 

 

 

 张量的合并

 

tf.concat([a,b],axis=0)#合并a和b张量,在0维度上进行合并,维度不变

 

 合并改变维度

tf.stack([a,b],axis=3).shape#合并之后在第三张量列增加一个维度

 

 

concat要求第一个维度不相等,但是后面维度必须相等,stack必须所有维度都相等,才能增加新维度 

 

如何切割一个数据:

unstack :

a=tf.ones([4,35,8])
b=tf.ones([4,35,8])
c=tf.stack([a,b])#合并
aa,bb=tf.unstack(c,axis=0) #分割

 

splite分割api 

 

 

以上是关于tensorflow之张量扩张Broadcasting合并分割的主要内容,如果未能解决你的问题,请参考以下文章

学习Tensorflow之基本操作

TensorFlow 之tf.placeholder()

TensorFlow之tf.unstack学习循环神经网络中用到!

Tensorflow(4) 张量属性:维数、形状、数据类型

TensorFlow张量Tensor

如何用tensorflow把矩阵转换为张量