(5)深度学习学习笔记-多层感知机-pytorch lightning版

这篇具有很好参考价值的文章主要介绍了(5)深度学习学习笔记-多层感知机-pytorch lightning版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

pytorch lighting是导师推荐给我学习的一个轻量级的PyTorch库,代码干净简洁,使用pl更容易理解ML代码,对于初学者的我还是相对友好的。
pytorch lightning官网网址
https://lightning.ai/docs/pytorch/stable/levels/core_skills.html


多层感知机pl代码

1.引入库

代码如下:

import os
import torch
import torchvision
from torch import nn
import torch.nn.functional as F
from torchvision import transforms
from torchvision.datasets import MNIST
from torch.utils.data import DataLoader
import lightning.pytorch as pl
from torchvision import transforms
from torch.utils import data

# 处理anaconda和torch重复文件
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

2.读入数据

代码如下:(可以直接把download改为true下载)

def load_data_fashion_mnist(batch_size, resize=None):  # 图片28*28*1
    """在本地读入Fashion-MNIST数据集"""
    trans = [transforms.ToTensor()]  # 把图片转换为pytorch tensor
    if resize:
        trans.insert(0, transforms.Resize(resize))
    trans = transforms.Compose(trans)

    mnist_train = torchvision.datasets.FashionMNIST(
        root="D:/python_project/fashion-mnist-master/fashion-mnist-master/data/fashion",
        train=True,
        transform=trans,
        download=False
    )
    mnist_test = torchvision.datasets.FashionMNIST(
        root="D:/python_project/fashion-mnist-master/fashion-mnist-master/data/fashion",
        train=False,
        transform=trans,
        download=False
    )
    return (data.DataLoader(mnist_train, batch_size, shuffle=True,
                            num_workers=0),
            data.DataLoader(mnist_test, batch_size, shuffle=False,
                            num_workers=0))

3.pl二层感知机

# 二层感知机
class Encoder(nn.Module):
    def __init__(self):
        super().__init__()
        self.l1 = nn.Sequential(nn.Linear(28*28, 256), nn.ReLU(), nn.Linear(256, 10))

    def forward(self, x):
        return self.l1(x)

class Perceptron(pl.LightningModule):
# pl模块和nn模块交互

    def __init__(self, encoder):
        super().__init__()
        self.encoder = encoder

    def training_step(self, batch, batch_idx):
        # training_step defines the train loop.
        x, y = batch
        x = x.view(x.size(0), -1)
        y_hat = self.encoder(x)
        loss = F.cross_entropy(y_hat, y)

        print("train_loss=", loss)
        return loss

    def test_step(self, batch, batch_idx):
        # this is the test loop
        x, y = batch
        x = x.view(x.size(0), -1)
        y_hat = self.encoder(x)
        test_loss = F.cross_entropy(y_hat, y)
        self.log("test_loss", test_loss)

    def configure_optimizers(self):
        optimizer = torch.optim.SGD(self.parameters(), lr=1e-1)
        return optimizer


batch_size = 256
# 训练/测试集
train_loader, test_loader = load_data_fashion_mnist(batch_size)

# 模型
model = Perceptron(Encoder())
# 训练模型
trainer = pl.Trainer(max_epochs=10)
trainer.fit(model, train_dataloaders=train_loader)
# 测试
trainer.test(dataloaders=test_loader)

总结

更多pl的方法,可以到pl官网查看文章来源地址https://www.toymoban.com/news/detail-530183.html

到了这里,关于(5)深度学习学习笔记-多层感知机-pytorch lightning版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《动手学深度学习》——多层感知机

    参考资料: 《动手学深度学习》 隐藏层 + 激活函数能够模拟任何连续函数。 4.1.2.1 ReLu函数 ReLU ⁡ ( x ) = max ⁡ ( x , 0 ) operatorname{ReLU}(x) = max(x, 0) ReLU ( x ) = max ( x , 0 ) 当输入为负时,ReLU 的导数为 0 ;当输出为负时,ReLU 的导数为 1 。 ReLU的优势在于它的求导非常简单,要么让

    2024年02月12日
    浏览(45)
  • 李沐《动手学深度学习》多层感知机 深度学习相关概念

    李沐《动手学深度学习》预备知识 张量操作及数据处理 李沐《动手学深度学习》预备知识 线性代数及微积分 李沐《动手学深度学习》线性神经网络 线性回归 李沐《动手学深度学习》线性神经网络 softmax回归 李沐《动手学深度学习》多层感知机 模型概念和代码实现 教材:

    2024年01月20日
    浏览(37)
  • 多层感知机与深度学习算法概述

    读研之前那会儿我们曾纠结于机器学习、深度学习、神经网络这些概念的异同。现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混…可见深度学习技术的影响力之大。深度学习,作为机器学习家族中目前最有价值的一种算法,正在悄悄改变着世界以及我们生活

    2024年02月09日
    浏览(49)
  • 李沐深度学习-激活函数/多层感知机文档

    multilayer perceptron (MLP):多层感知机(多层神经网络) (hidden layer)隐藏层: 介于输入层和输出层之间的网络层 输入层不涉及计算,如果一个神将网络由三层组成,则多层感知机层数为2 多层感知机中隐藏层和输出层都是全连接 隐藏层的输出(也叫隐藏层变量或隐藏变量) 隐藏层单元

    2024年01月24日
    浏览(28)
  • 深度学习实战(11):使用多层感知器分类器对手写数字进行分类

    1.1 什么是多层感知器(MLP)? MLP 是一种监督机器学习 (ML) 算法,属于前馈人工神经网络 [1] 类。该算法本质上是在数据上进行训练以学习函数。给定一组特征和一个目标变量(例如标签),它会学习一个用于分类或回归的非线性函数。在本文中,我们将只关注分类案例。

    2024年02月03日
    浏览(37)
  • 学习笔记 | 多层感知机(MLP)、Transformer

    目录 多层感知机(MLP) Transformer  1. inputs 输入 2. Transformer的Encoder         2.1 Multi-Head Attention         2.2 Add&Normalize         2.3 Feed-Forward Networks 3. Transformer的Decoder         3.1Transformer Decoder的输入         3.2 Masked Multi-Head Attention         3.3 基于En

    2024年02月02日
    浏览(28)
  • 深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类

    多层感知器模型框架 MLP模型框架 MLP实现多分类预测 Keras Keras是一个用Python编写的用于神经网络开发的应用接口,调用开接口可以实现神经网络、卷积神经网络、循环神经网络等常用深度学习算法的开发 特点: 集成了深度学习中各类成熟的算法,容易安装和使用,样例丰富

    2024年01月24日
    浏览(29)
  • PyTorch Lightning:通过分布式训练扩展深度学习工作流

              欢迎来到我们关于 PyTorch Lightning 系列的第二篇文章!在上一篇文章中,我们向您介绍了 PyTorch Lightning,并探讨了它在简化深度学习模型开发方面的主要功能和优势。我们了解了 PyTorch Lightning 如何为组织和构建 PyTorch 代码提供高级抽象,使研究人员和从业者能够

    2024年02月11日
    浏览(31)
  • PyTorch Lightning快速学习教程一:快速训练一个基础模型

    粉丝量突破1200了!找到了喜欢的岗位,毕业上班刚好也有20天,为了督促自己终身学习的态度,继续开始坚持写写博客,沉淀并总结知识! 介绍:PyTorch Lightning是针对科研人员、机器学习开发者专门设计的,能够快速复用代码的一个工具,避免了因为每次都编写相似的代码而

    2024年02月16日
    浏览(44)
  • Pytorch深度学习 - 学习笔记

    dir() :打开,看见包含什么 help() :说明书 pytorch中读取数据主要涉及到两个类 Dataset 和 Dataloader 。 Dataset可以将可以使用的数据提取出来,并且可以对数据完成编号。即提供一种方式获取数据及其对应真实的label值。 Dataloader为网络提供不同的数据形式。 Dataset Dataset是一个抽

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包