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

numpy中的transpose()和pytorch中的permute()

它们都用于重新排列张量的维度,但在实现细节和使用方式上有所不同

numpy.transpose

numpy.transpose 函数用于重新排列数组的维度。它接受一个元组作为参数,表示新的维度顺序。

numpy.transpose(a, axes=None)

a:输入的数组。
axes:一个整数元组,表示新的维度顺序。如果 None,则默认反转所有维度。

  • 示例
import numpy as np

# 创建一个形状为 (2, 3, 4) 的数组
x = np.random.randn(2, 3, 4)

# 重新排列维度为 (2, 0, 1)
y = np.transpose(x, (2, 0, 1))

print(x.shape)  # 输出: (2, 3, 4)
print(y.shape)  # 输出: (4, 2, 3)

在这个例子中,np.transpose(x, (2, 0, 1)) 将数组 x 的维度重新排列为 (2, 0, 1),结果数组 y 的形状变为 (4, 2, 3)。

torch.permute

torch.permute 函数用于重新排列张量的维度。它接受一个元组作为参数,表示新的维度顺序。

torch.permute(input, dims)

input:输入的张量。
dims:一个整数元组,表示新的维度顺序。

  • 示例
import torch

# 创建一个形状为 (2, 3, 4) 的张量
x = torch.randn(2, 3, 4)

# 重新排列维度为 (2, 0, 1)
y = torch.permute(x, (2, 0, 1))

print(x.shape)  # 输出: torch.Size([2, 3, 4])
print(y.shape)  # 输出: torch.Size([4, 2, 3])

在这个例子中,torch.permute(x, (2, 0, 1)) 将张量 x 的维度重新排列为 (2, 0, 1),结果张量 y 的形状变为 (4, 2, 3)。

区别总结

  1. 功能相似:
    numpy.transpose 和 torch.permute 都用于重新排列数组或张量的维度。

  2. 默认行为:
    numpy.transpose:如果没有指定 axes 参数,默认反转所有维度。
    torch.permute:必须显式指定新的维度顺序。

  3. 使用方式:
    numpy.transpose:通常用于 numpy 数组。
    torch.permute:通常用于 torch 张量。

总结

  • numpy.transpose 和 torch.permute 在功能上相似,都用于重新排列数组或张量的维度。

  • numpy.transpose 默认反转所有维度,而 torch.permute 必须显式指定新的维度顺序。


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

相关文章:

  • AdaBoost 二分类问题
  • Android Osmdroid + 天地图 (二)
  • 力扣 最长公共前缀-14
  • Git回到某个分支的某次提交
  • layui的table组件中,对某一列的文字设置颜色为浅蓝怎么设置
  • 嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波
  • 【深度学习】损失函数介绍及代码实现
  • RHCE的学习(17)
  • Python_爬虫2_爬虫引发的问题
  • 实习冲刺第二十二天
  • MySQL如何解决幻读?
  • 15分钟学 Go 第 54 天 :项目总结与经验分享
  • 基于微信小程序的药店管理系统+LW示例参考
  • 一道C语言关于距离的期末题及答案
  • 自然推理系统:的拒取式的解析
  • 数字IC后端低功耗设计实现案例分享(3个power domain,2个voltage domain)
  • 想要成为独立游戏作者 :通关!游戏设计之道 2-2 关卡设计
  • Unity图形学之Shader2.0 深度测试
  • 双指针优质算法题集
  • 基于STM32的智能语音识别饮水机系统设计
  • Ajax异步调用
  • css 溢出隐藏显示省略号
  • 地质旅游平台推动“旅游+地质”融合发展
  • Spring学习笔记_34——@Controller
  • 协方差矩阵及其计算方法
  • 动态规划 之 子数组 算法专题