pytorch部分函数理解

维度转换函数

rearrange函数

python 复制代码
import torch
from einops import rearrange

data = torch.range(1, 25)
print(data)
data1 = rearrange(data, '(a b) -> a b', a=5, b=5)
data2 = rearrange(data, '(b a) -> a b', a=5, b=5)
print(data1)
print(data2)

对于data1,可以理解为按行展开;对于data2,则理解为按列展开。对data1做一个转置即可得到data2。

torch.view()和torch.reshape()函数

torch.view函数

python 复制代码
data = torch.range(1, 12)
data1=data.view(2,6)
data2=data.view(3,4)
print(data)
print(data1)
print(data2)

torch.reshape函数

python 复制代码
data = torch.range(1, 12)
data1=data.reshape(2,6)
data2=data.reshape(3,4)
print(data)
print(data1)
print(data2)

两者输出都是一样的

这些常见的维度转换函数默认都是按照**行展开**的。

unfold函数和fold函数

unfold函数的输入数据是四维,但输出是三维的。假设输入数据是[B, C, H, W], 那么输出数据是 [B, C* kH * kW, L], 其中 K H K_H KH是核的高, K W K_W KW是核宽。

L则是这个高kH宽kW的核,能在H*W区域按照指定stride滑动的次数。

L = ( H − K H + 1 ) ∗ ( W − K W + 1 ) L=(H-K_H+1)*(W-K_W+1) L=(H−KH+1)∗(W−KW+1)

相关推荐
wangjun51597 分钟前
人工智能、机器学习、深度学习、大模型、智能体知识点汇总
人工智能·深度学习·机器学习
一年春又来15 分钟前
AI-03a1.Python深度学习-Tensorflow和Keras入门
人工智能·深度学习·tensorflow
FL162386312942 分钟前
电线杆损坏倒塌断裂分割数据集labelme格式2597张1类别
人工智能·深度学习
Yuner20001 小时前
Python深度学习:从入门到进阶
python·深度学习
这张生成的图像能检测吗2 小时前
(论文速读)探索多模式大型语言模型的视觉缺陷
人工智能·深度学习·算法·计算机视觉·语言模型·自然语言处理
攻城狮7号2 小时前
GPT-5的诞生之痛:AI帝国的现实危机
人工智能·深度学习·openai·gpt-5·sam altman
Steve_Abelieve3 小时前
Transformer的并行计算与长序列处理瓶颈
人工智能·深度学习·transformer
盼小辉丶4 小时前
TensorFlow深度学习实战(28)——扩散模型(Diffusion Model)
深度学习·tensorflow·生成模型
max5006004 小时前
复现论文《A Fiber Bragg Grating Sensor System for Train Axle Counting》
开发语言·python·深度学习·机器学习·matlab·transformer·机器翻译
max5006005 小时前
基于开源人脸识别模型实现情绪识别功能
python·深度学习·开源·transformer