Ch4.TensorFlow基本操作5-Broadcasting

TensorFlow基本操作5-Broadcasting

重点函数

数据复制:
tf.tile(x, multiples)

8 Broadcasting vs 数据复制

一、不需要人为 1.扩充维度, 2.复制填充数据。
二、节省空间。

数据复制
通过 tf.tile(x, multiples) 函数完成数据在指定维度上的复制操作,multiples 分别指定了每个维度上面的复制倍数,对应位置为 1 表明不复制,为 2 表明新长度为原来的长度的 2 倍,即数据复制一份,以此类推。

Broadcasting
Broadcasting 也叫广播机制(自动扩展也许更合适),它是一种轻量级张量复制的手段,在逻辑上扩展张量数据的形状,但是只要在需要时才会执行实际存储复制操作。对于大部分场景,Broadcasting 机制都能通过优化手段避免实际复制数据而完成逻辑运算,从而相对于 tf.tile() 函数,减少了大量计算代价。

Broadcasting 机制的核心思想是普适性,即同一份数据能普遍适合于其他位置。在验证普适性之前,需要将张量 shape 靠右对齐,然后进行普适性判断:对于长度为 1 的维度,默认这个数据普遍适合于当前维度的其他位置;对于不存在的维度,则在增加新维度后默认当前数据也是普适性于新维度的,从而可以扩展为更多维度数、其他长度的张量形状。

Broadcasting 作为优化手段,系统会根据数据自动匹配(隐式)。

通过 tf.broadcast_to(x, new_shape) 可以显式将现有 shape 扩张为 new_shape。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容