Pytorch

pytorch构建网络

(1)导入必要的库

import torch
import torch.nn as nn

(2)定义神经网络类

class SimpkeNN(nn.Module):
#定义SimpleNN类,继承自nn.Module,所有的神经网络模型都应该继承自nn.Module,这样可以利用到该基类中很多功能,例如参数管理和模块化

(3)初始化方法

def __init__(self):
    super(SimpleNN,self).__init__()

(4)定义神经网络层

    self.fc1=nn.Linear( 784,128)
    self.fc2=nn.Linear(128,128)
    self.output=nn.Linear(128,10)
#定义了三个全连接层(也称为线性层):
self.fc1是第一个全连接层,输入特征为784(通常是处理过的28*28像素的MNIST图像),输出特征为128
self.fc2是第二个全连接层,它接收前一层128个特征的输出,并输出128个特征
self.output是输出层,接收来自上一层的128个特征的输出,并将其映射到10个输出,通常表示分类任务中的类别数量

(5)定义前向传播方法:

def forward(self,x):
    x=torch.relu(self.fc1(x))
    x=torch.relu(self.fc2(x))
    x=self.output(x)
    return x
#forward方法定义了数据通过网络的方式,即神经网络的前向传播
首先,数据x被传入第一个全连接层fc1,然后通过ReLU激活函数进行非线性变换,处理后的输出再次通过第二个全连接层fc2和另一个ReLU激活函数
最后通过输出层output得到最终的输出

数据加载与处理

(1)导入必要的库

from torchvision import transforms,datasets
from torch.utils.data import DataLoader

#torchvision是处理图像数据的库,它提供了常用的数据集和图像变换功能
#transforms用于数据预处理和增强
#datasets用于加载数据集
#DataLoader是PYTORCH中一个非常重要的类,它将一个可迭代的数据集封装成一个迭代器,方便批处理和数据洗牌等操作

(2)定义数据预处理操作

transform=transdorms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,),(0.5,))
])
#Compose创建了一个变换序列
#ToTense()将PIL图像或NumPy ndarray转换为FloatTensor,并在[0.,1.]范围内缩放图像的像素强度值
#Normalize((0.5,),(0.5,))对张量图像进行标准化,给出的均值和标准差应用于所有三个通道

(3)加载训练集

train_set=dataseta.MINST(root='./data',train=True,download=True,transform=transform)
#使用datasets.MNIST加载MNIST训练数据集。root参数指定数据存储的路径,train=True表明是加载训练集(train=False加载测试集),download=True指不在指定路径时自动下载,transform=transform应用之前定义的预处理操作

(4)创建训练数据加载器

train_loader=DataLoader(train_set,batch_size=64,shuffle=True)
DataLoader封装了train_set,batch_size=64制定了每个批次的大小,shuffle=True表示在每个epoch开始时,数据将被打乱,这有助于模型泛化

(5)加载测试集

test_set=datasets.MINST(root='./data',train=False,transform=transform)
#train=False表明此处加载的是测试集

(6)创建测试数据加载器

test_loader=DataLoader(test_set,batch_size=64,shuffle=False)
#为测试数据集创建一个DataLoader,shuffle=False通常用于测试数据,因为在测试阶段不需要打乱数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值