【TensorFlow】——broadcast_to(在不复制内存的情况下自动扩张tensor)

本文详细介绍了TensorFlow中广播机制的作用与内在思路,包括如何在不复制数据的情况下扩张tensor维度和形状,使两个tensor维度一致,以及广播在加减操作前的应用。对比了tf.broadcast_to与tf.tile的区别,阐述了广播的内存优势和自动填充便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

作用:

内在的思路

优点

什么时候可以broadcast

​ tf.boradcast_to .VS  tf.tile


作用:

在不会实际意义上复制数据的情况下进行tensor的维度和形状的扩张,使得两个tensor维度和形状一致

对两个维度不一致的tensor进行加减前进行broadcast后,可以进行加减操作

内在的思路

1、小维度对齐

2、扩展维度使得二者维度一致

3、对每一个维度进行size的扩张,使得每个维度的长度一样

优点

1、减少内存

2、自动填充便捷

什么时候可以broadcast

维度不存在或者维度存在但是shape=1,则可以进行扩展

 

 

tf.boradcast_to .VS  tf.tile

NumPy中的broadcast_to函数是用来将数组广播到指定形状的函数。广播是一种在进行复制情况下,使用较小的数组来操作较大的数组的机制。该函数接受两个参数,第一个参数是要广播的数组,第二个参数是目标形状。广播的规则是,将较小的数组在某些维度上进行复制,使得两个数组可以进行元素级别的操作。最终,较小的数组将会被复制到与较大的数组具有相同形状的位置上。 下面是一个使用broadcast_to函数的示例代码: ```python import numpy as np a = np.array([[1, 2, 3]]) b = np.broadcast_to(a, (3, 3)) print("原数组 a:") print(a) print("调用 broadcast_to 函数之后的数组 b:") print(b) ``` 运行结果如下: ``` 原数组 a: [[1 2 3]] 调用 broadcast_to 函数之后的数组 b: [[1 2 3] [1 2 3] [1 2 3]] ``` 在这个示例中,我们创建了一个形状为(1, 3)的数组a,然后使用broadcast_to函数将其广播到形状为(3, 3)的数组b。由于广播的规则,数组a在第一个维度上被复制了3次,最终得到了与数组b具有相同形状的结果。 (出处: Python numpy.broadcast_to函数方法的使用) (出处: Python numpy.expand_dims函数方法的使用) (出处: Python numpy.squeeze函数方法的使用)<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python numpy.broadcast_to函数方法的使用](https://blog.csdn.net/a991361563/article/details/119977132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python-Numpy多维数组--数组操作](https://blog.csdn.net/Odyssues_lee/article/details/85252366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值