iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >PyTorch实现卷积神经网络的搭建详解
  • 154
分享到

PyTorch实现卷积神经网络的搭建详解

2024-04-02 19:04:59 154人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录PyTorch中实现卷积的重要基础函数1、nn.Conv2d:2、nn.MaxPool2d(kernel_size=2)3、nn.ReLU()4、x.view()全部代码PyTo

PyTorch中实现卷积的重要基础函数

1、nn.Conv2d:

nn.Conv2d在pytorch中用于实现卷积。

nn.Conv2d(
    in_channels=32,
    out_channels=64,
    kernel_size=3,
    stride=1,
    padding=1,
)

1、in_channels为输入通道数。

2、out_channels为输出通道数。

3、kernel_size为卷积核大小。

4、stride为步数。

5、padding为padding情况。

6、dilation表示空洞卷积情况。

2、nn.MaxPool2d(kernel_size=2)

nn.MaxPool2d在pytorch中用于实现最大池化。

具体使用方式如下:

MaxPool2d(kernel_size, 
		stride=None, 
		padding=0, 
		dilation=1, 
		return_indices=False, 
		ceil_mode=False)

1、kernel_size为池化核的大小

2、stride为步长

3、padding为填充情况

3、nn.ReLU()

nn.ReLU()用来实现Relu函数,实现非线性。

4、x.view()

x.view用于reshape特征层的形状。

全部代码

这是一个简单的CNN模型,用于预测mnist手写体。

import os
import numpy as np
import torch
import torch.nn as nn
import torch.utils.data as Data
import torchvision
import matplotlib.pyplot as plt
# 循环世代
EPOCH = 20
BATCH_SIZE = 50
# 下载mnist数据集
train_data = torchvision.datasets.MNIST(root='./mnist/',train=True,transfORM=torchvision.transforms.ToTensor(),download=True,)
# (60000, 28, 28)
print(train_data.train_data.size())                 
# (60000)
print(train_data.train_labels.size())               
train_loader = Data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuffle=True)
# 测试集
test_data = torchvision.datasets.MNIST(root='./mnist/', train=False)
# (2000, 1, 28, 28)
# 标准化
test_x = torch.unsqueeze(test_data.test_data, dim=1).type(torch.FloatTensor)[:2000]/255.
test_y = test_data.test_labels[:2000]
# 建立pytorch神经网络
class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        #----------------------------#
        #   第一部分卷积
        #----------------------------#
        self.conv1 = nn.Sequential(
            nn.Conv2d(
                in_channels=1,
                out_channels=32,
                kernel_size=5,
                stride=1,
                padding=2,
                dilation=1
            ),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2),
        )
        #----------------------------#
        #   第二部分卷积
        #----------------------------#
        self.conv2 = nn.Sequential( 
            nn.Conv2d(
                in_channels=32,
                out_channels=64,
                kernel_size=3,
                stride=1,
                padding=1,
                dilation=1
            ),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2),
        )
        #----------------------------#
        #   全连接+池化+全连接
        #----------------------------#
        self.ful1 = nn.Linear(64 * 7 * 7, 512)
        self.drop = nn.Dropout(0.5)
        self.ful2 = nn.Sequential(nn.Linear(512, 10),nn.Softmax())
    #----------------------------#
    #   前向传播
    #----------------------------#   
    def forward(self, x):
        x = self.conv1(x)
        x = self.conv2(x)
        x = x.view(x.size(0), -1)
        x = self.ful1(x)
        x = self.drop(x)
        output = self.ful2(x)
        return output
cnn = CNN()
# 指定优化器
optimizer = torch.optim.Adam(cnn.parameters(), lr=1e-3) 
# 指定loss函数
loss_func = nn.CrossEntropyLoss()
for epoch in range(EPOCH):
    for step, (b_x, b_y) in enumerate(train_loader): 
        #----------------------------#
        #   计算loss并修正权值
        #----------------------------#   
        output = cnn(b_x)
        loss = loss_func(output, b_y) 
        optimizer.zero_grad() 
        loss.backward() 
        optimizer.step() 
        #----------------------------#
        #   打印
        #----------------------------#   
        if step % 50 == 0:
            test_output = cnn(test_x)
            pred_y = torch.max(test_output, 1)[1].data.numpy()
            accuracy = float((pred_y == test_y.data.numpy()).astype(int).sum()) / float(test_y.size(0))
            print('Epoch: %2d'% epoch, ', loss: %.4f' % loss.data.numpy(), ', accuracy: %.4f' % accuracy)

以上就是PyTorch实现卷积神经网络的搭建详解的详细内容,更多关于PyTorch搭建卷积神经网络的资料请关注编程网其它相关文章!

--结束END--

本文标题: PyTorch实现卷积神经网络的搭建详解

本文链接: http://www.lsjlt.com/news/117706.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PyTorch实现卷积神经网络的搭建详解
    目录PyTorch中实现卷积的重要基础函数1、nn.Conv2d:2、nn.MaxPool2d(kernel_size=2)3、nn.ReLU()4、x.view()全部代码PyTo...
    99+
    2024-04-02
  • pytorch如何搭建卷积神经网络
    在PyTorch中搭建卷积神经网络通常涉及以下步骤: 导入必要的库和模块: import torch import torch....
    99+
    2024-04-08
    pytorch
  • pytorch怎么搭建卷积神经网络
    在PyTorch中搭建卷积神经网络(Convolutional Neural Network,CNN)通常需要使用torch.nn模...
    99+
    2024-04-02
  • Pytorch卷积神经网络resent网络实践
    目录前言一、技术介绍二、实现途径三、总结前言 上篇文章,讲了经典卷积神经网络-resnet,这篇文章通过resnet网络,做一些具体的事情。 一、技术介绍 总的来说,第一步首先要加载...
    99+
    2024-04-02
  • pytorch搭建卷积神经网络要注意什么
    搭建卷积神经网络时,需要注意以下几点: 确保输入数据的维度和通道数与网络的输入层匹配。 确保卷积核的大小、步长和填充大小设置合理。...
    99+
    2024-04-08
    pytorch
  • pytorch卷积神经网络搭建要注意什么
    在搭建PyTorch卷积神经网络时,需要注意以下几点: 输入数据的维度和通道数必须与网络模型中的输入层匹配。 确保卷积核的大小、步...
    99+
    2024-04-02
  • PyTorch中的卷积神经网络怎么实现
    在PyTorch中,可以使用torch.nn模块中的Conv2d类来实现卷积神经网络。以下是一个简单的示例,展示如何在PyTorch...
    99+
    2024-03-05
    PyTorch
  • keras怎么搭建卷积神经网络
    在Keras中搭建卷积神经网络(CNN)可以通过Sequential模型或Functional API来实现。下面分别介绍这两种方法...
    99+
    2024-04-02
  • 如何用tensorflow搭建卷积神经网络
    要用TensorFlow搭建卷积神经网络(CNN),首先需要导入TensorFlow库并定义网络的结构。以下是一个简单的示例代码,展...
    99+
    2024-04-03
    tensorflow
  • Python编程pytorch深度卷积神经网络AlexNet详解
    目录 容量控制和预处理读取数据集2012年,AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。AlexNet使用了8...
    99+
    2024-04-02
  • TensorFlow卷积神经网络AlexNet实现示例详解
    2012年,Hinton的学生Alex Krizhevsky提出了深度卷积神经网络模型AlexNet,它可以算是LeNet的一种更深更宽的版本。AlexNet以显著的优势赢得了竞争激...
    99+
    2024-04-02
  • 图卷积神经网络(GCN)综述与实现(PyTorch版)
    图卷积神经网络(GCN)综述与实现(PyTorch版) 本文的实验环境为PyTorch = 1.11.0 + cu113,PyG = 2.0.4,相关依赖库和数据集的下载请见链接。 一、图卷积神经...
    99+
    2023-09-28
    pytorch cnn 深度学习 python
  • Pytorch搭建简单的卷积神经网络(CNN)实现MNIST数据集分类任务
    目录关于一些代码里的解释,可以看我上一篇发布的文章,里面有很详细的介绍!!!第一步:基本库的导入第二步:引用MNIST数据集,这里采用的是torchvision自带的MNIST数据集...
    99+
    2023-03-23
    Pytorch卷积神经网络 Pytorch MNIST数据集分类
  • Python深度学习pytorch卷积神经网络LeNet
    目录LeNet模型训练不变性 在本节中,我们将介绍LeNet,它是最早发布的卷积神经网络之一。这个模型是由AT&T贝尔实验室的研究院Yann LeCun在1989年提出的(并...
    99+
    2024-04-02
  • Python中如何实现卷积神经网络
    这篇文章主要介绍了Python中如何实现卷积神经网络,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、卷积神经网络Yann LeCun 和Yoshua Bengio在1995...
    99+
    2023-06-15
  • Python深度学习pytorch神经网络图像卷积运算详解
    目录互相关运算卷积层特征映射由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cros...
    99+
    2024-04-02
  • 怎么用TensorFlow实现卷积神经网络
    这篇文章主要介绍“怎么用TensorFlow实现卷积神经网络”,在日常操作中,相信很多人在怎么用TensorFlow实现卷积神经网络问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用TensorFlow实现...
    99+
    2023-06-25
  • Lasagne中怎么实现卷积神经网络
    Lasagne是一个轻量级的神经网络库,可以很容易地实现卷积神经网络。 以下是一个简单的示例,展示如何在Lasagne中实现一个简单...
    99+
    2024-04-02
  • Caffe卷积神经网络solver及其配置详解
    目录引言Solver的流程:训练测试模型参数引言 solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一...
    99+
    2024-04-02
  • pytorch 搭建神经网路的实现
    目录1 数据 (1)导入数据(2)数据集可视化(3)为自己制作的数据集创建类(4)数据集批处理(5)数据预处理2 神经网络(1)定义神经网络类(3)模型参数3 最优化模型参...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作