当前位置: 首页 > article >正文

简易了解Pytorch中的@ 和 * 运算符(附Demo)

目录

  • 1. 基本知识
  • 2. @
  • 3. *

1. 基本知识

在 PyTorch 中,@ 和 * 运算符用于不同类型的数学运算,具体是矩阵乘法和逐元素乘法

基本知识

运算符功能适用场景示例
@矩阵乘法(或点乘)用于执行线性代数中的矩阵乘法C = A @ B,其中 A 和 B 为矩阵
*逐元素乘法用于对同一形状的张量进行逐元素相乘C = A * B,其中 A 和 B 为同形状张量

两者的差异总结如下:

特点矩阵乘法 (@)逐元素乘法 (*)
运算类型矩阵乘法(线性代数)逐元素运算
适用条件列数等于行数形状相同
返回结果形状(m, p)与输入张量相同
使用示例C = A @ BC = A * B
适用场景线性变换、深度学习中的权重计算图像处理、逐元素操作等
  • 使用 @ 运算符进行矩阵乘法适合线性代数操作,常用于深度学习中的层与权重的运算
  • 使用 * 运算符进行逐元素乘法适合需要对张量进行元素级操作的场景,如数据处理和图像增强等

2. @

@ 运算符用于执行矩阵乘法或向量点乘
对于两个矩阵 A 和 B,其结果 C 是一个新矩阵,其中 C[i][j] 是 A 的第 i 行与 B 的第 j 列的点积

适用条件: A 的列数必须等于 B 的行数,即 A 的形状为 (m, n),B 的形状为 (n, p),则结果 C 的形状为 (m, p)

import torch

# 创建两个矩阵
A = torch.tensor([[1, 2], [3, 4]])  # 2x2 矩阵
B = torch.tensor([[5, 6], [7, 8]])  # 2x2 矩阵

# 使用 @ 运算符进行矩阵乘法
C = A @ B
print("矩阵乘法结果:\n", C)

截图如下:

在这里插入图片描述

3. *

*运算符用于对两个相同形状的张量进行逐元素相乘
结果张量的每个元素是操作数张量中对应元素的乘积

适用条件: A 和 B 必须具有相同的形状(或能够通过广播规则兼容)

import torch

# 创建两个相同形状的张量
A = torch.tensor([[1, 2], [3, 4]])  # 2x2 矩阵
B = torch.tensor([[5, 6], [7, 8]])  # 2x2 矩阵

# 使用 * 运算符进行逐元素乘法
C = A * B
print("逐元素乘法结果:\n", C)

截图如下:

在这里插入图片描述


http://www.kler.cn/a/377909.html

相关文章:

  • 【知识科普】一篇文章带你了解什么是http以及https
  • koa项目实战 == 实现注册登录鉴权
  • 程序中怎样用最简单方法实现写excel文档
  • 【ESP32+MicroPython】开发环境部署
  • 从APP小游戏到Web漏洞的发现
  • 大模型的提示学习
  • 图优化以及如何将信息矩阵添加到残差
  • 网络编程项目之UDP聊天室
  • 【书生.浦语实战营】——入门岛
  • 【OpenSearch】机器学习(Machine Learning)神经搜索教程
  • 【Android】View的事件分发机制
  • Java项目实战II基于Spring Boot的美食烹饪互动平台的设计与实现(开发文档+数据库+源码)
  • 十四届蓝桥杯STEMA考试Python真题试卷第二套第二题
  • 解锁同城流量密码,六大实用技巧全解析
  • 勒索软件通过易受攻击的 Cyber​​Panel 实例攻击网络托管服务器
  • 探索 Spring Boot 中 Elasticsearch 的实战应用
  • Java实战项目-基于 SpringBoot+Vue 的医院管理系统
  • 在Vue中处理图片加载失败:自动替换备用图片
  • kafka实时返回浏览数据
  • 迷宫求解:探索最优路径的算法与应用
  • Java接入Hive
  • IMX6ULL裸机-汇编_反汇编_机器码
  • win10 更新npm 和 node
  • Redis系列---常见问题
  • Hadoop生态圈框架部署(一)- Linux操作系统安装及配置
  • [CARLA系列--01]CARLA 0.9.15 在Windows下的安装教程(一)