- 博客(25)
- 收藏
- 关注
原创 DCGAN生成漫画头像
本文来自昇思打卡训练营材料。用DCGAN网络经过训练漫画头像,最后的生成结果也没有那么清晰,训练时间比较少。除了GAN系列,还有扩散模型系列。感觉扩散系列在生成模型上更火一些。
2024-07-14 22:54:11
992
原创 mindspore Diffusion扩散模型
如果将Diffusion与其他生成模型(如Normalizing Flows、GAN或VAE)进行比较,它并没有那么复杂,它们都将噪声从一些简单分布转换为数据样本,Diffusion也是从纯噪声开始通过一个神经网络学习逐步去噪,最终得到一个实际图像。Diffusion对于图像的处理包括以下两个过程:我们选择的固定(或预定义)正向扩散过程 𝑞𝑞 :它逐渐将高斯噪声添加到图像中,直到最终得到纯噪声。
2024-07-14 08:55:09
835
原创 FCN图像语义分割
FCN主要用于图像分割领域,是一种端到端的分割方法,是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因FCN丢弃全连接层替换为全卷积层,网络所有层均为卷积层,故称为全卷积网络。全卷积神经网络主要使用以下三种技术:卷积化(Convolutional)使用VGG-16作为FCN的backbone。VGG-16的输入为224*224的RGB图像,输出为1000个预测值。VGG-16只能接受固定大小的输入,丢弃了空间坐标,产生非空间输出。
2024-07-12 15:12:25
1399
原创 Vision Transformer图像分类
近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前规模的模型。ViT则是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。本文材料来自昇腾打卡训练营。主要内容为用mindspore框架,ViT模型对图像的分类。
2024-07-12 01:11:49
1399
原创 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-11 01:13:31
1308
原创 ShuffleNet图像分类
ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。
2024-07-10 08:53:53
662
原创 mindspore ResNet50迁移学习
这一篇是用resnet50构建一个狼狗二分类的任务。采用的是迁移学习方式。在已经预训练好的模型上进行重新训练,可以提高训练的速度,也是现在最常用的训练方式。就比如一些大语言模型,就是在原本的模型上面,用新的数据集进行微调训练的,避免从头训练需要的大量时间和资源。
2024-07-09 00:49:24
361
原创 mindspore ResNet50图像分类
ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。ResNet网络提出了残差网络结构(Residual Network)来减轻退化问题,使用ResNet网络可以实现搭建较深的网络结构(突破1000层)。本篇主要讲了用mindspore框架如何定义resnet网络用于图像的分类。
2024-07-08 01:30:24
974
原创 mindspore实现K近邻算法实现红酒聚类
K临近算法基本思想就是设定一个k值。一个点属于哪一类,就根据在周围最近的k个点中的多数确定。k过小容易受噪声影响,反之分类界限会模糊。这里需要设计距离度量方式,采用何种距离。
2024-07-07 01:40:38
318
原创 基于MindNLP+MusicGen生成自己的个性化音乐
MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本,相关研究成果参考论文《MusicGen直接使用谷歌的及其权重作为文本编码器模型,并使用及其权重作为音频压缩模型。MusicGen解码器是一个语言模型架构,针对音乐生成任务从零开始进行训练。MusicGen 模型的新颖之处在于音频代码的预测方式。
2024-07-06 08:46:33
996
原创 基于MobileNetv2的垃圾分类
MobileNet网络是由Google团队于2017年提出的专注于移动端、嵌入式或IoT设备的轻量级CNN网络,相比于传统的卷积神经网络,MobileNet网络使用深度可分离卷积(Depthwise Separable Convolution)的思想在准确率小幅度降低的前提下,大大减小了模型参数与运算量。并引入宽度系数 α和分辨率系数 β使模型满足不同应用场景的需求。
2024-07-05 00:45:06
1070
原创 mindspore BERT实现对话情感识别
最后从结果可以看出推理的结果不一定很准。可能与学习训练的语料有关。一些基本的通用的预测还是很好的。以上就是一个基于bert预训练模型和在数据集上微调的情感分类任务的实现。还是比较简单的分类任务。现在通用的语言模型,应该是可以判断出具体的情绪,而不是简单的积极消极。
2024-07-01 17:36:58
930
原创 mindspore ChatGLM-6B
主要考虑下载的速度,存储空间是否足够,显存大小。当然如果是使用大语言模型的话,最方便的还是使用在线的大语言模型,比如chatgpt4,通义千问,文心一言,kimi,豆包这些吧。这里直接从modelscope下载ChatGLM-6B模型,采用half的半精度,这种简版的模型权重更小,需要的运行占用内存更少,适合推理。这样运行代码后,会从镜像下载模型。首先安装mindspore,mindnlp,mdtex2html,gradio库。一些大语言模型可以下载对应的模型参数后,进行推理和微调。
2024-07-01 08:45:39
374
原创 mindspore LSTM+CRF序列标注
当然这里只是一个简单的手动构造的数据集的训练实体识别。也可以找现有的数据集进行训练命名实体识别。采用BERT预训练模型,然后构建网络进行训练。如果考虑做底层优化性能的话,可以自行组建网络训练,或者采用预训练+微调的形式。如果考虑应用的话,也可以直接用nltk和spacy库,下载对应的预料后,直接调用api接口实现命名实体识别任务。如果采用BIOE方式标注,对一个实体开头为B,其他不分为I。序列标注有分词,词性标注和命名实体识别。然后进行训练和评估。推理检测训练的效果。然后实例化网络,对数据进行预处理。
2024-06-30 02:15:02
407
原创 mindspore RNN实现情感分类
整体流程是准备好训练的数据集,预训练模型,对数据集进行自然语言处理,用RNN学习到词前后之间的关系,最后做一个分类任务。用mindspore实现RNN对句子情感进行分类。用tarfile进行读取,加载数据集。下载glove,一种预训练的词向量。具体ipynb原件可以最上面下载。下载的是IMDB影评经典数据集。然后构建RNN模型网络。然后进行数据的预处理。然后写保存节点的函数。
2024-06-29 08:51:01
179
原创 mindspore模型保存和加载,静态图加速
模型的保存和加载是很重要的。有时就是需要一些模型进行保存,方便后续继续微调。调用mindspore.save_checkpoint可以将模型的权重参数保存为ckpt文件。通过load_checkpoint函数加载模型参数,通过load_param_into_net导入对应的model中,完成模型加载。param_not_load是没有加载的参数,如果它为空,说明参数全部加载完毕。除Checkpoint外,MindSpore提供了云侧(训练)和端侧(推理)统一的。可使用export。
2024-06-28 00:27:24
1267
原创 mindspore 模型训练
如果不是训练模式,就不会进行梯度更新,仅仅做模型的评估。和pytorch中的model.eval()取消训练模式的效果一样。写清楚网络的构造函数,就是展平,线性层和relu层。最后输出10个类别,归一化之后代表数字0-9的概率。第三步确定超参数,如训练轮次,批量大小和学习率,损失函数选择交叉熵,优化器选择SGD随机梯度下降。分为四步,构建数据集,构建网络,确定超参数、优化器和损失函数,训练和模型评估。首先下载数据集,对数据集进行变换,准备好训练集和测试集。这就是一个简易的手写数字识别的分类任务的整个过程。
2024-06-26 20:15:36
208
原创 mindspore 函数式自动微分
就是预测值和真实值之间的误差,对神经网络中的权重w和偏置b求导,希望误差越小越好,达到预测值和真实值之间的拟合。尽管对于神经网络为什么能达到这个预测的效果是黑盒模型,但是确实可以拟合实现预测效果。当进行模型训练的时候,会自动微分,反向传播,更新神经网络的参数。这里是简单的手动实现自动微分的示例。有时候,比如评估模型的时候,不需要计算梯度反向传播,可以通过stop_gradient停用计算梯度。这样输出的grads包含两个元素,分别是对w和对b的梯度。以上方式可以计算出预测值z和真实标签值y之间的损失值。
2024-06-26 08:02:01
165
原创 mindspore 网络构建
construct是网络的构造函数。在手写数字识别上,先用flatten将手写数据识别的图片数据28*28的图片展平为512。最后输出为值表示10类计算的值。用ops.ones构造一个简单的1张图片,大小28*28的。计算出结果后,用nn.Softmax进行归一化,最大的就是这类数字的概率。用nn.SequentialCell可以将各个层串联起来。Dense是线性层,前两个参数为输入和输出的维度长度,ReLU为非线性层。可以通过以上方式输出模型层的名字和参数。以上就是基本简单的网络构建方式。
2024-06-24 21:43:46
222
原创 mindspore transform
hwc分别是高度height、宽度width、通道channel。有时候通道是第一维度,有时候是第三维度。HWC2CHW就是将(h,w,c)转换为(c,h,w)模式。比torch的张量按维度转置方便理解一些吧。以上是对于语言的分词。可以将字符串按照空格,构造出一个个单独的单词分词。Vocab是生成此表,单词到index的映射。用lookup生成构造好映射的数据集。mindspore.dataset的transforms可以对数据进行预处理。加载数据集之后,用transforms进行一系列处理。
2024-06-24 08:47:27
209
原创 mindspore 数据集加载
通过连接下载mnist数据集后,调用MnistDataset进行加载,这样数据集就加载了好。在mindspore官网昇腾910的jupyternotebook下载他网站上的数据集的话,速度很快。基本上,如果要入门学习,就可以使用自带的数据集。如果要自己构建数据集,就自定义数据集,进行后续的训练和评估。可以直接导入mindspore的dataset中的数据集,具体有哪些数据集,可以查阅官方文档。实现上主要通过mindspore.dataset的一些模块实现数据加载。对数据进行可视化展示。
2024-06-22 14:05:36
287
原创 mindspore 张量tensor
其中,非零元素的值存储在`values`中,非零元素的位置存储在`indptr`(行)和`indices`(列)中。- `indices`: 一维整数张量,表示稀疏张量非零元素在列中的位置, 与`values`长度相等,索引数据类型支持int16、int32、int64。- `shape`: 表示被压缩的稀疏张量的形状,数据类型为`Tuple`,目前仅支持二维`CSRTensor`。- `values`: 一维张量,表示`CSRTensor`相对应的非零元素的值,与`indices`长度相等。
2024-06-21 08:26:01
191
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人