深度学习|pytorch基本运算-乘除法和幂运算

【1】引言

前序学习进程中,已经对pytorch张量数据的生成和广播做了详细探究,文章链接为:

深度学习|pytorch基本运算-CSDN博客

深度学习|pytorch基本运算-广播失效-CSDN博客

上述探索的内容还止步于张量的加减法,在此基础上,今天先一起探索张量的乘除法,然后是幂运算。

【2】乘除法

pytorch张量的乘除法运算使用的运算符分别是"*"和"/",乘除法与加减法运算一致,都是按照同一位置元素相互乘除的方式展开运算,代码有:

python 复制代码
# 导入包
import torch
# 生成多维张量
y=torch.tensor([[1,2,3],
               [1,2,3],
                [1,2,3]])
z=torch.tensor([
    [3,3,3],
    [2,2,2],
    [1,1,1]
])
#打印
print('y=',y)
print('z=',z)
# 乘法
a=y*z
print('a=',a)
# 除法
b=y/z
print('b=',b)

代码运行后的结果为:

++图1 pytorch张量对位乘除++

图1 现实的结果清楚表明:pytorch张量乘除运算时遵守对位法则,同一位置的元素相互乘除获得新张量。

【3】幂运算

pytorch幂运算作为乘除法的一种高阶运算,运算符是"**",遵循对位运算的基本法则,代码:

python 复制代码
# 导入包
import torch
# 生成多维张量
y=torch.tensor([[1,2,3],
               [1,2,3],
                [1,2,3]])
z=torch.tensor([
    [3,3,3],
    [2,2,2],
    [1,1,1]
])
#打印
print('y=',y)
print('z=',z)
# 幂运算
a=y**z
print('a=',a)

上述代码的运算结果为:

++图2 pytorch张量对位幂运算++

由图2所示的结果可以看出,pytorch幂运算严格遵守了张量对位运算的法则。

【4】幂运算的广播

当两个幂运算的pytorch张量大小不一致时,在允许广播的前提下,pytorch张量会自动广播然后开展运算,代码:

python 复制代码
# 导入包
import torch
# 生成多维张量
y=torch.tensor([[1,2,3],
               [1,2,3],
                [1,2,3]])
z=torch.tensor([
    [3],
    [2],
    [1]
])
#打印
print('y=',y)
print('z=',z)
# 幂运算
a=y**z
print('a=',a)

代码运算的结果为:

++图3 pytorch张量对位幂运算-广播效果++

对比图3和图2的运算效果,可见pytorch张量在完成广播运算后,保证张量各个元素均有对位元素,然后再执行了幂运算。

【5】总结

探索了pytorch张量的乘除法和幂运算,并对幂运算的广播效果进行了探究。

相关推荐
王_teacher37 分钟前
RNN 循环神经网络 计算过程(通俗+公式版+运行实例)
人工智能·rnn·nlp
玩转单片机与嵌入式41 分钟前
一个成熟的嵌入式AI系统,是长什么样子的?
人工智能·单片机·嵌入式硬件·嵌入式ai
曦樂~3 小时前
【机器学习】概述
人工智能·机器学习
DeniuHe3 小时前
机器学习模型中的偏置项(bias / 截距项)到底有什么用?
人工智能·机器学习
小江的记录本3 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
思绪无限3 小时前
YOLOv5至YOLOv12升级:植物叶片病害识别系统的设计与实现(完整代码+界面+数据集项目)
深度学习·yolo·目标检测·yolov12·yolo全家桶·植物叶片病害检测
白羊by4 小时前
YOLOv1~v11 全版本核心演进总览
深度学习·算法·yolo
深小乐4 小时前
AI 周刊【2026.04.13-04.19】:中美差距减小、Claude Opus 4.7发布、国产算力突围
人工智能
深小乐4 小时前
从 AI Skills 学实战技能(七):让 AI 自动操作浏览器
人工智能
workflower4 小时前
人机交互部分OOD
运维·人工智能·自动化·集成测试·人机交互·软件需求