昇思25天学习打卡营第3天|网络构建

学习目标:熟练掌握网络构建方法

  • 了解mindspore.nn
  • 实例构建简单的神经网络
  • 网络模型中各层参数

昇思大模型平台 AI实验室 学习记录:
在这里插入图片描述


一、关于mindspore.nn

在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。cell:神经细胞,神经元。
1.1 基类:基本单元
在这里插入图片描述
1.2 卷积神经网络层-种类
在这里插入图片描述
1.3 循环神经网络层
在这里插入图片描述
1.4 非线性激活函数层
在这里插入图片描述
在这里插入图片描述
1.5 线性层
在这里插入图片描述
1.6 drop层
在这里插入图片描述
1.7归一化层
在这里插入图片描述
1.8 池化层
在这里插入图片描述
1.9 填充层padding
在这里插入图片描述
1.10 损失函数
在这里插入图片描述
1.11 优化器
在这里插入图片描述
1.12 评价指标:演练验证模型评估
在这里插入图片描述
在这里插入图片描述
1.13 动态学习率:学习率衰减函数
在这里插入图片描述
1.14 图像处理层
在这里插入图片描述

1.5 更多接口请参考官方文档介绍
mindspore.nn的接口介绍


二、实例构建简单神经网络

提示:这里可以添加计划学习的时间

# Begin to show your code!
import mindspore
from mindspore import nn, ops


# 当我们定义神经网络时,可以继承nn.Cell类,在__init__方法中进行子Cell的实例化和状态管理,在construct方法中实现Tensor操作。
class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28 * 28, 512, weight_init="normal", bias_init="zeros"),  # 全连接层
            nn.ReLU(),
            nn.Dense(512, 512, weight_init="normal", bias_init="zeros"),  # 权值初始化:normal-生成正态分布(高斯分布)的随机数
            nn.ReLU(),
            nn.Dense(512, 10, weight_init="normal", bias_init="zeros")  # 十维的Tensor输出
        )

    def construct(self, x):  # model.construct()方法不可直接调用。
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits


if __name__ == "__main__":
    model = Network()
    print(model)
    X = ops.ones((1, 28, 28), mindspore.float32)  # 构建一个28x28的输入
    logits = model(X)
    # print logits
    print(logits)
    pred_probab = nn.Softmax(axis=1)(logits)
    y_pred = pred_probab.argmax(1)
    print(f"Predicted class: {y_pred}")  # 预测结果类别为Predicted class: [3]

运行结果:成功
在这里插入图片描述

注:打印网络模型参数-权重,如下:

print(f"Model structure: {model}\n\n")
for name, param in model.parameters_and_names():
	print(f"Layer: {name}\nSize: {param.shape}\nValues : {param[:2]} \n")

三、 网络模型中各层作用

提示:这里统计学习计划的总量

3.1 mindspore.nn.Flatten:对输入Tensor的第0维之外的维度进行展平操作。
在这里插入图片描述

3.2 线性全连接层:mindspore.nn.Dense
在这里插入图片描述
3.3 激活层:mindspore.nn.ReLU
hidden中所有小于0的数值置0,大于0的不变。
在这里插入图片描述
3.4 系列神经元:mindspore.nn.SequentialCell

# showModelsParameter()
flatten = nn.Flatten()
layer1 = nn.Dense(in_channels=28 * 28, out_channels=20)  # 全连接层-线性
relu = nn.ReLU()

seq_modules = nn.SequentialCell(
    flatten,
    layer1,
    relu,
    nn.Dense(20, 10)  # 输出层
)
# 输入
input_image = ops.ones((3, 28, 28), mindspore.float32)
# 输出
logits = seq_modules(input_image)
print(logits.shape)

在这里插入图片描述
3.5 输出: mindspore.nn.Softmax
使用nn.Softmax将神经网络最后一个全连接层返回的logits的值缩放为[0, 1],表示每个类别的预测概率。axis指定的维度数值和为1。
在这里插入图片描述


四、网络模型参数

打印网络模型的各层名称和权值参数

print(f"Model structure: {seq_modules}\n\n")
for name, param in seq_modules.parameters_and_names():
	print(f"Layer: {name}\nSize: {param.shape}\nValues : {param[:2]} \n")

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何集成CppCheck到visual studio中

1.CPPCheck安装 在Cppcheck官方网站下载最新版本1.70,官网链接:http://cppcheck.sourceforge.net/ 安装Cppcheck 2.集成步骤 打开VS,菜单栏工具->外部工具->添加,按照下图设置,记得勾选“使用输出窗口” 2.…

高效数据采集监控平台 一体化平台 数据可视化!

提高工作效率,一直是各种厂家在寻找的方法。任何一种有效且实用的方法都值得去尝试。数据采集监控平台是一种能高效处理数据的方式,其主要工作内容是从各个产生数据的仪器设备传感器中采集数据、对数据进行集中整理整合、分析、显示、绘制图表、存储、传…

ubuntu22.04速装中文输入法

附送ubuntu安装chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i google-chrome-stable_current_amd64.deb

如何做互联网项目需求评估?

关于互联网项目需求评估,我们可以按照以下步骤进行: 一、确定项目主题和目标受众:这篇文章首先要明确你要评估的互联网项目的主题是什么,你的目标受众是谁?你需要对项目的背景和目的有清晰的了解。 二、项目规模和内…

将TensorFlow嵌入到Jupyter Notebook中,个人学习记录

起因是学习吴恩达机器学习过程中,在神经网络tensorflow的部分,需要在Jupyter Notebook中跑相关的代码,于是在网上找了很多资料,终于跑成功了。该笔记仅为个人学习记录,如有任何问题请见谅。 import numpy as np impor…

如何3分钟上手传得神乎其神的AI绘画!一篇文章带你搞懂!

前言 今年 AI 绘画绝对是大火的概念之一,这次加入了生财 AI 绘画小航海的船,今天是体验的第1天,那么 AI 绘画是什么呢? 简单来说就是利用 AI 实现绘画,在特定的软件或者程序中,输入一定的关键词或者指令&…

【地理库 Turf.js】

非常全面的地理库 , 这里枚举一些比较常用,重点的功能, 重点功能 提供地理相关的类:包括点,线,面等类。 测量功能:点到线段的距离,点和线的关系等。 判断功能: 点是否在…

哈尔滨高校大学智能制造实验室数字孪生可视化系统平台项目的验收

哈尔滨高校大学智能制造实验室数字孪生可视化系统平台项目的验收,标志着这一技术在教育领域的应用取得了新的突破。项目旨在开发一个数字孪生可视化系统平台,用于哈尔滨高校大学智能制造实验室的设备模拟、监测与数据分析。项目的主要目标包括&#xff1…

【Sklearn-驯化】sklearn中决策树cart的用法,看这篇就够了

【Sklearn-驯化】sklearn中决策树cart的用法,看这篇就够了 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(3)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督继续为大家带来系列——小学生都能玩的语音模块,帮你一周内快速学会语音模块的使用方式,打造一个可用于智能家居、物联网领域的语音助…

算法设计与分析--随机算法作业

随机算法作业1. 顶点覆盖问题问题描述参考答案解答 2. 负载均衡算法问题描述参考答案解答 3. MAX 3-SAT题目描述参考答案解答 随机算法–徐小华 随机算法作业 1. 顶点覆盖问题 问题描述 考虑下述 顶点覆盖问题 的简单随机算法: 开始时 S ∅ While S 不是一个顶…

基于Pico和MicroPython点亮ws2812彩色灯带

基于Pico和MicroPython点亮ws2812彩色灯带 文章目录 基于Pico和MicroPython点亮ws2812彩色灯带IntroductionPracticeConclusion Introduction 点亮发光的LED灯是简单有趣的实验,点亮多个ws2812小灯串联起来的灯带,可对多个彩色小灯进行编程,…

上位机图像处理和嵌入式模块部署(mcu 项目1:上位机编写)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面,我们说过要做一个报警器。如果只是简单做一个报警器呢,这个基本上没有什么难度。这里,我们就适当提高一下…

敏捷开发笔记(第9章节)--开放-封闭原则(OCP)

目录 1:PDF上传链接 9.1 开放-封闭原则(OCP) 9.2 描述 9.3 关键是抽象 9.3.1 shape应用程序 9.3.2 违反OCP 糟糕的设计 9.3.3 遵循OCP 9.3.4 是的,我说谎了 9.3.5 预测变化和“贴切的”结构 9.3.6 放置吊钩 1.只受一次…

qt实现打开pdf(阅读器)功能用什么库比较合适

关于这个问题,网上搜一下,可以看到非常多的相关博客和例子,可以先看看这个总结性的博客(https://zhuanlan.zhihu.com/p/480973072) 该博客讲得比较清楚了,这里我再补充一下吧(qt官方也给出了一些…

深度之眼(二十八)——神经网络基础知识(三)-卷积神经网络

文章目录 一、前言二、卷积操作2.1 填充(padding)2.2 步长2.3 输出特征图尺寸计算2.4 多通道卷积 三、池化操作四、Lenet-5及CNN结构进化史4.1 Lenet-5 一、前言 卷积神经网络–AlexNet(最牛)-2012 Lenet-5-大规模商用(1989) 二、…

合并排序的数组

题目链接 合并排序的数组 题目描述 注意点 A的末端有足够的缓冲空间容纳BA和B都是排序的 解答思路 最初想到的是双指针,从小到大找到合并B时应该A相应位置应该插入的元素,因为在插入的过程中B的元素会替换A原有位置的元素,所以需要先将A…

YOLOv8目标检测在RK3588部署全过程

一,前言 这是一个关于从电脑安装深度学习环境到实现YOLOv8目标检测在RK3588上部署的全过程。 本人配置: 1,一台笔记本 2,一个香橙派5s 二,深度学习环境配置 2.1 安装anaconda 使用清华镜像源下载https://mirror…

巴黎成为欧洲AI中心 大学开始输出AI创始人

来自Dealroom 的数据显示,在欧洲和以色列AI创业公司中,法国的AI创业公司资金最充裕。Mistral、Owkin、Hugging Face等法国企业已经融资23亿美元,比英国、德国AI创业公司都要多。 一名大学生走出校门凭借聪明才智和一个黄金点子成为富豪&#…

使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集

1,问题:本来是好的,突然编译运行报错,说是确少包, 解决方案:重启以后好了 2,有完美的马鞍波,为什么不能够转动呢? 原因是我这里模型的问题,我计算出来的是占…