昇思MindSpore学习总结二十一 —— 文本解码原理(以MindNLP为例) Beam search通过在每个时间步保留最可能的 num_beams 个词,并从中最终选择出概率最高的序列来降低丢失潜在的高概率序列的风险。缺点: 错过了隐藏在低概率词后面的高概率词,如:dog=0.5, has=0.9!按照贪心搜索输出序列("The","nice","woman") 的条件概率为:0.5 x 0.4 = 0.2。选出概率最大的 K 个词,重新归一化,最后在归一化后的 K 个词中采样。一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘机。将出现过的候选词的概率设置为 0。
昇思MindSpore学习总结二十 —— Pix2Pix实现图像转换 Pix2Pix是基于条件生成对抗网络(cGAN, Condition Generative Adversarial Networks )实现的一种深度学习图像转换模型,该模型是由Phillip Isola等作者在2017年CVPR上提出的,可以实现语义/标签到真实图片、灰度图到彩色图、航空图到地图、白天到黑夜、线稿图到实物图的转换。生成器和判别器。传统上,尽管此类任务的目标都是相同的从像素预测像素,但每项都是用单独的专用机器来处理的。
昇思MindSpore学习总结十九 —— Diffusion扩散模型 本文基于一文翻译迁移而来,同时参考了由浅入深了解Diffusion Model一文。本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件,执行Python文件时,请确保执行环境安装了GUI界面。
昇思MindSpore学习总结十九 —— GAN图像生成 生成式对抗网络(Generative Adversarial Networks,GAN)是一种生成式机器学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。最初,GAN由Ian J. Goodfellow于2014年发明,并在论文生成器的任务是生成看起来像训练图像的“假”图像;判别器需要判断从生成器输出的图像是真实的训练图像还是虚假的图像。GAN通过设计生成模型和判别模型这两个模块,使其互相博弈学习产生了相当好的输出。GAN模型的核心在于提出了通过对抗过程来估计生成模型这一全新框架。
昇思MindSpore学习总结十八 —— DCGAN生成漫画头像 生成式对抗网络(Generative Adversarial Networks,GAN)是一种生成式机器学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。最初,GAN由Ian J. Goodfellow于2014年发明,并在论文中首次进行了描述,其主要由两个不同的模型共同组成——生成器(Generative Model)和判别器(Discriminative Model):生成器的任务是生成看起来像训练图像的“假”图像;判别器需要判断从生成器输出的图像是真实的训练图像还是虚假的图像。
昇思MindSpore学习总结十八 —— CycleGAN图像风格迁移互换 CycleGAN(Cycle Generative Adversarial Network) 即循环对抗生成网络,来自论文。该模型实现了一种在没有配对示例的情况下学习将图像从源域 X 转换到目标域 Y 的方法。该模型一个重要应用领域是域迁移(Domain Adaptation),可以通俗地理解为图像风格迁移。
昇思MindSpore学习总结十七 —— 基于MindSpore通过GPT实现情感分类 以便在使用MindSpore和MindNLP进行深度学习任务时能使用各种功能,比如数据集处理、模型训练、评估和回调功能。 3、加载IMDB数据集 并将其分为训练集和测试集。函数会返回一个包含数据集各个部分的字典,然后你可以通过键 和 来访问相应的数据。 用于返回数据集中包含的样本数量。这个方法的返回值通常是一个整数,表示训练集中有多少个样本。 将输入文本数据进行tokenization,并根据设备类型选择不同的批处理方式。如果需要,还可以对数据集进行打
昇思MindSpore学习总结十六 —— 基于MindSpore的GPT2文本摘要 本次实验使用的是nlpcc2017摘要数据,内容为新闻正文及其摘要,总计50000个样本。因GPT2无中文的tokenizer,我们使用BertTokenizer替代。下面这段代码,运行时间较长,最好选择较高算力。数据处理,将向量数据变为中文数据。配置不够,训练时间太长。
昇思MindSpore学习总结十五 ——基于Mindspore 实现BERT对话情绪识别 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。模型是基于Transformer中的Encoder并加上双向的结构,因此一定要熟练掌握Transformer的Encoder的结构。
昇思MindSpore学习总结十四 —— Vision Transformer图像分类 近些年,随着基于自注意(self-Attention)结构的模型发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展,由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前规模的模型。ViT则是自然语言处理和计算机视觉两个领域的融合结晶,在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好地效果。
昇思MindSpore学习总结十三 —— 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]。
昇思MindSpore学习总结十二 —— ShuffleNet图像分类 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。
昇思MindSpore学习总结十一 —— ResNet50图像分类 ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。下图是在CIFAR-10数据集上使用56层网络与20层网络训练误差和测试误差图,由图中数据可以看出,56层网络比20层网络训练误差和测试误差更大,随着网络的加深,其误差并没有如预想的一样减小。
昇思MindSpore学习总结十——ResNet50迁移学习 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章将使用迁移学习的方法对ImageNet数据集中的狼和狗图像进行分类。
昇思MindSpore学习总结九——FCN语义分割 全卷积网络(Fully Convolutional Networks,FCN)是UC Berkeley的Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation[1]一文中提出的用于图像语义分割的一种框架。
昇思MindSpore学习总结七——模型训练 从网络构建中加载代码,构建一个神经网络模型。#将数据从start_dim 到 end_dim 的维度,对输入Tensor进行展平#构造Cell顺序容器。nn.ReLU(),nn.ReLU(),超参(Hyperparameters)是可以调整的参数,可以控制模型训练优化的过程,不同的超参数值可能会影响模型训练和收敛速度。目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下:公式中,𝑛是批量大小(batch size),η是学习率(learning rate)。
昇思MindSpore学习总结六——函数式自动微分 神经网络的训练主要使用反向传播算法,模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss,然后进行反向传播计算,求得梯度(gradients),最终更新至模型参数(parameters)。自动微分能够计算可导函数在某点处的导数值,是反向传播算法的一般化。自动微分主要解决的问题是将一个复杂的数学运算分解为一系列简单的基本运算,该功能对用户屏蔽了大量的求导细节和过程,大大降低了框架的使用门槛。