代码编织梦想

每天五分钟深度学习pytorch:搭建卷积神经网络完成手写字体识别-爱代码爱编程

本文重点 前面的一篇文章我们学习了使用pytorch搭建卷积神经网络,本文我们使用刚刚搭建的卷积神经网络完成手写字体识别的任务 手写字体识别是之前进行介绍过的常用的数据集了,然后卷积神经网络如何搭建前面已经进行介绍了,下面我们将再详细的介绍一下如何使用卷积神经网络完成手写字体识别。 算法模型 class CNN(nn.Module):

每天五分钟深度学习框架pytorch:卷积神经网络的搭建-爱代码爱编程

本文重点 从本文开始我们将开启卷积神经网络的搭建了,卷积神经网络网络是深度学习中基础的算法模型之一,但是这里我们从实战为主,我们并不会对卷积神经网络详细的介绍,如果不懂得可以看我得《每天五分钟计算机视觉》专栏。 卷积神经网络 卷积神经网络可以认为是多个卷积层,池化层的堆叠,然后后面接全连接层,pytorch中对这些网络层进行了封装,我们可以直接使用:

每天五分钟深度学习pytorch:基于全连接神经网络完成手写字体识别-爱代码爱编程

本文重点 上一节我们学习了搭建普通的全连接神经网络,我们现在用它来解决一个实际问题,我们用它跑一下手写字体识别的数据,然后看看它的效果如何。 网络模型 class ThreeNet(nn.Module) : def __init__ (self,in_dim,n_hidden_1,n_hidden_2,out_dim): s

每天五分钟深度学习pytoroch:基于pytorch搭建逻辑回归算法模型-爱代码爱编程

本文重点 前面我们学习了线性回归模型的搭建,无论是基于pytorch还是不基于pytorch,以上的模型都是回归模型,本文我们将使用pytorch搭建逻辑回归模型,逻辑回归模型是一个经典的分类问题。 模型搭建 class LogisticRegression(nn.Module) : def __init__(self) : super (Lo

每天五分钟玩转深度学习pytorch:l1正则化和l2正则化的应用_pytorch的l1正则化 应用场景-爱代码爱编程

本文重点 前面章节,我们学习了为不同的网络层的参数设置不同的学习率,然后学习了学习率衰减,这些都是针对模型参数的,本节课程我们学习正则化技术,该技术也是针对模型参数的,它能有效的帮助我们解决过拟合的问题。 本文L1正则化可以手动加到损失函数上,L2可以使用optim优化器直接使用,那么本文是再学习第6步(优化器)以及第8步(计算损失),因为要将L1加到

每天五分钟深度学习框架pytorch:基于pytorch搭建多变量回归模型-爱代码爱编程

本文重点 前面我们学习了基于pytorch搭建多项式回归模型,我们也知道了它和多变量回归模型的区别,本文我们使用pytorch搭建多变量回归模型 模型搭建 class Multivariable_Regression(nn.Module): def __init__(self): super(Multivariable_Regression,

每天五分钟深度学习框架pytorch:交叉熵计算时的维度是什么?-爱代码爱编程

本文重点 前面我们学习了pytorch中已经封装好的损失函数,已经封装好的损失函数有很多,但是我们并没有详细介绍,原因就是单独介绍损失函数可能难以理解,我们上一章节的目的是让大家先了解一下常见的损失函数,然后再之后的实际使用中遇到哪个损失函数,我们就使用哪个损失函数。 本文我们主要讲解交叉熵损失函数,分析一下交叉熵损失函数的维度信息,之所以单独学习交叉

每天五分钟深度学习框架pytorch:神经网络工具箱nn的介绍-爱代码爱编程

本文重点 我们前面一章学习了自动求导,这很有用,但是在实际使用中我们基本不会使用,因为这个技术过于底层,我们接下来将学习pytorch中的nn模块,它是构建于autograd之上的神经网络模块,也就是说我们使用pytorch封装好的神经网络层,它自动会具有求导的功能,也就是说这部分我们根本不用关系。此专栏主要学习步骤2(神经网络的搭建),详细步骤请看前面

每天五分钟深度学习框架pytorch:激活函数在神经网络中的应用-爱代码爱编程

本文重点 在神经网络搭建的时候,激活层是很重要的,本文讲解一下pytorch中已经封装好的激活函数,我们在使用的时候直接调用就可以了。 nn模块中部分激活函数的父类 class Threshold(Module): __constants__ = ['threshold', 'value', 'inplace'] def __init__(sel

每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数-爱代码爱编程

本文重点 前面我们学习了pytorch中两种模式的损失函数,一种是nn,另外一种是functional,本文将讲解pytorch中已经封装好的损失函数。其实nn的方式就是类,而functional的方式就是方法。nn中使用的也是functional。 损失函数中的参数 无论是nn还是functional,大多数的损失函数都有size_average和

每天五分钟深度学习pytorch:不同的神经网络层设置不同的学习率-爱代码爱编程

本文重点 我们前面学习了基本网络模型的搭建,获取网络模型的子结构,以及优化器optim,我们发现我们设置优化器的时候,是对整个模型设置的,也就是说整个模型的参数学习率是一样,本节课程我们学习如何给不同的网络层设置不同的学习率。主要还是通过优化器optim来实现的,本文学习第6步(优化器) 网络模型的搭建 import torch from torch

每天五分钟玩转深度学习pytorch:模型参数优化器torch.optim-爱代码爱编程

本文重点 在机器学习或者深度学习中,我们需要通过修改参数使得损失函数最小化(或最大化),优化算法就是一种调整模型参数更新的策略。在pytorch中定义了优化器optim,我们可以使用它调用封装好的优化算法,然后传递给它神经网络模型参数,就可以对模型进行优化。本文是学习第6步(优化器),参考链接pytorch的学习路线 随机梯度下降算法 在深度学习和机

每天五分钟玩转深度学习框架pytorch:获取神经网络模型的参数-爱代码爱编程

本文重点 当我们定义好神经网络之后,这个网络是由多个网络层构成的,每层都有参数,我们如何才能获取到这些参数呢?我们将再下面介绍几个方法来获取神经网络的模型参数,此文我们是为了学习第6步(优化器)。 获取所有参数Parameters from torch import nn net=nn.Sequential( nn.Linear(4,2), nn

每天五分钟玩转深度学习框架pytorch:将nn的神经网络层连接起来-爱代码爱编程

本文重点 前面我们学习pytorch中已经封装好的神经网络层,有全连接层,激活层,卷积层等等,我们可以直接使用。 如代码所示我们直接使用了两个nn.Linear(),这两个linear之间并没有组合在一起,所以forward的之后,分别调用了,在实际使用中我们常常将几个神经层组合在一起,这样不仅操作方便,而且代码清晰。 这里介绍一下Sequent

每天五分钟玩转深度学习pytorch:nn.module中封装好的神经网络层-爱代码爱编程

本文重点 PyTorch实现了神经网络中绝大多数的layer,这些layer都继承于nn.Module,封装了可学习参数parameter,并实现了forward函数,且很多都专门针对GPU运算进行了CuDNN优化,其速度和性能都十分优异。本文介绍pytorch中已经封装好的神经网络层,我们可以直接通过nn.的方式来调用。本文主要学习第2步(模型搭建)。

每天五分钟玩转深度学习pytorch:获取神经网络模型的子网络模型-爱代码爱编程

本文重点 本文主要为第二步(模型搭建)和第六步(优化器)服务,因为子网络是网络模型的一部分,我们如何获取自网络,需要了解网络的模型结构,然后再优化器部分我们需要获取指定网络模型部分的模型参数,所以本节课程很重要。 named_children import torch from torch import nn class BasicNet(nn.Mo

每天五分钟深度学习框架pytorch:nn.module和nn.function的区别_pytorch中model和function的区别-爱代码爱编程

本文重点 前面我们学习了神经网络工具箱nn.Module,本节课程我们学习一下nn.function,我们可以暂时这样认为,基本上nn.Module所能够完成的任务,nn.function基本上都可以完成,也就是它们两个是重复的,但是它们两个还是有很大的区别,这里我们简单的进行一下介绍。 nn.Module 和 nn.functional的区别

每天五分钟深度学习框架pytorch:自动求导机制-爱代码爱编程

本文重点 深度学习框架pytorch拥有自动求导的机制,自动求导是 PyTorch 中非常重要的特性,能够让我们避免手动去计算非常复杂的导数,这能够极大地减少了我们构建模型的时间。本文学习的是第10步反向传播,学习路线参考前面一篇文章。 pytorch0.4版本 在pytorch的0.4版本中拥有Variable,它具有自动求微分的功能,我们可以使用

每天五分钟深度学习pytorch:训练神经网络模型的基本步骤-爱代码爱编程

本文重点 本文个人认为是本专栏最重要的章节内容之一,前面我们学习了pytorch中的基本数据tensor,后面我们就将学学习深度学习模型的内容了,在学习之前,我们先来看一下我们使用pytorch框架训练神经网络模型的基本步骤,然后我们下面就将这些步骤分解开来,详细学习。 代码 这个代码做了什么? 这个代码虽然仅仅有29行,但是确是深度学习模型训

每天五分钟深度学习框架pytorch:tensor向量之间常用的运算操作-爱代码爱编程

本文重点 在数学中经常有加减乘除运算,在tensor中也不例外,也有类似的运算,本节课程我们将学习tensor中的运算 常见运算 加法+或者add import torch import numpy as np a=torch.rand(16,3,28,28) b=torch.rand(1,3,28,28) print(a+b) impor