- 博客(25)
- 收藏
- 关注
原创 昇思25天学习打卡营第二十五天|基于MindSpore实现BERT对话情绪识别
BERT 全称是来自变换器的双向编码器征量,它是一种新型语言模型。与BERT模型相似的预训练语言模型例如问答,命名实体识别,自然语言推理,文本分类等在许多自然语言处理任务中发挥着重要作用。模型是基于Transformer中的Encoder并加上双向的结构。这里提供一份已标注的,经过分词预处理的机器人聊天数据集。下面以一个文本情感分类任务为例子说明整个模型的运用过程。
2024-07-30 16:53:59
678
原创 昇思25天学习打卡营第二十四天|RNN实现情感分类
本节使用情感分类的经典数据集IMDB影评数据集,数据集包含Positive和Negative两类。为了方便数据集合和预训练词向量的下载,首先设计数据下载模块,实现可视化下载流程,并保存至指定路径。数据下载模块使用requests库进行http请求,并进行tqdm库对下载百分比进行可视化。此外针对下载安全性,使用IO的方式下载临时文件,而后保存至指定的路径被返回。下载好的IMDB数据集为tar.gz文件,我们使用Python的tarfile库对其进行读取,并将所有数据和标签分别进行存放。
2024-07-30 09:21:21
395
原创 昇思25天学习打卡营第二十三天|LSTM+CRF序列标注
Normalizer是X对应的所有可能的输出序列的Score的对数指数,此时如果按穷举法进行计算,则需要将每个可能的输出序列都计算一遍。对序列进行注,实际上是对序列中的每个Token进行标签预测,可以直接是做简单的多分类问题。但是序列标注不仅仅需要对单个Token进行分类预测,同时相邻Token直接有关联关系。序列标准指的是给定输入序列,给序列中每一个Token进行标注标签的过程,序列标注问题通常用于从文本中进行信息提取,包括分词,词性标注,命名实体识别等等。
2024-07-29 20:34:29
391
原创 昇思25天学习打卡营第二十二天|Pix2Pix实现图像转换
cGAN的生成器与传统GAN得生成器在原理上有一些区别,cGAN的生成器是将输入图片作为指导信息,由输出图像不断尝试深沉用于迷惑判别器的假图像。而传统GAN的生成器是基于一个给定的随机噪声生成图像,输出图像通过其他约束条件控制生成,这就是cGAN和GAN的在图像翻译任务中的差异。Pix2Pix是基于条件生成对抗网络实现的一种深度学习图像转换模型,该模型可以实现语义/标签到真实图片,灰度图到彩色图,航空图到地图,白天到黑夜,线稿图到实物图的转换。
2024-07-29 10:04:06
406
原创 昇思25天学习打卡营第二十一天|GAN图像生成
最初,GAN在论文中首次进行了描述,其主要有两个不同的模型共同组成——生成器和判别器。生成器的任务是深沉看起来像训练图像的假图像,判别器需要判断从生成器输出的图像是真实的训练图像还是虚假的图像。GAN模型的核心在于提出了通过对抗过程来古籍生成模型这一全新框架,在这个框架中,将会同时训练两个模型——捕捉数据分布的生成模型G和估计样本是否来自训练数据的判别模型D。模型简介:GAN,生成式对抗网络,是一种生成式机器学习模型,是近年来复杂分布上无监督学习最具前景的方式之一。
2024-07-28 16:41:56
417
原创 昇思25天学习打卡营第二十天|Diffusion扩散模型(下)
在这里我们定义一个正则数据集,数据集可以来自简单的真实数据集的图像组成。每个图像的大小都会调整为相同的大小,并且图像也是随机水平翻转的。本实验我们尝试有翻转和没有翻转的训练,并发现翻转可以稍微提高样本质量。正向扩散,我们已经知道正向扩散过程在多个时间步长T内,从实际分布逐渐向图像添加噪声,根据差异计划进行了正向扩散。最初的DDPM作者采用了线性时间表。我们将正向过程方差设置为常数,再定义T时间步的时间表。本实验采用Fashion_MNlST数据集,我们使用download下载并解压数据集到指定路径。
2024-07-28 09:04:23
417
原创 昇思25天学习打卡营第十九天|Diffusion扩散模型(上)
它们都将噪声从一些简单分布转换为数据样本,Diffusion也是从纯噪声开始通过一个精神网络学习逐步去噪,最终得到一个实际图像。其对图像的处理包括以下两个过程:一是选择固定正向扩散过程q,二是一个学习的反向去噪的扩散过程p。关于扩散模型有很多种理解,本文介绍的是在基于PyTorch框架的重现的基础上(而他本身又基于TensorFlow实现),迁移到mind spore AI框架上实现的。实验中我们采用离散时间(潜在变量模型)的观点,另外,读者也可以查看有关于扩散模型的其他几个观点。
2024-07-27 23:54:14
496
原创 昇思25天学习打卡营第十八天|DCGAN生成漫画头像
不同之处在于,DCGAN会分别在判别器和生成器中使用卷积和转置卷积层。它判别分别由分层的卷积层,BathNom层和ReLU激活层组成。输入是标准正态分布中提取出来的隐向量Z ,输出是3×64×64的RGB。判别器D是一个二分类网络模型,输出判定该图像为真实图的概率。而经过一系列的处理,最后通过sigmoid激活函数得到最终概率。按照DCGAH论文中描述,所有模型权重均应从mean为0,sigma为0:02的正态分布中随机初始化。数据准备与处理过程中,我们首先要将数据集下载到指定目录下并解压。
2024-07-27 12:13:13
721
原创 昇思25天学习打卡营第十七天|CycleGAN图像风格迁移互换
本案例中使用的数据集里面的图片来源于ImageNet,该数据集共有17个数据包。这里对数据进行了随机裁剪,水平随机翻转和统一化的预处理,为了将重点聚焦到模型,此处将模型预处理后的结果转换为MindRecord格式的数据,以省略大部分数据预处理的代码。CycleGAN即循环对抗生成网络。该模型实现了一种在没有配对示例的情况下学习将图像从源域X转换到目标域Y的方法。使用download接口下载数据集,并将下载后的数据集自动解压到当前目录下。模型结构:CycleGAN网络本质上是有两个镜像对称的GAN网络组成。
2024-07-25 23:54:30
240
原创 昇思25天学习打卡营第十六天|基于MobileNetv2的垃圾分类
MobileNet网络是专注于移动端,嵌入式或loT设备的轻量级CNN网络,相比于传统的卷积神经网络,MobileNet网络使用深度可分离卷积的思想在准确率小幅度降低的前提下,大大减小了模型参数与运算量。实验目的:1 .了解熟悉垃圾分类应用代码的编写 2 . 了解Linux操作系统的基本应用 3 .掌握atc命令进行模型转化的基本操作。数据处理,MobileNetv2代码默认使用image folder格式是管理数据集,每一类图片单独整理成一个文件夹。
2024-07-25 01:18:37
364
原创 昇思25天学习打卡营第十五天|K近邻算法实现红酒聚类
K近邻算法是一种用于分类和回归的非参数统计方法,是计算机学习最基础的算法之一。他正是基于以上思想:要确定一个样本的类别,可以计算他与所有训练样本的距离,然后找出和该样本最接近的K个样本,统计出这些样本的那边并进行投票,票数最多的那个那就是分类的结果。预测算法的流程中如下: 1 . 在训练样本集中找到距离待测样本最近的K个样本,并保存至集合N中。2. 统计集合N中每一类样本的个数Ci,i=1,2,3……3. 最终分类的结果为argmaxCi(最大的对应的那个Ci)那个类。
2024-07-24 01:05:50
322
原创 昇思25天学习打卡营第十四天|Vision Transformer图像分类
环境准备与数据读取,开始实验之前,需要确保本地已经安装了Python环境并安装了MindSpore。请确保你的数据集路径如下结构。VIT模型是自然语言处理和计算机视觉两个领域的融合结晶,在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。VIT模型的主体结构是基于Transform模型的Encoder部分(部分结构顺序有调整)。
2024-07-23 11:14:18
281
原创 昇思25天学习打卡营第十三天|SSD目标检测
SSD目标检测主流算法可以分成两个类型:1,two-stage方法:RCNN系列,通过算法产生候选框,然后再对这些候选框进行分类和回归。2.one-stage方法:YOLO和SSD,直接通过主干网络给出类别位置信息,不需要区域生成。然后进行数据采样,方法有三种,分别是1. 使用整个原始输入图像,2 . 采样一个区域,使采样区域和原始图片的最小交并比重叠为0.1,0.3,0.5,0.7或0.9 3. 随机采样一个区域。SSD采用VGG16作为基础模型,然后在其基础上新增了卷积层来获得更多的特征图用以检测。
2024-07-22 19:11:15
209
原创 昇思25天学习打卡营第十二天|ShuffleNet图像分类
ShuffleNet是一种计算高效的CNN模型,其设计目标是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。模型训练与评估过程中,需要训练及准备与加载。模型架构,ShuffleNet最显著的特点在于对不同的通道进行重排来解决Group Convolution带来的弊端。图片上传时压缩出了点问题,故而不清晰,见谅。
2024-07-22 14:47:16
259
原创 昇思25天学习打卡营第十一天|ResNet50图像分类
本节使用ResNet50预训练模型进行微调,调用resnet50构造ResNet50模型,并设置pretrained参数为True,将会自动下载该预训练模型,并加载其中的参数到网络中。首先是数据集的准备和加载。数据集内一共有5万张训练图片和1万张评估图片,首先使用download接口下载并解压。ResNet网络提出了残差网络结构来减轻退化问题,使用该网络可以实现搭建较深的网络结构(突破1千层)。残差网络结构是ResNet网络的主要亮点,由两个分支构成:一个主分支,一个shortcuts。
2024-07-21 20:08:21
303
原创 昇思25天学习打卡营第十天|ResNet50迁移学习
在实际应用场景中,由于训练数据集不足,很少有人会从头开始训练整个网络。普遍做法是,在一个非常大的基础数据集上训练,得到一个预训练模型。训练模型步骤中,本章使用ResNet50模型进行训练,搭建好模型框架后,通过将pretrialed参数设置为True来下载预训练模型,并将权重参数加载到网络中。首先需要下载狼与狗分类数据集,使用download接口下载数据集,并将下载后的数据集自动解压到当前目录下。开始训练模型,有没有预训练模型相比,将节约一大半的时间,因为此时可以不用计算部分梯度。
2024-07-20 20:59:18
233
原创 昇思25天学习打卡营第九天|FCN图像语义分割
FCN是首个端到端进行像素级预测的全卷积网络。图像语义分割是图像处理和机器视觉技术中关于图像理解的重要一环,AI领域的一个重要分支,常被应用于人脸识别,物体检测,医学影像,卫星图像分析,自动驾驶感知等领域。语义分割的第一步,首先需要进行数据处理,之后使数据预处理,数据加载过程。之后进行网络构建,使用以下代码构建FCN-8s网络。经过一系列步骤后,效果如下图。由于时间安排原因,决定累计一周后一次性打卡。然后进行数据预处理和数据加载。
2024-07-19 23:21:44
182
原创 昇思25天学习打卡营第八天|使用静态图加速
基于装饰器的开启方式,在需要对Tensor的某些运算进行编译加速时,可以在其定义的函数上使用jit修饰器。AI编译框架分为两种运形模式,分别是动态图模式以及静态图模式。静态图模式的开启方式,分别是基于装饰器的开启方式和基于全集context的开启方式。动态图模式的特点,是计算图的构建和计算同时发生,符合python的解释执行方程。静态图的特点是将计算图的构建和实际计算分开,有关静态图模式的运行原理可以参考静态图语法支持。基于context 的开启方式,context是一种全局的设置模式。
2024-07-12 09:22:57
153
原创 昇思25天学习打卡营第七天|保存与加载
首先是保存与加载模型权重,在保存模型的时候使用save_checkpoint接口,传入网络和指定的保存路径。先创造相同模型的实例,然后再使用load_checkpoint和load_param_into_net方法加载参数。在保存与加载MindIR中,可使用export接口直接将模型保存为MindIR。它同时保存了checkpoint和模型结构,因此需要定义输入Tensor来获取输入shape。今天学习如何第9课,保存与加载模型的相关知识。
2024-07-10 10:52:24
227
原创 昇思25天学习打卡营第六天|函数式自动微分
神经网络梯度计算,由于我们的神经网络构造是继承自面对对象编程范式nn.Cell,接下来我们将使用Cell构造同样的神经网络,利用函数自动微分来实现反向传播。神经网络的训练主要使用反向传播算法,模型预测值与正确标签送入损失函数获得loss,然后进行反向传播计算,求得梯度。函数与计算图,计算图式用图论语言表示数学函数的一种方法,也是深度学习框架表达神经网络模型的统一方法。微分函数与梯度计算,为了优化模型参数,我们通常需要求参数对于loss的导数。执行微分函数,可发现梯度值与前文function求得梯度值一致。
2024-07-08 02:15:23
477
原创 昇思25天学习打卡营第五天|网络构建
首先是定义模型类,第一神经网络时,可以继承nn.Cell类,在_init_进行子cell的实例化和状态管理,在construct方法中实现Tensor操作。今天学习的是第六课网络构建,涉及到神经网络模型,即对神经网络结构进行构建和管理。nn.ReLU层网络中加入非线性的激活函数,帮助神经网多学习各种复杂特征。实例化nn.Flatten层,28×28的2D张量转化为784大小的连续数组。nn.Dense为全连接层,其使用权重和输入进行线性变换。前些日子太忙,停止打卡了好久,努力补上进度。
2024-07-05 00:47:56
685
原创 昇思25天学习打卡营第四天|数据集
其中自定义数据集是mindspore.dataset提供的一些常用公开数据集和标准格式数据集的加载API。数据是深度学习的基础,高质量的数据输入将在整个深度神经网络中起到积极作用。mindspore.dataset内置的文本,图像,音频等数据集加载接口,并提供了自定义数据集加载接口。在数据集的加载中,我们使用Mnist数据集作为样例,用mindspore.dataset进行加载。今天学习的是04数据集,涉及到数据集的加载,迭代,常用操作。数据集加载后,再以迭代的方式获得数据然后送入神经网络中进行训练。
2024-06-26 08:53:33
228
原创 昇思25天学习打卡营第三天|张量
一是根据数据直接生成,二是由Numpy数组生成,三是使用init初始化器构造张量,四世纪城另一个张量的属性,形成新的张量。接下来是了解张量的属性,包括形状,数据类型,单个元素大小,占用字节数量,维数,元素个数,每一维不长等。本章涉及到大量线性代数,需要依靠矩阵的操作来达到最佳预测效果。最后是CSRTensor,其稀疏张量格式有着高效的储存和运算优势,下面是一些使用实例。Tensor索引与Numpy索引类似,均从0开始编制,负索引表示按倒序编制。张量运算包括算术,线性代数,矩阵处理,采样等等。
2024-06-24 12:05:01
282
原创 昇思25天学习打卡营第二天|入门
由于MindSpore使用函数式自动微分机制,因此在定义时需要正向计算函数,且要使用value_and_grad通过函数变化获得梯度计算函数。完成准备工作后,我们需要定义测试函数,以评估模型性能。训练过程中,需要多次迭代数据集,在每一集遍历训练集进行训练,结束后使用测试集进行预测。今日学习了02快速入门的下半部分,即网络构建,模型训练和保存模型。网络构建较为基础,模型训练则更加复杂。加载模型需要重新实例化模型对象和构造模型,之后加载模型参数并将其加载之模型上。昨天由于电脑出了故障,没能及时打卡。
2024-06-22 09:51:13
257
原创 昇思25天学习打卡营第一天|初学
昇思MindSpore是一个全场景AI框架,旨在实现易开发、高效执行、全场景统一部署三大目标。在学习过程中能感受到,MindSpore着重提升易用性并降低AI开发者的开发门槛。有着诸如易开发表现为API友好、调试难度低等优点。而其高效执行包括计算效率、数据预处理效率和分布式训练效率。初次接触,MindSpore的效率比我想象的还要好。未来会继续进行相关学习的,第一天就以了解为主吧。今晚用Ascend环境试了试一个简易深度学习模型,效果令人满意。今天简单学习了01基本介绍和02快速入门的前半部分。
2024-06-21 02:52:30
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人