Pytorch重点概念笔记:都是本人学习中真实遇到的(一)

1.torch.squeeze的原理参数和使用方法

torch.squeeze 是PyTorch中的一个函数,用于减少张量的维数,具体来说,它会移除所有维数为1的维度。这个操作通常用于处理那些在特定操作(如卷积或池化)后可能产生不必要的单维度张量。

原理:
在某些情况下,张量操作会生成形状中包含单维度的张量。例如,一个形状为 [B, C, 1, 1] 的张量可能是在某个卷积操作后产生的,其中 B 是批量大小,C 是通道数,而最后两个维度是1。在这些情况下,单维度并没有携带任何有用的空间信息,只是增加了张量的维数。torch.squeeze 的作用就是移除这些不必要的单维度,从而简化张量的形状。

参数:
torch.squeeze 可以接受一个或两个参数:

  • input (Tensor) – 输入张量。
  • dim (int, optional) – 如果指定了,则只会在给定的维度上移除单维度。如果未指定,则移除所有单维度。

使用方法:
下面是一些 torch.squeeze 的使用示例:

import torch
# 创建一个具有单维度的张量
tensor = torch.tensor([[1], [2], [3]])
# 使用squeeze移除所有单维度
squeezed_tensor = torch.squeeze(tensor)
print(squeezed_tensor)  # 输出: tensor([1, 2, 3])
# 创建一个具有多个单维度的张量
batch_tensor = torch.tensor([[[[1]], [[2]]]])
# 使用squeeze移除所有单维度
squeezed_batch_tensor = torch.squeeze(batch_tensor)
print(squeezed_batch_tensor)  # 输出: tensor([1, 2])
# 只在特定维度上移除单维度
specific_squeeze = torch.squeeze(batch_tensor, 2)
print(specific_squeeze)  # 输出: tensor([[[1], [2]]])

在上面的例子中,第一个 tensor 是一个二维张量,其中一个维度是单维度。使用 torch.squeeze 后,单维度被移除,得到一个一维张量。第二个 batch_tensor 是一个四维张量,其中有两个单维度。在默认情况下,torch.squeeze 会移除所有单维度,但如果指定了 dim 参数,它只会在那个维度上移除单维度。在最后一个例子中,我们只在第2个维度上移除了单维度。

2.pytorch中.transpose()的使用方法

在PyTorch中,.transpose()函数用于交换张量的两个维度。这个操作对于改变张量的形状和进行矩阵转置特别有用。下面是.transpose()函数的基本使用方法:

import torch
# 创建一个二维张量
tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
# 使用.transpose()交换两个维度
# 第一个参数是维度索引,第二个参数是维度索引
transposed_tensor = tensor.transpose(0, 1)
print(tensor)
print(transposed_tensor)

输出将会是:

tensor([[1, 2, 3],
        [4, 5, 6]])
tensor([[1, 4],
        [2, 5],
        [3, 6]])

在这个例子中,我们创建了一个2x3的二维张量,然后使用.transpose(0, 1)来交换第0维和第1维,这样就得到了一个转置后的3x2张量。
对于更高维度的张量,你可以指定任意两个维度索引来交换它们的位置。例如,对于一个3维张量,你可以使用.transpose(1, 2)来交换第1维和第2维。
此外,对于矩阵(2D张量),PyTorch还提供了一个特殊的.t()方法,它是.transpose(0, 1)的简写形式,用于快速进行矩阵转置:

# 使用.t()进行矩阵转置
transp

相关推荐

  1. PyTorch学习笔记

    2024-04-23 00:04:04       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 00:04:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 00:04:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 00:04:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 00:04:04       18 阅读

热门阅读

  1. Vue 组件通信的几种方式

    2024-04-23 00:04:04       12 阅读
  2. C++:异常处理

    2024-04-23 00:04:04       13 阅读
  3. 计算机网络——应用层(3)电子邮件

    2024-04-23 00:04:04       13 阅读
  4. .net core8 自定义一个中间件

    2024-04-23 00:04:04       13 阅读
  5. node.js 什么是模板引擎?(具体介绍underscore)

    2024-04-23 00:04:04       13 阅读
  6. Android R framework修改低电量关机值为2%

    2024-04-23 00:04:04       14 阅读
  7. 信息物理系统技术概述_1.概念和实现

    2024-04-23 00:04:04       40 阅读
  8. MongoDB 与MySQL的区别?优势?

    2024-04-23 00:04:04       11 阅读
  9. Flume

    Flume

    2024-04-23 00:04:04      39 阅读
  10. HCIP-Datacom-ARST必选题库_36_加密算法【1道题】

    2024-04-23 00:04:04       16 阅读
  11. 【centso】sqlite3.7.17升级到更新的版本

    2024-04-23 00:04:04       22 阅读
  12. 隐私计算DataTrust:从产品需求到工程架构实践

    2024-04-23 00:04:04       13 阅读