【PyTorch】基础知识及常用操作

【PyTorch】基础知识及操作

基础知识

tensor的形状(shape)

在数据被加载为tensor时,PyTorch会根据原始的数据内容和形状 来生成tensor。由于tensor的操作依托于PyTorch提供的方法,此时tensor未必符合PyTorch提供方法的输入形状要求,或此tensor经过操作后不是预期结果。

因此,PyTorch在设计方法时大多对tensor进行了一致的形状建模,具体地讲:

  • 1D数据(通常为序列数据)的形状为:( C C C, L i n L_{in} Lin)/(通道数,数据长度)
  • 2D数据(通常为图像数据)的形状为:( C C C, H i n H_{in} Hin, W i n W_{in} Win)/(通道数,数据高度,数据宽度)

在处理tensor时为了提高计算效率,通常会一次性处理一批相同形状的数据。对于这批数据,其形状在单个数据的形状的基础上增加了批次信息,具体来说:

  • 1D数据在批处理时的形状为:( N N N, C C C, L i n L_{in} Lin)/(批处理大小,通道数,数据长度)
  • 2D数据在批处理时的形状为:( N N N, C C C, H i n H_{in} Hin, W i n W_{in} Win)/(批处理大小,通道数,数据高度,数据宽度)

值得注意的是,在使用PyTorch的方法对tensor进行处理时,方法要求的tensor输入形状与上述的通用形状未必一致 ,比如使用PyTorch提供的nn.LSTM模型方法时,1D数据的输入形状被要求为:( L i n L_{in} Lin, N N N, C C C)/(数据长度,批处理大小,通道数)。

因此,使用PyTorch的方法对tensor进行处理时,tensor的具体形状仍需参考方法的描述

常用操作

tensor处理

创建tensor

torch.Tensor() 和 torch.tensor() 是 PyTorch 中两个不同的方法,用于创建张量,但使用方式有一些区别。

torch.Tensor()

创建一个未初始化的张量,默认数据类型为 torch.float32,不能通过dtype 参数指定数据类型。

不初始化数据,即张量的内容是未定义的,可能是内存中的随机值。

用法: 常用于需要创建一个特定大小但未初始化的张量。

torch.tensor()

根据给定的数据创建一个新的张量,可以通过 dtype 参数指定数据类型。

用法: 用于从数据(例如列表或数组)创建张量。[1](#1)

拼接tensor

torch.cat 和 torch.stack 是 PyTorch 中用于拼接张量的两个不同的函数,它们的主要区别在于拼接的方式和创建的维度。[2](#2)

获取tensor中元素数目

pytorch中,numel() 函数用于获取张量中元素数目,其中 numel() 可以理解为是 number of elements 的缩写。[3](#3)

神经网络层使用

卷积层

卷积操作可参照[4](#4)

设备信息获取

复制代码
def gpus(self, model):
    if torch.cuda.device_count() > 1:
        print("Let's use", torch.cuda.device_count(), "GPUs!")
        model = nn.DataParallel(model)
    return model

  1. torch.Tensor() 和 torch.tensor()的区别 ↩︎

  2. Pytorch种torch.cat与torch.stack的区别 ↩︎

  3. pytorch中numel()函数用于获取张量中元素数目 ↩︎

  4. pytorch中Conv1d、Conv2d与Conv3d详解 ↩︎

相关推荐
智算菩萨2 分钟前
【Python小游戏】基于Pygame的递归回溯迷宫生成与BFS寻路实战:从算法原理到完整游戏架构的深度解析
python·算法·pygame
肾透侧视攻城狮7 分钟前
《解锁TensorFlow NLP实战:一站式掌握文本预处理、向量化技术与情感分析管道最佳实践》
人工智能·深度学习·文本预处理·向量化文本·向量化模式选项·bert分词器·tf构建文本处理管道
Zzz 小生8 分钟前
LangChain Short-term memory:短期记忆使用完全指南
人工智能·python·langchain·github
qq_242188633210 分钟前
使用 PyInstaller 打包 Python 脚本为 EXE(教程)
开发语言·python
闪电橘子11 分钟前
Pycharm运行程序报错 Process finished with exit code -1066598273 (0xC06D007F)
ide·python·pycharm·cuda
我要七分甜12 分钟前
Pycharm中Anaconda的详细配置过程
python·pycharm
Franklin12 分钟前
2025-11-28日,天塌了,Pycharm将不开源了!!最后一个开源社区版本2025.2.5
ide·python·pycharm
wx_bishe28813 分钟前
python社区流浪动物猫狗救助救援网站_4a4i2--论文_pycharm django vue flask
python·pycharm·django·毕业设计
hqyjzsb13 分钟前
非技术管理层推动企业AI转型的系统化实施策略
人工智能·跳槽·创业创新·学习方法·业界资讯·远程工作·程序员创富
智慧地球(AI·Earth)14 分钟前
在Windows上使用Claude Code并集成到PyCharm IDE的完整指南
ide·人工智能·windows·python·pycharm·claude code