首页 > 其他 > 详细

神经网络学习-tensorflow2.0-Broadcasting

时间:2020-10-05 22:03:47      阅读:30      评论:0      收藏:0      [点我收藏+]

相较于tf.expand_dim、tf.tile,broadcasting,broadcasting使用更加简洁,并且更加节省内存空间。

broadcasting作为tensor运算时的一种优化手段,会在进行运算的tensor满足一定条件时自动进行优化,也可使用tf.broadcast_to将tensor扩展为指定维度。

值得注意的是,在使用broadcasting进行维度扩展时,被扩展的维度值要么为1,要么事先没有此维度。

进行broadcasting时,将对原tensor的shape和欲扩展的shape进行左对齐操作,这里需要注意的是,若两者之间有不同且不同的两者都不为1,则将发生错误。

example:

input:

a=tf.random.normal([4,28,28,3])
b=tf.random.normal([3])
c=(a+b).shape
d=(tf.broadcast_to(b,a.shape)).shape
e=(tf.broadcast_to(b,[4,3,5,3])).shape
print(c,‘\n‘,d,‘\n‘,e)

output:

(4, 28, 28, 3)
(4, 28, 28, 3)
(4, 3, 5, 3)

 

神经网络学习-tensorflow2.0-Broadcasting

原文:https://www.cnblogs.com/ladade/p/13771694.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!