Pytorch张量广播

Pytorch 中的主要的数据结构包括标量、向量、矩阵、张量,同时支持数据之间的运算。在 Pytorch 中有一个张量广播的概念,就是要把小的放大,最后在一起做计算,并不是所有的张量都可以计算,规则如下

  1. 首先比较维度,如果不一致,增加维度值为 "1"
  2. 检查是否可广播,同一个维度上一致或者为 "1",为"1" 可以放大任意多个

不同维度:

复制代码
# 3, 2, 2
tensor_a = torch.tensor([[[1.0, 2.0], [3.0, 4.0]],
                         [[5.0, 6.0], [7.0, 8.0]],
                         [[9.0, 10.0], [11.0, 12.0]]])  # Shape (3, 2, 2)
# 2,2
tensor_b = torch.tensor([[0.1, 0.2],
                         [0.3, 0.4]]) 


result = tensor_a + tensor_b

结果

复制代码
[
	[  
        [ 1.1000,  2.2000], [ 3.3000,  4.4000]
    ],
    [
        [ 5.1000,  6.2000], [ 7.3000,  8.4000]
	],
	[
        [ 9.1000, 10.2000], [11.3000, 12.4000]
	]
]
  • 张量 (2,2) 变成 (1,2,2),这里要注意一下,维度比较是从右向左。
  • 再从 (1,2,2) 变成 (3,2,2),就是把数据重复三次。

广播方便了对张量的操作,例如我们想生成一张绿色北京的图,初始一张图,把绿色通道变成 255。

复制代码
import torch
import matplotlib.pyplot as plt

width, height = 256, 256

green_color = torch.tensor([0, 255, 0], dtype=torch.uint8)

green_image = torch.zeros((height, width, 3), dtype=torch.uint8) + green_color

green_image_np = green_image.numpy()


plt.figure(figsize=(6, 6))
plt.imshow(green_image_np)
plt.axis('off')  
plt.title('Green')
plt.show()
相关推荐
小鹿软件办公1 分钟前
微软发布旗下首款具备思考能力的 MAI-Thinking-1 AI 模型
人工智能·microsoft·语音识别
段一凡-华北理工大学3 分钟前
工业领域的Hadoop架构学习~系列文章12:Hadoop集群监控与运维
大数据·人工智能·hadoop·学习·架构·高炉炼铁·高炉炼铁智能化
澜舟孟子开源社区4 分钟前
澜舟观点:OpenClaw引爆OPC浪潮,亟需理性引导与科技赋能
人工智能·科技
无心水6 分钟前
【Harness:落地实战】23、从CI/CD到AI原生底座:Harness平台全景深度解析——现代软件交付的最终答案?
人工智能·ci/cd·ai-native·openclaw·harness·hermes·honcho
sali-tec8 分钟前
C# 基于OpenCv的视觉工作流-章82-毛刺检测
图像处理·人工智能·opencv·算法·计算机视觉
我爱cope9 分钟前
【Agent智能体18 | 构建AI工作流的技巧-评估】
人工智能·语言模型·职场和发展
marsh020611 分钟前
59 openclaw与边缘计算:低延迟分布式计算方案
人工智能·ai·边缘计算·技术美术
雪隐11 分钟前
个人电脑玩AI01-让5060 Ti给你打工——Whisper语音识别篇(上)
人工智能·后端
词元Max15 分钟前
4.4 sklearn实战:鸢尾花分类与房价预测
人工智能·分类·sklearn
曲幽17 分钟前
你的FastAPI又在服务器上“跑不起来”了?来,今天咱把打包这件事彻底聊透
linux·windows·python·docker·fastapi·web·pyinstaller·nssm·services