深度学习:昇思MindSpore生态桥接工具——MindTorch实践 MindTorch是一款将PyTorch训练脚本高效迁移至MindSpore框架执行的实用工具,旨在不改变原生PyTorch用户的编程使用习惯下,使得PyTorch风格代码能在昇腾硬件上获得高效性能。用户只需要在PyTorch源代码主入口调用torch系列相关的包导入部分(如等)之前调用,加上少量训练代码适配即可实现模型在昇腾硬件上的训练。
跟李沐学AI:BERT 使用预训练好的模型来抽取词、句子的特征:Word2Vec或者预训练好的语言模型。使用预训练好的语言模型,一般不会再对语言模型进行微调,即不进行更新。Word2Vec一般用于替代embedding层但是Word2Vec往往忽略了时序信息,语言模型也往往只看了一个方向,不善于处理长序列。即使下游任务有所不同,使用BERT未调试只需增加输出层即可。不同任务,输入的表示和BERT的特征也会不同。e_Ae_B。
跟李沐学AI:Transformer 对每个样本的所有feature做归一化。意思是对每个样本独立地计算均值和方差。假设输入为(3, 2)的矩阵,样本归一化对每行计算均值和方差:对第一个样本:均值为(1+2)/2=1.5,方差为。对每行计算并归一化后得到输出Transform的输入一般为一个序列,但是每个序列的有效长度(valid length)有所不同,会导致batch norm不稳定,故不适合batch norm。对每个样本的元素做归一化,在长度变化时更加稳定。
跟李沐学AI:使用注意力机制的seq2seq Seq2Seq中通过hidden_state在编码器和解码器中传递信息注意力机制可以根据解码器RNN的输出来匹配到合适的柏宁玛琪RNN输出来更有效地传递信息。
深度学习:基于MindSpore实现ResNet50中药分拣 ResNet(Residual Network)是一种深度神经网络架构,由微软研究院的Kaiming He等人在2015年提出,并且在ILSVRC 2015竞赛中取得了很好的成绩。ResNet主要解决了随着网络深度增加而出现的退化问题,即当网络变得非常深时,训练误差和验证误差可能会开始上升,这并不是因为过拟合,而是由于深层网络难以优化。ResNet的核心思想是引入了残差学习框架来简化许多层网络的训练。通过构建“跳跃连接”或称“捷径连接”,允许一层直接与更深层相连接。
深度学习:CycleGAN图像风格迁移转换 定义ResNet的残差块# 返回 x + out 的做法是实现残差学习的关键。这个设计是为了让网络能够更容易地学习到恒等映射(identity mapping)# 从而帮助解决深层网络训练中的梯度消失问题,并允许网络构建得更深而不会导致性能下降。# 定义基于ResNet的生成器# 数据集图像输入后经过的第一个网络# 随后对数据进行两次下采样# 残差网络有9个残差块# 组装残差网络# 再将图片进行上采样(转置卷积)# 定义输出层else:# 将输出压制(-1, 1)
深度学习:cGAN和pix2pix图像转换 定义UNet Skip Connection Block'''outer_nc 和 inner_nc 分别表示输出通道数和中间层通道数。in_planes 是输入通道数,如果未指定则默认为 outer_nc。dropout 控制是否在模型中添加 Dropout 层。submodule 是嵌套的子模块,通常是一个更深层的 UNetSkipConnectionBlock。outermost 和 innermost 用于区分当前块是否是最外层或最内层。
深度学习:DCGAN CDGAN(Deep Convolutional Generative Adversarial Networks),是GAN(Generative Adversarial Networks)的一种变体,它特别使用了卷积神经网络(CNNs)作为生成器和判别器的构建模块。DCGAN使用全卷积网络结构代替传统的池化层和全连接层。在生成器中采用转置卷积(也称为分数步长卷积或反卷积)来逐步增加图像的空间维度。在判别器中使用卷积层来逐步减少空间维度并提取特征。
深度学习:GAN图像生成 生成对抗网络(GAN)的基本原理基于两个神经网络之间的博弈过程:一个生成器(Generator, G)和一个判别器(Discriminator, D)。输入-输出图像对指的是两个相关的图像,其中一个图像是另一个图像经过某种变换后的结果。与cGAN相比,CycleGAN不依赖于明确的条件向量,而是通过两个相互对立的映射函数来实现双向的图像转换,并且通过循环一致性损失来确保转换的质量和可逆性。GAN 框架非常灵活,可以应用于图像、文本、音频等多种类型的数据,并且能够生成多样化的样本。
跟李沐学AI:自注意力和位置编码 自注意力机制中,query、key、value均来自同一输入。卷积神经网络和自注意力都拥有并行计算的优势。自注意力的最大路径长度最短,但是因为其计算复杂度是关于序列长度的二次方,所以在很长的序列中计算会非常慢。为了使用序列的顺序信息,可以通过在输入表示中添加位置编码,来注入绝对或者相对的位置嘻信息。
跟李沐学AI:注意力机制、注意力分数 心理学认为人通过随意线索和不随意线索选择注意点。注意力机制中通过query(随意线索)和key(不随意线索)来偏向性地选择输入。一般可写作:。其中是注意力权重。注意力分数是query和key的相似度,注意力权重是注意力分数softmax后的结果注意力分数分为加性模型和点积模型。
跟李沐学AI:序列到序列seq2seq Seq2Seq从一个句子生成另外一个句子。Seq2Seq的编码器和解码器都是RNN。将编码器最后时间的hidden state作为解码器的初始hidden stae来完成信息传递。seq2seq常用BLEU来衡量生成序列的好坏。
跟李沐学AI:长短期记忆网络LSTM 如果遗忘门始终为1且输入门始终为0, 则过去的记忆元Ct−1 将随时间被保存并传递到当前时间步。只要输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分, 而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。它们由三个具有sigmoid激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。因此,这三个门的值都在(0,1)的范围内。LSTM中,输入门和遗忘门类似GRU中控制输入或遗忘的机制。的新数据,遗忘门用于控制保留多少过去的记忆元。LSTM引入输入门、忘记门和输出门。
跟李沐学AI:门控循环单元GRU、 GRU是一种在循环神经网络中使用的单元结构。它旨在解决传统RNN在网络处理长序列数据时遇到的梯度消失或梯度爆炸问题。GRU通过引入门控机制来控制信息的流动,从而使得网络能够更好地学习长期依赖性。
跟李沐学AI:循环神经网络RNN 在RNN中,梯度消失的问题尤为显著,因为它们的权重需要通过时间进行反向传播。在每一时间步中,梯度是通过链式法则计算的,这意味着当前时间步的梯度是由前一时间步的梯度乘以前一时间步的权重矩阵得到的。具体来说,当计算出的梯度超过某个预定义的阈值时,可以按比例缩小梯度的值,使得它们不会过于庞大,从而避免梯度爆炸。其中:ht是当前时间步t的隐状态,xt是当前时间步的输入,Wxh和Whh分别是从输入到隐状态和从隐状态到隐状态的权重矩阵,b是偏置项,f(⋅)是激活函数,例如tanh或ReLU等。
跟李沐学AI:语言模型 假设在给定长度为T的文本序列中的词元依次为可被人做文本序列在时间步t处的观测或标签。在给定这样的文本序列是,语言模型的目标是估计序列的联合概率。一个理想的与语言模型能够在一次抽取一个词元的情况下基于模型本身生成自然文本。
跟李沐学AI:序列模型 时序模型中,当前数据与之前观测到的数据相关。自回归模型使用自身过去数据预测未来数据。马尔可夫模型假设当前数据之和最近少数数据相关从而简化模型。潜变量模型使用潜变量来概括历史信息。
跟李沐学AI:语义分割 语义分割将图片中的每个像素分类到对应的类别。语义分割重点关注于如何将图像分割成属于不同语义类别的区域。语义分割可以识别并理解图像中每一个像素的内容:其语义区域的标注和预测是像素级的。