深度学习
文章平均质量分 92
深度学习(Deep Learning)是机器学习领域中的一个研究方向,主要是通过学习样本数据的内在规律和表示层次,让机器能够具有类似于人类的分析学习能力。深度学习的最终目标是让机器能够识别和解释各种数据,从而实现人工智能的目标。深度学习的关键在于神经网络,这是一种模拟人类大脑神经元的工作方式的算法。
109702008
数字人-幺洞勾拐洞两洞洞八
展开
-
agenthub\codeact_agent\action_parser.py
这段代码实现了一个灵活的动作解析系统,能够根据不同的动作标签解析并执行相应的动作。通过使用多个子解析器和一个默认解析器,系统能够处理多种类型的动作,并确保在解析过程中的一致性和正确性。原创 2024-07-17 05:31:38 · 724 阅读 · 1 评论 -
可学习激活函数 Maxout
假设输入是向量x,通过权重矩阵W_i和偏置向量b_i进行线性变换,对于某一层的第i个神经元,`Maxout` 函数的定义如下:其中:x是输入向量。W_i是第i个线性变换的权重矩阵。b_i是第i个线性变换的偏置向量。k是一个超参数,表示我们允许的线性变换的数量。原创 2024-07-16 00:06:13 · 711 阅读 · 2 评论 -
昇思25天学习打卡营第25天|GAN图像生成
生成式对抗网络(Generative Adversarial Networks,GAN)是一种生成式机器学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。GAN论文逐段精读【论文精读】_哔哩哔哩_bilibili最初,GAN由Ian J. Goodfellow于2014年发明,并在论文生成器的任务是生成看起来像训练图像的“假”图像;判别器需要判断从生成器输出的图像是真实的训练图像还是虚假的图像。GAN通过设计生成模型和判别模型这两个模块,使其互相博弈学习产生了相当好的输出。原创 2024-07-13 00:41:55 · 1076 阅读 · 0 评论 -
昇思25天学习打卡营第24天|基于MobileNetv2的垃圾分类
MobileNet网络是由Google团队于2017年提出的专注于移动端、嵌入式或IoT设备的轻量级CNN网络,相比于传统的卷积神经网络,MobileNet网络使用深度可分离卷积(Depthwise Separable Convolution)的思想在准确率小幅度降低的前提下,大大减小了模型参数与运算量。并引入宽度系数 α和分辨率系数 β使模型满足不同应用场景的需求。原创 2024-07-12 00:05:01 · 942 阅读 · 0 评论 -
昇思25天学习打卡营第22天|基于MindNLP+MusicGen生成自己的个性化音乐
与传统方法不同,MusicGen采用单个stage的Transformer LM结合高效的token交织模式,取消了多层级的多个模型结构,例如分层或上采样,这使得MusicGen能够生成单声道和立体声的高质量音乐样本,同时提供更好的生成输出控制。MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本,相关研究成果参考论文《使用small规格的权重,生成的音频质量较低,但是生成的速度最快。原创 2024-07-10 00:03:33 · 933 阅读 · 0 评论 -
昇思25天学习打卡营第21天|RNN实现情感分类
情感分类是自然语言处理中的经典任务,是典型的分类问题。输入: This film is terrible正确标签: Negative预测标签: Negative输入: This film is great正确标签: Positive预测标签: Positive最后我们设计一个预测函数,实现开头描述的效果,输入一句评价,获得评价的情感分类。将输入句子进行分词;使用词表获取对应的index id序列;index id序列转为Tensor;送入模型获得预测结果;打印输出预测结果。原创 2024-07-09 00:55:38 · 883 阅读 · 0 评论 -
昇思25天学习打卡营第20天|LSTM+CRF序列标注
序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。输入序列清华大学座落于首都北京输出标注BIIIOOOOOBI如上表所示,清华大学和北京是地名,需要将其识别,我们对每个输入的单词预测其标签,最后根据标签来识别实体。原创 2024-07-08 00:01:08 · 1030 阅读 · 0 评论 -
昇思25天学习打卡营第19天|Diffusion扩散模型
如果将Diffusion与其他生成模型(如Normalizing Flows、GAN或VAE)进行比较,它并没有那么复杂,它们都将噪声从一些简单分布转换为数据样本,Diffusion也是从纯噪声开始通过一个神经网络学习逐步去噪,最终得到一个实际图像。Diffusion对于图像的处理包括以下两个过程:我们选择的固定(或预定义)正向扩散过程 𝑞:它逐渐将高斯噪声添加到图像中,直到最终得到纯噪声一个学习的反向去噪的扩散过程 𝑝𝜃 :通过训练神经网络从纯噪声开始逐渐对图像去噪,直到最终得到一个实际的图像。原创 2024-07-07 15:09:31 · 917 阅读 · 1 评论 -
昇思25天学习打卡营第18天|Vision Transformer图像分类
近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前规模的模型。ViT则是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。本案例完成了一个ViT模型在ImageNet数据上进行训练,验证和推理的过程,其中,对关键的ViT模型结构和原理作了讲解。原创 2024-07-06 22:55:34 · 878 阅读 · 1 评论 -
大语言模型系列-Transformer
3. XLNet(eXtreme Multi-task Learning for Efficiently Scalable and Accurate Multi-task Learning)- XLNet是一种基于自回归模型的语言模型,它采用了一种新的预训练方法,称为Permutation Language Modeling(PLM),能够在不损失自回归能力的情况下处理任意长度的文本序列。具体来说,DETR利用Transformer架构中的自注意力机制,来对图像特征进行全局编码,并生成一组潜在的检测结果。原创 2024-07-06 08:35:36 · 1000 阅读 · 2 评论 -
目标检测算法
1. R-CNN(Region-based Convolutional Neural Network)系列算法:包括 R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN,这些算法都是以区域建议网络 (RPN) 作为基础,使用卷积神经网络进行特征提取和分类。5. EfficientDet:EfficientDet是一种高效的目标检测算法,它基于EfficientNet网络结构,通过使用一系列特征金字塔网络和轻量级的检测头,实现了更高的检测精度和更低的计算开销。原创 2024-07-05 23:31:57 · 1019 阅读 · 1 评论 -
昇思25天学习打卡营第17天|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-05 23:20:13 · 829 阅读 · 0 评论 -
昇思25天学习打卡营第16天|ShuffleNet图像分类
ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。原创 2024-07-04 12:53:44 · 607 阅读 · 0 评论 -
昇思25天学习打卡营第15天|ResNet50图像分类
ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。下图是在CIFAR-10数据集上使用56层网络与20层网络训练误差和测试误差图,由图中数据可以看出,56层网络比20层网络训练误差和测试误差更大,随着网络的加深,其误差并没有如预想的一样减小。原创 2024-07-03 07:47:51 · 1021 阅读 · 1 评论 -
昇思25天学习打卡营第14天|ResNet50迁移学习
在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章将使用迁移学习的方法对ImageNet数据集中的狼和狗图像进行分类。迁移学习详细内容见。原创 2024-07-02 06:32:35 · 838 阅读 · 1 评论 -
昇思25天学习打卡营第13天|MindNLP ChatGLM-6B StreamChat
history: [('4', 'Thank'), ('5', 'You'), ('6', 'For'), ('今天天气怎么样?我是人工智能助手 ChatGLM-6B。可以修改下列参数和prompt体验模型。下载权重大约需要10分钟。你: 今天天气怎么样?原创 2024-07-01 06:03:07 · 835 阅读 · 0 评论 -
昇思25天学习打卡营第10天|基于MindSpore的GPT2文本摘要
实验环境已经预装了mindspore==2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号!!!# 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行`!!原创 2024-06-28 06:17:48 · 914 阅读 · 0 评论 -
昇思25天学习打卡营第9天|基于 MindSpore 实现 BERT 对话情绪识别
BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。模型是基于Transformer中的Encoder并加上双向的结构,因此一定要熟练掌握Transformer的Encoder的结构。原创 2024-06-27 00:00:52 · 1079 阅读 · 0 评论 -
昇思25天学习打卡营第8天|FCN图像语义分割
FCN主要用于图像分割领域,是一种端到端的分割方法,是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因FCN丢弃全连接层替换为全卷积层,网络所有层均为卷积层,故称为全卷积网络。全卷积神经网络主要使用以下三种技术:卷积化(Convolutional)使用VGG-16作为FCN的backbone。VGG-16的输入为224*224的RGB图像,输出为1000个预测值。VGG-16只能接受固定大小的输入,丢弃了空间坐标,产生非空间输出。原创 2024-06-26 06:46:09 · 822 阅读 · 0 评论 -
昇思25天学习打卡营第7天|基本介绍
本节将会整体介绍昇思MindSpore和华为昇腾AI全栈,并介绍昇思MindSpore在华为昇腾AI全栈中的位置。对昇思MindSpore感兴趣的开发者,最后可以参与昇思MindSpore的社区并一键三连。昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架同时支持云、边缘以及端侧场景。ModelZoo(模型库)原创 2024-06-25 00:09:38 · 1006 阅读 · 0 评论 -
昇思25天学习打卡营第6天|使用静态图加速
AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。原创 2024-06-24 08:09:06 · 628 阅读 · 0 评论 -
昇思25天学习打卡营第5天|模型训练|保存与加载
从网络构建中加载代码,构建一个神经网络模型。nn.ReLU(),nn.ReLU(),通过继承nn.Cell类构建自定义的神经网络模型,construct方法中定义模型的前向传播过程。面向对象的编程。昇思25天学习打卡营第4天|网络构建|函数式自动微分超参(Hyperparameters)是可以调整的参数,可以控制模型训练优化的过程,不同的超参数值可能会影响模型训练和收敛速度。目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下:公式中,是批量大小(batch size),原创 2024-06-23 10:10:41 · 588 阅读 · 0 评论 -
大语言模型系列-Transformer
自动生成文章或新闻的摘要。原创 2024-06-22 03:35:52 · 1409 阅读 · 1 评论 -
昇思25天学习打卡营第3天|数据集 Dataset|数据变换 Transforms
模块提供了一些常用的公开数据集和标准格式数据集的加载API。对于MindSpore暂不支持直接加载的数据集,可以构造自定义数据加载类或自定义数据集生成函数的方式来生成数据集,然后通过接口实现自定义方式的数据集加载。支持通过可随机访问数据集对象、可迭代数据集对象和生成器(generator)构造自定义数据集,下面分别对其进行介绍。原创 2024-06-21 03:46:56 · 631 阅读 · 1 评论 -
一文看懂llama2(原理&模型&训练)
理解一个机器学习模型(如假设的llama2)的关键在于掌握其原理、模型结构和训练过程。这涉及到从数据中提取特征,选择合适的模型架构,定义损失函数,以及使用优化算法来训练模型。通过这些步骤,模型能够从数据中学习并做出准确的预测。原创 2024-06-13 07:44:00 · 1644 阅读 · 0 评论 -
深度解读ChatGPT基本原理
ChatGPT通过结合大规模预训练的Transformer模型、特定任务的微调技术,以及可能的RLHF等高级训练策略,实现了高水平的自然语言理解和生成能力。它不仅代表了自然语言处理技术的重大进步,也预示着人工智能在人机交互领域的新时代。然而,其工作原理的具体细节,如确切的训练数据集、微调策略和评估反馈机制,由于技术保密原因,外界了解有限。深入解读 ChatGPT 的基本原理(个人总结版)_chatgpt架构-CSDN博客深入浅出,解析ChatGPT背后的工作原理-人工智能-PHP中文网。原创 2024-06-05 08:43:25 · 1283 阅读 · 0 评论 -
解决cannot import name ‘prepare_model_for_int8_training‘ from ‘peft‘ 错误
出现“cannot import name ‘prepare_model_for_int8_training‘ from ‘peft‘”错误通常表示你尝试从 Python 包 peft 导入一个不存在的函数 prepare_model_for_int8_training。如果在尝试上述建议后问题仍未解决,你可能需要提供更详织的信息,例如 peft 包的版本号、安装方式或是你尝试导入该函数的代码片段,以便能够提供更具体的帮助。请检查你是否安装了正确的包,并检查你的环境路径是否包含了该包。原创 2024-05-30 18:55:10 · 1170 阅读 · 3 评论 -
unpermute_kernel_backward<<<num_blocks, block_size>>>(scratch, dout, B, T, NH, HS);
这行代码是用来调用一个名为unpermute_kernel_backward`的CUDA kernel,其中`num_blocks`是grid中block的数量,`block_size`是每个block中thread的数量。其中`hipLaunchKernelGGL`是用于启动kernel的宏,`dim3(num_blocks)`和`dim3(block_size)`指定了block和grid的维度,后面的两个0分别对应了共享内存大小和流(stream),尽管这里它们被设置为0,表示使用默认值。原创 2024-05-30 18:46:43 · 563 阅读 · 0 评论 -
情感分析及数据集代码解析
11. 最后定义了一个函数`load_data_imdb`,它下载数据集、读取数据、分词、建立词汇表、处理文本为固定长度的序列,并返回训练和测试的数据迭代器以及词汇表供后续的神经网络模型使用。标签为'neg'表示消极的评论,使用0表示。7. 准备数据迭代器:数据被截断或填充至指定的序列长度(这里是500个单词),然后使用`d2l.load_array`函数将处理后的数据和标签封装成小批量的数据迭代器。1. 导入所需的包和模块,如`os`、`torch`、`nn`以及一个定制的深度学习库`d2l`。原创 2024-05-28 11:52:29 · 709 阅读 · 2 评论 -
windows ollama 指定模型下载路径
打开任务管理器,转到“进程”标签(或Windows 10及更高版本的“详细信息”标签),找到与"Ollama"相关的进程,右键点击并选择“结束任务”。如果使用的是某些特定的IDE或代码编辑器,它们可能有自己的方式来设置环境变量。在Windows系统中,如果想为Ollama指定模型的下载路径,可以通过设置环境变量来实现。在设置环境变量时,确保路径是正确的,并且有足够的权限来访问和写入该目录。在“系统变量”或“用户变量”部分,点击“新建”来创建一个新的环境变量。右键点击“此电脑”或“计算机”,选择“属性”。原创 2024-05-28 11:51:11 · 5737 阅读 · 0 评论 -
使用LoRA进行高效微调:基本原理
选择一个预训练的神经网络模型,例如ResNet、Transformer等。为了简单起见,您可以选择一个轻量级的卷积神经网络(CNN)。原创 2024-05-26 07:25:33 · 4995 阅读 · 1 评论 -
ROCm上来自Transformers的双向编码器表示(BERT)
需要注意的是,这个代码片段作为一个解析,但实际中运行它需要额外的上下文(例如 MaskLM 类的实现)和适当的数据准备和预处理步骤。9. 模型实例化后,通过随机生成的 tokens 和 segments 调用其 forward 方法,得到编码后的向量 encoded_X,同时执行MLM和NSP任务,输出预测结果。6. MaskLM 类未在代码中定义,通常用来实现BERT的掩码语言模型任务,它在一定比例的输入词元上应用掩码,并训练模型来预测这些被掩码的词元。原创 2024-05-26 07:24:28 · 871 阅读 · 0 评论 -
ROCm上情感分析:使用循环神经网络
LSTM层(`encoder`)设定为双向,输出经过全连接层(`decoder`)得到最终的分类结果。整体来看,这段代码主要是利用循环神经网络对电影评论的情感进行分类,它通过加载预训练好的词向量,构建一个双向LSTM网络,并在IMDB评论数据集上进行训练和测试。加载IMDB电影评论数据集,并用迭代器`train_iter`和`test_iter`进行训练和测试。`vocab`是数据集的词汇表。这里导入了PyTorch库、神经网络模块`nn`和基于PyTorch的深度学习库`d2l`(深度学习的一本书)。原创 2024-05-25 05:45:19 · 473 阅读 · 4 评论 -
ROCm上运行网络中的网络(NiN)
使用`nn.Sequential`定义了NIN的网络结构,它由多个`nin_block`和`MaxPool2d`、`Dropout`等层经过堆叠后形成,并且在网络最后使用全局平均池化层`AdaptiveAvgPool2d`代替全连接层,然后将输出扁平化(`Flatten`)以匹配类别标签数量。导入了PyTorch的核心库,用于构建网络模型和数据处理,以及`d2l`作为`Dive into Deep Learning`书的辅助工具包,用于加载数据和模型训练等功能。原创 2024-05-24 08:27:14 · 969 阅读 · 1 评论 -
ROCm上运行情感分析:使用卷积神经网络
TextCNN模型通过嵌入层(`nn.Embedding`)将单词映射到低维空间,然后使用卷积层(`nn.Conv1d`)提取局部特征,最后通过一个全连接层(`nn.Linear`)进行分类。调用预测函数`predict_sentiment`测试模型效果,传入模型、词汇表和待预测的句子,函数会输出句子的情感倾向(正面或负面)。`train_ch13`函数来自`d2l`工具箱,负责模型的训练过程。通过`apply`函数将初始化操作`init_weights`应用到模型的每个子模块上。原创 2024-05-24 08:25:44 · 394 阅读 · 0 评论 -
ROCm上运行Transformer
总之,此段代码整体上展示了如何构建 Transformer 模型,训练它进行机器翻译任务,并对其内部的注意力机制进行可视化,帮助我们了解模型是如何工作的。接下来,代码段处理解码器的两组注意力权重:解码器的自注意力权重和编码器-解码器之间的注意力权重。这将为每个头展示编码器-解码器注意力的热图,显示了当生成翻译的每个词元时,模型对输入句子中不同词元的关注分布。显示了解码器自注意力权重的热图,其中包括了当前词元和前面所有已生成的词元之间的关注关系。在代码的后面部分,实现了对注意力权重的可视化。原创 2024-05-23 07:42:40 · 1266 阅读 · 4 评论 -
自然语言推断与数据集代码解析
文本数据会被截断或补齐到一定长度。3. 实现`read_snli`函数,用于读取SNLI数据集,并将其解析为前提(premises)、假设(hypotheses)以及对应的标签(labels)。7. 定义`load_data_snli`函数,它使用上面定义的`SNLIDataset`类来创建训练和测试数据迭代器,同时返回构建的词汇表(vocab)。值得注意的是,这个代码的部分注释标签是`#@save`,这是d2l包中用于标记某个代码块或函数将会被保存并在后续使用中重新加载的一个特殊注释。原创 2024-05-22 08:22:19 · 606 阅读 · 1 评论 -
ROCm上运行预训练BERT
此外,由"#<save>"标记的部分,是保存函数定义的提示,便于以后的复用。请注意,由于硬件和软件的快速发展,具体的安装和配置步骤可能会随着时间而变化,因此建议查阅最新的ROCm和相关深度学习框架的官方文档。因此,在使用ROCm时可能会遇到一些挑战和限制。此外,由于ROCm和BERT都是不断发展的技术,建议您查阅最新的官方文档和社区讨论,以获取最准确的安装和运行指南。要在ROCm上运行预训练的BERT模型,您需要确保您的系统已经安装了支持ROCm的TensorFlow版本,并且已经正确配置了相关的环境。原创 2024-05-19 05:24:52 · 1054 阅读 · 1 评论 -
ROCm上运行自然语言推断:使用注意力
具体来说,如果你在PyTorch中实现或运行NLI模型,并且想要确保它能在ROCm环境下运行,你需要确保安装了PyTorch的ROCm版本,并且所有使用到的功能和算子都是ROCm兼容的。因此,在ROCm上进行开发可能需要更多的实验和调试。看起来你可能在尝试恢复一个自然语言推断(NLI)模型的训练或推理过程,该模型可能使用了注意力机制,并且是在ROCm平台上运行的。在ROCm(AMD的开源GPU加速计算平台)上运行自然语言推断(NLI)任务,特别是使用注意力机制,通常涉及深度学习模型的构建和训练。原创 2024-05-19 05:16:46 · 993 阅读 · 0 评论 -
ROCm上运行自然语言推断:微调BERT
SNLIBERTDataset类处理SNLI数据库的数据,用于BERT的使用,分词数据集中的前提和假设,并创建相应的令牌ID和段ID作为模型的输入。- 使用`d2l`的`train_ch13`函数来训练模型,传入定义的网络、训练和测试迭代器、损失函数、训练器、训练周期数和设备配置。10. 使用定义的训练迭代器、损失函数、优化器以及`d2l`提供的训练工具来对SNLI数据库中的BERT分类器模型进行训练。2. 从指定的`d2l.DATA_HUB`下载预训练模型(BERT基础版和BERT小型版)。原创 2024-05-17 07:09:21 · 951 阅读 · 0 评论