从零开始写模型LeNet

这篇博客介绍了作者在MindSpore框架下,从零开始编写LeNet模型以解决MNIST手写数字识别任务的过程。内容包括命令行参数解析、数据集准备、超参数设置、模型定义、训练和测试的详细步骤。作者还提到了与Pytorch框架的对比需求,并分享了训练和测试脚本的执行命令。
摘要由CSDN通过智能技术生成

个人博客同步更新,界面更美观呀

Introduction

近来安装了MindSpore框架,便想测试一下它和Pytorch等其他深度学习框架有什么区别。首先便从模型的训练耗时和测试耗时来测试,MindSpore官方提供了使用LeNet解决MNIST手写数字识别的Demo,此时还需要一个用Pytorch编写的作为对比,为了使参数、模型等各方面尽可能一致,便有了照猫画虎自己编写的需求。

Coding

为了能总览模型编写训练流程,我决定从__main__函数入手,用到什么写什么。

parser

首先要用的就是一个命令行代码的解析工具,使用方法概括如下:

# 导包
import argparse
# 定义一个解析器
parser = argparse.ArgumentParser(description="")
# 给解析器添加需要从命令行读入的参数
parser.add_argument('--device_target', type=str, default="CPU", choices=['GPU', 'CPU'])
# 调用解析函数生成参数对象
args = parser.parse_args()

dataset

准备数据集,最好单独封装为一个处理函数,提供路径加载临时下载两种方式。

super parameter

超参数的设置,其实也可以放到第一步命令行参数解析里面。

模型的定义

__main__函数中实例化一个模型:

model = LeNet()

在前面预先定义模型类:

class LeNet(nn.Module):
    """lenet network structure."""
    def __init__(self, num_channel=1, num_class=10):
        self.conv1 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值