《Pytorch2.0深度学习从零开始学》笔记(一)

基于pytorch的MNIST分类实战

模型的损失函数与优化函数

(1)选用MSELoss作为损失函数(均方损失函数)

MSELoss的作用是计算预测值和真实值之间的欧氏距离。预测值和真实值越接近,两者的均方差就越小,均方差函数常用于线性回归模型的计算

loss=torch.nn.MSELoss(reduction="sum")(pred,y_batch)

(2)选用Adam优化器作为优化函数

optimizer=torch.optim.Adam(model.parameters(),lr=2e-5)

数据图像的获取与标签的说明

#对数据进行获取
#MNIST数据集--一个用来训练各种图像处理系统的二进制图像数据集
import numpy as np
x_train=np.load("./dataset/mnist/x_train.npy")
y_train_label=np.load("./dataset/mnist/y_train_label.npy")
one_hot编码函数

用于将分类数据转换为向量形式

x=torch.tensor(y_train_label[:5],dtype=torch.int64)
#定义一个张量输入,因为此时有5个数值,且最大值是9,类别数是10
#所以我们可以得到y的输出结果的形状为shape=(5,10),即5行12列
y=torch.nn.functional.one_hot(x,10)
#一个参数张量x,10为类别数

多层感知机的模型结构

    class NeuralNetwork(nn.Module):
    def __init__(self):
        super(NeuralNetwork,self).__init__()
        self.flatten=nn.Flatten()
    self.linear_relu_stack=nn.Sequential(
        nn.Linear(28*28,312),
        nn.ReLU(),
        nn.Linear(312,256),
        nn.ReLU(),
        nn.Linear(256,10)
    )
def forward(self,input):
    x=self.flatten(input)
    logits=self.linear_relu_stack(x)
    return logits

损失函数的表示与计算

import torch
y=torch.LongTensor([0])
z=torch.Tensor([0.2,0.1,-0.1])
criterion=torch.nn.CrossEntropyLoss()
loss=criterion(z,y)
print(loss)

基于pytorch的手写体识别的实现

import os
import torch
import numpy as np
from tqdm import tqdm
batch_size=320#设定每次训练的批次数

PyTorch是一个流行的深度学习框架,致力于提供高效的神经网络训练和推理。EfficientNet是一种高效且准确的神经网络架构,PyTorch 2.0中包括了对EfficientNet的支持。 使用PyTorch 2.0习EfficientNet首先需要安装PyTorch的最新版本。然后,可以通过PyTorch Hub来下载和使用EfficientNet模型。PyTorch Hub提供了一个简单的接口,可以方便地加载和使用各种预训练的模型。通过以下代码可以在PyTorch 2.0中加载EfficientNet: ```python import torch model = torch.hub.load('rwightman/gen-efficientnet-pytorch', 'efficientnet_b0', pretrained=True) ``` 通过上述代码,我们可以加载一个已经预训练好的EfficientNet模型,并将其命名为`model`。其中,`efficientnet_b0`表示EfficientNet的网络结构,也可以根据实际需求选择其他版本,如`efficientnet_b1`或`efficientnet_b2`等。`pretrained=True`表示使用预训练的权重。 接下来,可以使用加载的EfficientNet模型进行训练或推理。例如,可以使用标准的PyTorch训练循环进行训练,通过定义损失函数和优化器,以及调用模型的`forward()`方法来计算预测值。对于推理,可以通过调用模型的`forward()`方法来获取预测结果。 需要注意的是,EfficientNet是一种深度神经网络架构,因此在训练时可能需要更多的计算资源和更长的训练时间。可以根据计算资源的可用性和数据集的大小来选择适当的网络结构和训练策略。 总结来说,使用PyTorch 2.0习EfficientNet可以通过安装最新版本的PyTorch,使用PyTorch Hub加载预训练的EfficientNet模型,并使用标准的PyTorch训练循环或推理方式进行模型训练或预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值