PyTorch教程(五):Broadcasting
生活随笔
收集整理的這篇文章主要介紹了
PyTorch教程(五):Broadcasting
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Broadcasting可以自動(dòng)進(jìn)行維度的擴(kuò)展,而且不需要拷貝數(shù)據(jù)。
例如:
import torcha = torch.rand(3,4) # tensor([[0.0422, 0.9152, 0.5486, 0.8753], # [0.3918, 0.6056, 0.0634, 0.9498], # [0.4444, 0.2209, 0.8165, 0.1533]]) b = torch.rand(4) # tensor([0.4145, 0.2913, 0.1655, 0.3705]) a + b # tensor([[0.4567, 1.2065, 0.7141, 1.2458], # [0.8064, 0.8969, 0.2289, 1.3203], # [0.8589, 0.5122, 0.9819, 0.5238]])上面的例子可以看到,雖然a和b的shape不同,但是依然可以進(jìn)行相加操作,原因就是PyTorch自動(dòng)做了Broadcasting。但不是任何兩個(gè)tensor都可以進(jìn)行Broadcasting。
如果兩個(gè)Tensor是broadcastable的,那么就可以對他倆使用支持broadcast的運(yùn)算,比如直接加減乘除
而兩個(gè)向量要是broadcast的話,必須滿足以下兩個(gè)條件:
- 每個(gè)tensor至少是一維的
- 兩個(gè)tensor的維數(shù)從后往前,對應(yīng)的位置要么是相等的,要么其中一個(gè)是1,或者不存在
總結(jié)
以上是生活随笔為你收集整理的PyTorch教程(五):Broadcasting的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「原创」吃莲雾有什么好处
- 下一篇: PyTorch教程(七):属性统计