- 博客(55)
- 资源 (7)
- 收藏
- 关注
原创 昇思基础课程打卡(SPONGE课前学习)20.Cell与参数
通常情况下,MindSpore提供的神经网络层接口和function函数接口能够满足模型构造需求,但由于AI领域不断推陈出新,因此有可能遇到新网络结构没有内置模块的情况。此时我们可以根据需要,通过MindSpore提供的function接口、Primitive算子自定义神经网络层,并可以使用Cell.bprop方法自定义反向。下面分别详述三种自定义方法。在特殊场景下,我们不但需要自定义神经网络层的正向逻辑,也需要手动控制其反向的计算,此时我们可以通过Cell.bprop接口对其反向进行定义。
2024-08-07 06:20:15 866
原创 昇思基础课程打卡(SPONGE课前学习)19.参数初始化
通常情况下,MindSpore提供的默认参数初始化可以满足常用神经网络层的初始化需求,在遇到需要自定义的参数初始化方法时,可以继承Initializer自定义参数初始化方法。下面以# 计算fan_in和fan_out。fan_in是 `arr` 中输入单元的数量,fan_out是 `arr` 中输出单元的数量。else:# 配置初始化所需要的参数def _initialize(self, arr): # arr为需要初始化的Tensor。
2024-08-07 06:17:14 282
原创 昇思基础课程打卡(SPONGE课前学习)18.模型模块自定义
神经网络模型由各种层(Layer)构成,MindSpore提供构造神经网络层的基础单元Cell,基于Cell进行神经网络封装。下面使用Cell构造经典模型AlexNet。如图所示,AlexNet由5个卷积层与3个全连接层串联构成,我们使用提供的神经网络层接口进行构造。下面的代码展示了如何使用nn.Cell快速构造AlexNet。顶层神经网络继承nn.Cell,为嵌套结构;每个神经网络层都是nn.Cell的子类;可以在定义顺序结构的模型时进行简化。
2024-08-07 06:08:55 307
原创 昇思基础课程打卡(SPONGE课前学习)16.格式转换
其中数据文件包含文件头、标量数据页、块数据页,用于存储用户归一化后的训练数据,且单个MindSpore Record文件建议小于20G,用户可将大数据集进行分片存储为多个MindSpore Record文件。本示例主要以包含100条记录的CV数据集并将其转换为MindSpore Record格式为例子,介绍如何将CV类数据集转换成MindSpore Record文件格式,并使用。MindSpore提供转换常用数据集的工具类,能够将常用的数据集转换为MindSpore Record文件格式。
2024-08-06 13:23:45 680
原创 昇思基础课程打卡(SPONGE课前学习)15.轻量化数据处理
虽然构建数据管道可以批量处理输入数据,但是数据管道的API设计要求用户从构建输入源开始,逐步定义数据管道中的各个Transform,仅当在定义。无疑,用户只想重点关注这些与其相关度最高的代码,但其他相关度较低的代码却在整个代码场景中为用户增加了不必要的负担。在资源条件允许的情况下,为了追求更高的性能,一般使用Pipeline模式执行数据变换Transforms。调度,由其负责启动和执行给定的Transform,对Pipeline的数据进行映射变换。模块中的Transform,对给定图像进行变换。
2024-08-06 13:18:55 474
原创 昇思基础课程打卡(SPONGE课前学习)13.回调机制 Callback
当聊到回调Callback的时候,大部分用户都会觉得很难理解,是不是需要堆栈或者特殊的调度方式,实际上我们简单的理解回调:假设函数A有一个参数,这个参数是个函数B,当函数A执行完以后执行函数B,那么这个过程就叫回调。Callback是回调的意思,MindSpore中的回调函数实际上不是一个函数而是一个类,用户可以使用回调机制来观察训练过程中网络内部的状态和相关信息,或在特定时期执行特定动作。例如监控损失函数Loss、保存模型参数ckpt、动态调整参数lr、提前终止训练任务等。
2024-08-06 13:11:49 557
原创 昇思基础课程打卡(SPONGE课前学习)12.静态图高级编程技巧
用户在网络脚本中定义一个类时,可以写成继承于Cell的类、自定义类、@jit_class修饰的类,它们的用法和区别如下:继承于Cell的类Cell是MindSpore中神经网络的基本构成单元,模型或者神经网络层应当继承该类。静态图模式下,使用Cell类并且在construct函数中编写执行代码,此时construct函数的代码会被编译成静态计算图。自定义类定义自定义类后,可以对类进行实例化、调用类对象的属性和方法,请参考自定义类的使用。相比于Cell。
2024-08-06 13:03:05 598
原创 昇思基础课程打卡(SPONGE课前学习)11.自动混合精度
当用户需要在单个运算,或多个模块组合配置运算精度时,Cell粒度往往无法满足,此时可以直接通过对输入数据的类型进行cast来达到自定义粒度控制的目的。
2024-08-06 12:36:59 604
原创 昇思基础课程打卡(SPONGE课前学习)10.高级自动微分
如分子动力学模拟中,利用神经网络训练势能时,损失函数中需计算神经网络输出对输入的导数,则反向传播便存在损失函数对输入、权重的二阶交叉导数。算子完全相同,因此它们产生的梯度也完全相同,所以可以看到,结果中每一项的值都变为了原来的两倍(存在精度误差)。接口的主要功能,包括一阶、二阶求导,单独对输入或网络权重求导,返回辅助变量,以及如何停止计算梯度。由于不同计算平台的精度可能存在差异,因此本章节中的代码在不同平台上的执行结果会存在微小的差别。来停止计算指定算子的梯度,从而消除该算子对梯度的影响。
2024-08-06 12:29:14 718
原创 昇思基础课程打卡(SPONGE课前学习)9.使用静态图加速
AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。
2024-08-06 11:57:57 761
原创 昇思基础课程打卡(SPONGE课前学习)8.保存与加载
https://gitee.com/mindspore/docs/blob/master/tutorials/source_zh_cn/beginner/save_load.ipynb基本介绍 || 快速入门 || 张量 Tensor || 数据集 Dataset || 数据变换 Transforms || 网络构建 || 函数式自动微分 || 模型训练 || 保存与加载 || 使用静态图加速上一章节主要介绍了如何调整超参数,并进行网络模型训练。在训练网络模型的过程中,实际上我们希望保存中间和最后的结果,用
2024-08-06 11:52:58 360
原创 昇思基础课程打卡(SPONGE课前学习)7.模型训练
从网络构建中加载代码,构建一个神经网络模型。nn.ReLU(),nn.ReLU(),超参(Hyperparameters)是可以调整的参数,可以控制模型训练优化的过程,不同的超参数值可能会影响模型训练和收敛速度。wt1wt−η1n∑x∈B∇lxwtwt1wt−ηn1x∈B∑∇lxwt公式中,nnn是批量大小(batch size),ηηη是学习率(learning rate)。另外,wtw_{t}w。
2024-08-06 11:48:34 987
原创 昇思基础课程打卡(SPONGE课前学习)6.函数式自动微分
https://gitee.com/mindspore/docs/blob/master/tutorials/source_zh_cn/beginner/autograd.ipynb基本介绍 || 快速入门 || 张量 Tensor || 数据集 Dataset || 数据变换 Transforms || 网络构建 || 函数式自动微分 || 模型训练 || 保存与加载 || 使用静态图加速神经网络的训练主要使用反向传播算法,模型预测值(logits)与正确标签(label)送入损失函数(loss func
2024-08-06 11:24:39 817
原创 昇思基础课程打卡(SPONGE课前学习)5.网络构建
当我们定义神经网络时,可以继承nn.Cell类,在__init__方法中进行子Cell的实例化和状态管理,在construct方法中实现Tensor操作。construct意为神经网络(计算图)构建,相关内容详见使用静态图加速。nn.ReLU(),nn.ReLU(),构建完成后,实例化Network对象,并查看其结构。Network<我们构造一个输入数据,直接调用模型,可以获得一个二维的Tensor输出,其包含每个类别的原始预测值。方法不可直接调用。logits在此基础上,我们通过一个。
2024-08-06 11:10:19 608
原创 昇思基础课程打卡(SPONGE课前学习)4.数据变换 Transforms
基本介绍 || 快速入门 || 张量 Tensor || 数据集 Dataset || 数据变换 Transforms || 网络构建 || 函数式自动微分 || 模型训练 || 保存与加载 || 使用静态图加速通常情况下,直接加载的原始数据并不能直接送入神经网络进行训练,此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换(Transforms),配合数据处理Pipeline来实现数据预处理。所有的Transforms均可通过方法传入,实现对指定数据列的处理。提供了面向图像、文本、音频
2024-08-06 11:06:35 906
原创 昇思基础课程打卡(SPONGE课前学习)3.数据集 Dataset
模块提供了一些常用的公开数据集和标准格式数据集的加载API。对于MindSpore暂不支持直接加载的数据集,可以构造自定义数据加载类或自定义数据集生成函数的方式来生成数据集,然后通过接口实现自定义方式的数据集加载。支持通过可随机访问数据集对象、可迭代数据集对象和生成器(generator)构造自定义数据集,下面分别对其进行介绍。
2024-08-06 11:01:02 946
原创 昇思基础课程打卡(SPONGE课前学习)2.张量Tensor
基本介绍 || 快速入门 || 张量 Tensor || 数据集 Dataset || 数据变换 Transforms || 网络构建 || 函数式自动微分 || 模型训练 || 保存与加载 || 使用静态图加速张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 nnn 维空间内,有 nrn^{r}nr 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。rr
2024-08-05 22:10:56 711
原创 昇思基础课程打卡(SPONGE课前学习)1.快速入门
基本介绍 || 快速入门 || 张量 Tensor || 数据集 Dataset || 数据变换 Transforms || 网络构建 || 函数式自动微分 || 模型训练 || 保存与加载 || 使用静态图加速本节通过MindSpore的API来快速实现一个简单的深度学习模型。若想要深入了解MindSpore的使用方法,请参阅各节最后提供的参考链接。处理数据集MindSpore提供基于Pipeline的数据引擎,通过数据集(Dataset)和数据变换(Transforms)实现高效的数据预处理。在本教
2024-08-05 22:03:17 843
原创 昇思25天学习打卡营第25天 | ResNet50迁移学习
在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章将使用迁移学习的方法对ImageNet数据集中的狼和狗图像进行分类。迁移学习详细内容见。
2024-07-13 06:00:51 660
原创 昇思25天学习打卡营第24天 | ResNet50图像分类
ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。下图是在CIFAR-10数据集上使用56层网络与20层网络训练误差和测试误差图,由图中数据可以看出,56层网络比20层网络训练误差和测试误差更大,随着网络的加深,其误差并没有如预想的一样减小。
2024-07-12 09:35:06 736
原创 昇思25天学习打卡营第23天 | FCN图像语义分割
FCN主要用于图像分割领域,是一种端到端的分割方法,是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因FCN丢弃全连接层替换为全卷积层,网络所有层均为卷积层,故称为全卷积网络。全卷积神经网络主要使用以下三种技术:卷积化(Convolutional)使用VGG-16作为FCN的backbone。VGG-16的输入为224*224的RGB图像,输出为1000个预测值。VGG-16只能接受固定大小的输入,丢弃了空间坐标,产生非空间输出。
2024-07-10 19:40:29 825
原创 昇思25天学习打卡营第22天 | Shufflenet图像分类
ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。
2024-07-09 19:39:59 1027
原创 昇思25天学习打卡营第22天 | Shufflenet图像分类
ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。
2024-07-09 19:38:00 669
原创 昇思25天学习打卡营第21天 | SSD目标检测
SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(mean Average Precision)以及59FPS;对于512x512的网络,达到了76.9%mAP ,超越当时最强的Faster RCNN(73.2%mAP)。具体可参考论文[1]。
2024-07-09 19:24:15 922
原创 昇思25天学习打卡营第20天 | Vision Transformer图像分类
近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前规模的模型。ViT则是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。本案例完成了一个ViT模型在ImageNet数据上进行训练,验证和推理的过程,其中,对关键的ViT模型结构和原理作了讲解。
2024-07-08 20:08:22 646
原创 昇思25天学习打卡营第19天 | RNN实现情感分类
最后我们设计一个预测函数,实现开头描述的效果,输入一句评价,获得评价的情感分类。将输入句子进行分词;使用词表获取对应的index id序列;index id序列转为Tensor;送入模型获得预测结果;打印输出预测结果。最后我们预测开头的样例,可以看到模型可以很好地将评价语句的情感进行分类。
2024-07-07 08:28:35 877
原创 昇思25天学习打卡营第18天 | LSTM+CRF序列标注
序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。如上表所示,清华大学和北京是地名,需要将其识别,我们对每个输入的单词预测其标签,最后根据标签来识别实体。
2024-07-06 11:19:04 739
原创 昇思25天学习打卡营第17天 | 基于MindSpore的GPT2文本摘要
本次实验使用的是nlpcc2017摘要数据,内容为新闻正文及其摘要,总计50000个样本。因GPT2无中文的tokenizer,我们使用BertTokenizer替代。数据处理,将向量数据变为中文数据。
2024-07-05 08:14:31 214
原创 昇思25天学习打卡营第16天 | 基于MindSpore通过GPT实现情感分类
【代码】昇思25天学习打卡营第16天 | 基于MindSpore通过GPT实现情感分类。
2024-07-04 10:47:37 134
原创 昇思25天学习打卡营第15天 | 文本解码原理-以MindNLP为例
Beam search通过在每个时间步保留最可能的 num_beams 个词,并从中最终选择出概率最高的序列来降低丢失潜在的高概率序列的风险。按照贪心搜索输出序列(“The”,“nice”,“woman”) 的条件概率为:0.5 x 0.4 = 0.2。缺点: 错过了隐藏在低概率词后面的高概率词,如:dog=0.5, has=0.9。选出概率最大的 K 个词,重新归一化,最后在归一化后的 K 个词中采样。2. 开放域生成效果差。增加高概率单词的似然并降低低概率单词的似然。将出现过的候选词的概率设置为 0。
2024-07-03 08:52:11 647
原创 昇思25天学习打卡营第14天 | 基于MindSpore 实现 BERT 对话情绪识别
BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。模型是基于Transformer中的Encoder并加上双向的结构,因此一定要熟练掌握Transformer的Encoder的结构。
2024-07-02 09:55:29 870
原创 昇思25天学习打卡营第13天 | MindNLP ChatGLM-6B StreamChat
本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。可以修改下列参数和prompt体验模型。下载权重大约需要10分钟。
2024-07-01 09:22:07 240
原创 昇思25天学习打卡营第12天 | 基于MobileNetv2的垃圾分类函数式自动微分
MobileNet网络是由Google团队于2017年提出的专注于移动端、嵌入式或IoT设备的轻量级CNN网络,相比于传统的卷积神经网络,MobileNet网络使用深度可分离卷积(Depthwise Separable Convolution)的思想在准确率小幅度降低的前提下,大大减小了模型参数与运算量。并引入宽度系数 α和分辨率系数 β使模型满足不同应用场景的需求。
2024-06-30 09:05:29 1124
原创 昇思25天学习打卡营第11天 | 基于MindSpore的红酒分类实验
K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出(Cover等人,1967),是机器学习最基础的算法之一。它正是基于以上思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计出这些样本的类别并进行投票,票数最多的那个类就是分类的结果。KNN的三个基本要素:K值,一个样本的分类是由K个邻居的“多数表决”确定的。K值越小,容易受噪声影响,反之,会使类别之间的界限变得模糊。
2024-06-29 09:23:38 940
原创 昇思25天学习打卡营第10天 | 基于MindNLP+MusicGen生成自己的个性化音乐
MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本,相关研究成果参考论文《MusicGen直接使用谷歌的及其权重作为文本编码器模型,并使用及其权重作为音频压缩模型。MusicGen解码器是一个语言模型架构,针对音乐生成任务从零开始进行训练。MusicGen 模型的新颖之处在于音频代码的预测方式。
2024-06-28 11:06:59 663
原创 昇思25天学习打卡营第9天 | 使用静态图加速
AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。
2024-06-27 09:20:11 957
原创 昇思25天学习打卡营第8天 | 保存与加载
基本介绍 || 快速入门 || 张量 Tensor || 数据集 Dataset || 数据变换 Transforms || 网络构建 || 函数式自动微分 || 模型训练 || 保存与加载 || 使用静态图加速上一章节主要介绍了如何调整超参数,并进行网络模型训练。在训练网络模型的过程中,实际上我们希望保存中间和最后的结果,用于微调(fine-tune)和后续的模型推理与部署,本章节我们将介绍如何保存与加载模型。保存和加载模型权重保存模型使用接口,传入网络和指定的保存路径:要加载模型权重,需要先创建
2024-06-26 10:00:14 333
原创 昇思25天学习打卡营第7天 | 模型训练
从网络构建中加载代码,构建一个神经网络模型。nn.ReLU(),nn.ReLU(),超参(Hyperparameters)是可以调整的参数,可以控制模型训练优化的过程,不同的超参数值可能会影响模型训练和收敛速度。wt1wt−η1n∑x∈B∇lxwtwt1wt−ηn1x∈B∑∇lxwt公式中,nnn是批量大小(batch size),ηηη是学习率(learning rate)。另外,wtw_{t}w。
2024-06-25 09:12:16 836
Java 9 Programming By Example
2018-07-01
WEB DEVELOPMENT WITH DJANGO COOKBOOK SECOND EDITION Aidas Bendoraitis
2018-06-06
NODEJS_WEB_DEVELOPMENT_THIRD_EDITION
2018-04-08
AWS ADMINISTRATION THE DEFINITIVE GUIDE
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人