深度学习之pytorch
文章平均质量分 92
总结pytorch编程时常用工具、方法、以及一些常见的问题解决
智慧医疗
浙江大学研究生,专注于后端技术架构和人工智能算法的研究,具有多年大厂工作经验。
展开
-
pytorch中的DataLoader
通常在训练时我们会将数据集分成若干小的、随机的批(batch),这个操作当然可以手动操作,但是pytorch里面为我们提供了API让我们方便地从dataset中获得batch,DataLoader就是来解决这个问题的。原创 2024-01-14 23:42:17 · 1426 阅读 · 0 评论 -
pytorch中池化函数详解
PyTorch 提供了多种池化函数,用于对输入数据进行不同类型的池化操作,包含平均池化、最大池化、全局池化等原创 2023-12-25 23:55:00 · 2969 阅读 · 0 评论 -
深度学习中的池化
池化层是卷积神经网络中常用的一个组件,池化层经常用在卷积层后边,通过池化来降低卷积层输出的特征向量,避免出现过拟合的情况。池化的基本思想就是对不同位置的特征进行聚合统计。池化层主要是模仿人的视觉系统对数据进行降维,用更高层次的特征表示图像。池化层一般没有参数,所以反向传播的时候,只需对输入参数求导,不需要进行权值更新。原创 2023-12-23 23:49:07 · 1808 阅读 · 0 评论 -
深度学习中的损失函数
损失函数是用来量化模型预测和真实标签之间差异的一个非负实数函数,其和优化算法紧密联系。深度学习算法优化的第一步便是确定损失函数形式。损失函数大致可分为两种:回归损失(针对连续型变量)和分类损失(针对离散型变量)。原创 2023-12-22 19:07:28 · 1957 阅读 · 0 评论 -
pytorch中nn.Sequential详解
nn.Sequential是一个序列容器,用于搭建神经网络的模块被按照被传入构造器的顺序添加到容器中。除此之外,一个包含神经网络模块的OrderedDict也可以被传入nn.Sequential()容器中。利用nn.Sequential()搭建好模型架构,模型前向传播时调用forward()方法,模型接收的输入首先被传入nn.Sequential()包含的第一个网络模块中。然后,第一个网络模块的输出传入第二个网络模块作为输入,按照顺序依次计算并传播,直到nn.Sequential()里的最后一个模块输出结果原创 2023-12-19 23:18:37 · 7730 阅读 · 1 评论 -
pytorch中的归一化:BatchNorm、LayerNorm 和 GroupNorm
训练深度神经网络是一项具有挑战性的任务。 多年来,研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。原创 2023-12-10 23:31:08 · 3857 阅读 · 2 评论 -
pytorch中数据预处理模块:transforms详解
对于视觉方向的图像处理方面,PyTorch提供了很好的预处理接口,对于图像的转换处理,使用 torchvision.tranforms 模块使得这些操作非常高效。原创 2023-12-10 00:32:19 · 5873 阅读 · 1 评论 -
pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm
torch.randn_like()用于生成一个与输入张量大小相同的张量,其中填充了均值为 0 方差为 1 的正态分布的随机值。原创 2023-12-09 00:56:41 · 12261 阅读 · 3 评论 -
人工智能中的模型评估
人工智能(AI)模型评估是一个关键的过程,用于确定模型在特定任务上的性能和有效性。这个过程涉及使用各种技术和指标来衡量模型的准确度、可靠性、泛化能力以及其他重要特性。在不同的应用场景中,模型评估的具体细节和重点可能会有所不同,但总体目标是确保模型能够满足预定的标准和实际需求。原创 2023-12-02 22:52:59 · 5557 阅读 · 0 评论 -
pytorch中Conv1d、Conv2d与Conv3d详解
CNN是深度学习的重中之重,而conv1D,conv2D,和conv3D又是CNN的核心,所以理解conv的工作原理就变得尤为重要。原创 2023-12-01 18:25:46 · 17101 阅读 · 1 评论 -
pytorch中的激活函数详解
激活函数是神经网络中引入的非线性函数,用于捕获数据中的复杂关系。它来自动物界的灵感,动物的神经元会接受来自对它有作用的其他神经元的信号,当然这些信号对该神经元的作用大小不同(即具有不同的权重)。原创 2023-11-26 23:25:07 · 1872 阅读 · 1 评论 -
pytorch分布式训练
rank与GPU之间没有必然的对应关系,一个rank可以包含多个GPU;一个GPU也可以为多个rank服务(多进程共享GPU),在torch的分布式训练中习惯默认一个rank对应着一个GPU,因此local_rank可以当作GPU号原创 2023-11-25 23:38:14 · 4586 阅读 · 4 评论 -
pytorch中.to(device) 和.cuda()的区别
推荐使用to(device)的方式,主要原因在于这样的编程方式更加易于扩展,而cuda()必须要求机器有GPU,否则需要修改所有代码;to(device)的方式则不受此限制,device既可以是CPU也可以是GPU;原创 2023-11-21 15:35:23 · 4949 阅读 · 0 评论 -
Pytorch自动混合精度的计算:torch.cuda.amp.autocast
PyTorch中的autocast功能是一个性能优化工具,它可以自动调整某些操作的数据类型以提高效率。具体来说,它允许自动将数据类型从32位浮点(float32)转换为16位浮点(float16),这通常在使用深度学习模型进行训练时使用。原创 2023-11-14 15:48:14 · 7917 阅读 · 0 评论 -
深度学习进度显示神器:tqdm详解
tqdm是一个强大的工具,它简单易用,高度可定制,适合于各种循环任务,特别是在数据处理和机器学习领域中。通过使用tqdm,开发者可以提供更好的用户体验,准确地展示程序的执行进度。原创 2023-10-10 20:10:34 · 10325 阅读 · 0 评论 -
深度学习:模型训练过程中Trying to backward through the graph a second time解决方案
按照错误提示查阅相关资料了解到,实际上在大多数情况下retain_graph都应采用默认的False,除了几种特殊情况。原创 2023-09-26 18:24:57 · 1185 阅读 · 0 评论 -
深度学习文本预处理利器:Tokenizer详解
Tokenizer是一个用于向量化文本,将文本转换为序列的类。计算机在处理语言文字时,是无法理解文字含义的,通常会把一个词(中文单个字或者词)转化为一个正整数,将一个文本就变成了一个序列,然后再对序列进行向量化,向量化后的数据送入模型处理。原创 2023-09-21 16:12:46 · 19743 阅读 · 2 评论 -
数据分析三剑客之一:Pandas详解与实战
Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析“三剑客之一”的盛名(NumPy、Matplotlib、Pandas)。Pandas 已经成为 Python 数据分析的必备高级工具,它的目标是成为强大、灵活、可以支持任何编程语言的数据分析工具。原创 2023-09-19 19:22:11 · 677 阅读 · 0 评论 -
深度学习:pytorch nn.Embedding详解
nn.Embedding是PyTorch中的一个常用模块,其主要作用是将输入的整数序列转换为密集向量表示。在自然语言处理(NLP)任务中,可以将每个单词表示成一个向量,从而方便进行下一步的计算和处理。原创 2023-09-18 20:48:41 · 23501 阅读 · 3 评论 -
pytorch张量维度变换详解:view、squeeze、transpose
Pytorch中的view函数主要用于Tensor维度的重构,即返回一个有相同数据但不同维度的Tensor。view函数的操作对象是Tensor类型,返回的对象类型也为Tensor类型。原创 2023-09-15 16:18:58 · 3459 阅读 · 1 评论 -
深度学习:探究Tensor和Numpy
Tensor之于PyTorch就好比是array之于Numpy或者DataFrame之于Pandas,都是构建了整个框架中最为底层的数据结构;Tensor与普通的数据结构不同,具有一个极为关键的特性——自动求导。原创 2023-08-05 11:10:36 · 3641 阅读 · 0 评论 -
机器学习:训练集与测试集分割train_test_split
在使用机器学习训练模型算法的过程中,为提高模型的泛化能力、防止过拟合等目的,需要将整体数据划分为训练集和测试集两部分,训练集用于模型训练,测试集用于模型的验证。此时,使用train_test_split函数可便捷高效的实现数据训练集与测试集的划分。原创 2023-08-01 16:17:30 · 10844 阅读 · 1 评论 -
pytorch模型的保存与加载
PyTorch提供了三种种方式来保存和加载模型,在这三种方式中,加载模型的代码和保存模型的代码必须相匹配,才能保证模型的加载成功。通常情况下,使用第一种方式(保存和加载模型状态字典)更加常见,因为它更轻量且不依赖于特定的模型类。原创 2023-07-28 10:37:26 · 8627 阅读 · 0 评论