通过MindSpore API实现深度学习模型

快速入门

将相应的包逐一导入到项目中,这是制作项目的第一步。

import mindspore
from mindspore import nn
from mindspore.dataset import vision, transforms
from mindspore.dataset import MnistDataset

处理数据集

先从网上下载对应的数据集文件,MindSpore提供基于Pipeline的数据引擎,通过数据集(Dataset)和数据变换(Transforms)实现高效的数据预处理

下载完,你就可以看到对应的文件了,获得数据集对象

MindSpore的dataset使用数据处理流水线(Data Processing Pipeline),需指定map、batch、shuffle等操作。这里我们使用map对图像数据及标签进行变换处理,然后将处理好的数据集打包为大小为64的batch。

网络构建

mindspore.nn 类是构建网络的基类,也是网络的基本单元。用户可以继承 nn.Cell 类,并重写 __init__ 方法和 construct 方法来自定义网络。在 __init__ 中定义网络层,在 construct 中进行数据的变换。

模型训练

在模型训练中,一个完整的训练过程(step)需要实现以下三步:

  1. 正向计算:模型预测结果(logits),并与正确标签(label)求预测损失(loss)。
  2. 反向传播:利用自动微分机制,自动求模型参数(parameters)对于loss的梯度(gradients)。
  3. 参数优化:将梯度更新到参数上。

除训练外,我们定义测试函数,用来评估模型的性能。训练模型需要多次迭代数据集,每次完整的迭代称为一轮。在每一轮中,遍历训练集进行训练,然后使用测试集进行预测。打印每一轮的loss值和预测准确率,可以观察到loss在不断下降,准确率在不断提高。

保存模型

模型训练完成后,需要将其参数进行保存,留着下次继续使用。

加载模型

加载保存的权重分为两步:

  1. 重新实例化模型对象,构造模型。
  2. 加载模型参数,并将其加载至模型上。

加载后的模型可以直接用于预测推理,继续对结果进行训练。

总结

简单的理解这个过程,首先加载数据集,配置网络,然后进行模型训练,经过不断的训练提高准确度,尝试去保存模型,方便下次使用,然后试着加载模型。看看实际操作结果如果。整个过程顺风顺水还是非常方便的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++ Primer》导学系列:第 6 章 - 函数

6.1 函数基础 6.1.1 基本概念 函数是C程序的基本组成单元,用于将代码组织成可以复用的模块。函数通过函数名进行调用,并且可以接受参数和返回值。函数的定义包括函数头和函数体,其中函数头描述了函数的接口,函数体包含了具体的实…

最新OPPO 真我手机 一加手机 使用adb命令永久关闭系统更新教程

使用adb命令永久关闭系统更新 一、先了解手机系统二、Android 11 以下使用adb 命令永久关闭系统更新1、adb 官方下载2、小白开启 USB 调试模式教程(熟手跳过)三、Android 12 以上使用adb 命令永久关闭系统更新什么您还是不会弄!赞赏我&#x…

MYSQL 四、mysql进阶 3(存储引擎)

mysql中表使用了不同的存储引擎也就决定了我们底层文件系统中文件的相关物理结构。 为了管理方便,人们把连接管理、语法解析、查询优化这些并不涉及真实数据存储的功能划分为 Mysql Server的功能,把真实存取数据的功能划分为存储引擎的功能&…

systemd的实现原理

systemd是现代Linux系统中的初始化系统和服务器管理器,而systemctl是用于与systemd交互的命令行工具。 systemd是一个守护进程,systemctl是命令行管理工具:systemd是用于管理Linux系统的初始化过程和后台服务的初始化系统,而syst…

Windows10 + fydeOS双系统!简单几步完成

前言 最近发现小伙伴对于fydeOS热情是真的不减,啧啧啧……今天闲来无事,就来讲讲双系统Windows10 fydeOS的安装方法吧! Windows10 FydeOS双系统安装过程其实很简单,不过要建议先安装好Windows10系统。 虽然先安装好fydeOS之后…

SpringBootWeb 篇-入门了解 Vue 前端工程的创建与基本使用

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 基于脚手架创建前端工程 1.1 基于 Vue 开发前端项目的环境要求 1.2 前端工程创建的方式 1.2.1 基于命令的方式来创建前端工程 1.2.2 使用图形化来创建前端工程 1.…

如何建立私域流量?私域流量怎么运营,一文读懂

当全网都在讨论私域流量,你是不是也有很多问号呢? 互联网高速发达,消费形式日新月异,跟不上时代就会被时代淘汰,接下来,我们就从3个层面深度讨论下私域流量究竟是什么?为什么要玩转私域流量&am…

C#中File类常见用法总结

前言 我们在开发C#软件的过程中,经常需要和文件打交道,那么File类在C#中是我们使用非常频繁的一个类,本文就是详细介绍File类在C#中的常见用法。 1、判断文件是否存在 string fileName "1.txt";bool isExist File.Exists(fileN…

prototype 原型对象

在JavaScript中,原型对象是每个对象在创建时都会关联的一个内部对象。原型对象包含了可以被该对象直接访问的属性和方法。当我们试图访问一个对象的属性或方法时,JavaScript引擎会先查找该对象自身是否具有该属性或方法,如果没有,…

【保姆级教程】Linux 基于 Docker 部署 MySQL 和 Nacos 并配置两者连接

一、Linux 部署 Docker 1.1 卸载旧版本(如有) sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine1.2 安装 yum-utils 包 sudo yum install -y…

微信多开器

由于微信的限制,我们平时只能登录一个微信,要登录多个微信一般需要多台手机,很显然这种方法很费手机!!一个微信多开神器可以给你省下好几台手机钱,抓紧拉下来放手机里落灰http://www.xbydon.online/?p132 …

NetSuite 审批工作流与事务处理类型的限制关系

在最近的实践中,用户提出可否对Credit Memo与Vendor Prepayment Application两种事务处理类型进行审批参与,当提出来的时候我们并没有直接在系统中进行测试,而是以常规事务处理的角度认为可以满足客户的需求; 但在沙盒环境中讨论…

RocketMQ快速入门:如何保证消息不丢失|保证消息可靠性(九)

0. 引言 在金融、电商等对数据完整性要求极高的行业,消息的丢失可能会导致数据不一致,严重影响业务逻辑和数据统计,也影响客户体验,所以在很多业务场景下,我们都要求数据不能丢失。而rocketmq中,如何对消息…

V4和V6共存的问题

1、使用普通的 GRE来将两个 V6 网络基于一个 V4 网络进行通讯 [r1 ]interface Tunnel 0/0/0 [r1-Tunnel0/0/0]ipv6 enable [r1-Tunnel0/0/0]ipv6 address 10:: 1/64 [r1-Tunnel0/0/0]tunnel-protocol gre [r1-Tunnel0/0/0]source 12.1.1.1 [r1-Tunnel0/0/0]destination 2…

JAVA常用类Math

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。 Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。 下面详细介绍该类的常量及数学处理方法。 1.1、静态常量 Math 类中包含 E 和…

当游戏遭遇安全问题,我们应该怎么做?

在游戏安全领域,专业性最差、但最常见的案例类型是DDoS攻击(分布式拒绝服务攻击)。出于它的特性,中小厂商、独立开发者较容易遭受这类攻击。 例如,今年2月29日上线的手游《雷索纳斯》就遭受了名为ACCN组织发起的DDoS攻…

原生js写数据自动纵向滚动,鼠标移入后停止滚动可手动滚动,鼠标移出转自动

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>滚动页面</title><link rel"styleshee…

Linux环境下,怎么排查os中系统负载过高的原因瓶颈?

在Linux环境下排查系统负载过高的原因和瓶颈&#xff0c;可以采取以下步骤&#xff1a; 使用top或htop命令观察系统整体负载情况。查看load average的值&#xff0c;分别表示系统在1分钟、5分钟和15分钟内的平均负载。如果负载值超过CPU核心数量的70-80%&#xff0c;表示系统负…

【内含优惠码】重磅发售!《2023年度中国量化投资白皮书》(纸质版)

这是可以公开了解量化行业图景的&#xff0c;为数不多资料。 简介 《2023年度中国量化投资白皮书》由宽邦科技、华泰证券、金融阶、华锐技术、AMD、阿里云、英迈中国等多家机构联合发起编写&#xff0c;并于2024年6月15日正式发布&#xff0c;全书公17万字6大章节勾勒最新量化…

Studying-代码随想录训练营day15| 222.完全二叉树的节点个数、110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和

第十五天&#xff0c;二叉树part03&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 257.完全二叉树的节点个数 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和 总结 257.完全二叉树的节点个数 文档讲解&#xff1a;代码随想录完全二叉树的节点个数 视频讲解…