• [技术干货] 深度学习导论
    一、深度学习的起源深度学习的发展历程可以追溯到1943年,当时心理学家麦卡洛克和数学逻辑学家皮茨发表论文《神经活动中内在思想的逻辑演算》,提出了MP模型,这标志着神经网络的开端。在随后的几十年中,深度学习经历了多次起伏。如下图所示1958年,Rosenblatt发明了感知器(perceptron)算法,该方法被证明为能够收敛,理论与实践效果引起第一次神经网络的浪潮。然而,Minsky证明了单层感知器只能处理线性分类问题,这导致了第一次低潮。1962年,感知器算法被证明为能够收敛,这再次引发了神经网络的热潮。然而,Minsky证明了单层感知器只能处理线性分类问题,这导致了第二次低潮。1980年代,多层感知器解决了单层感知器的问题,但是对其网络参数的计算问题却成为了一个难点。直到1986年反向传播算法的提出解决了对少数层神经网络训练的问题,这个时候也就迎来了第二次高潮。第三次发展浪潮始于2006年,以人工神经网络(Artificial Neural Network)的扩展和应用为基础,这次浪潮的出现标志着深度学习时代的来临。这一阶段的研究主要集中在如何提高深度神经网络的性能和泛化能力上。SVM作为一种经典的机器学习算法,在分类问题上表现出了良好的性能。随着深度学习的不断发展,其应用领域也在不断扩大。深度学习已经成为了许多领域的重要工具,例如自然语言处理、计算机视觉、语音识别和医疗诊断等。尽管深度学习还面临着一些挑战和问题,但随着技术的不断进步和应用场景的不断拓展,相信深度学习将继续发挥重要作用并取得更多突破。二、当代深度学习大事件2.1 在围棋方面战胜人类欧洲围棋冠军樊麾在2015年10月与 AlphaGo 进行了一场对弈,这是电脑首次战胜围棋职业棋手。AlphaGo 又在 2016 年与围棋世界冠军李世石的对弈中以 4:1 的总比分获胜2016年末2017年初,在中国棋类网站上,以Master为注册账号与中日韩你数十位围棋高手进行快棋对决,连续60局无一败绩2.2 ChatGPTChatGPT是一种基于自然语言处理技术的聊天机器人程序,它由美国OpenAI公司研发,于2022年11月30日发布。ChatGPT通过在大量的文本数据上进行训练,可以自动生成语言文本、回答问题、翻译语言等等,具备强大的自然语言处理能力。ChatGPT的厉害之处在于它能够像人类一样与用户进行交流。相较于传统AI助手,ChatGPT的回答要棒很多,尤其在一些主观的问题上,你去问它,有时候回答的比人还要好。2.3 无人驾驶2005年斯坦福无人车在DARPA比赛中夺冠(在沙漠里自动形式了131英里) 现在部分自动驾驶汽车已开始商用 三、基础模型3.1 多层感知机(MLP)多层感知机(MLP)是一种前馈人工神经网络,也被称为多层感知器。它是一个多层的结构,每一层都由多个神经元组成,前一层的输出作为下一层的输入。MLP可以用于分类、回归、预测等任务,并能够解决非线性问题,如图像识别、自然语言处理等。MLP结构简单、易于实现,因此在机器学习和人工智能领域被广泛应用。MLP至少有三层人工神经元,包括输入层、隐藏层和输出层。输入层由简单的输入人工神经元构成,每个输入神经元至少连接一个隐藏层的人工神经元。隐藏层表示潜在的变量,其输入和输出都不会出现在训练集中。在MLP中,层与层之间是全连接的,即每一层的每一个神经元都与下一层的每一个神经元相连。MLP的训练过程包括前向传播和误差反向传播两个阶段。在前向传播阶段,输入层的数值被逐层传递至输出层,每层神经元会对上一层的输入进行加权求和,并通过激活函数进行非线性变换。在误差反向传播阶段,误差从输出层传递至输入层,并按照权重进行分配,根据分配的误差来更新权重。这个过程反复迭代,直到损失函数的值达到最小。多层感知机是一种人工神经网络,通过多层神经元的相互作用和信息的逐层传递,实现各种复杂的计算和分类任务。3.2 卷积神经网络(CNN)卷积神经网络(Convolutional Neural Network,CNN)是一种特殊的神经网络,主要用于处理具有类似网格结构的数据,例如图像、语音信号等。CNN通过采用局部连接和共享权重的策略,降低了权重的数量,减少了参数的冗余,并能够自动提取输入数据的局部特征。CNN主要由输入层、卷积层、池化层、全连接层等部分组成。卷积层是CNN的核心部分,它们通过卷积运算对输入数据进行逐点乘积累加的操作,从而提取出输入数据中的特征。池化层则用于降低数据的维度,减少计算量和过拟合,同时保留关键信息。全连接层则用于将提取的特征组合起来,进行最终的分类或回归任务。CNN的训练方法主要包括前向传播、反向传播和梯度下降等算法。在前向传播阶段,输入数据通过卷积层和池化层的处理,逐步提取出特征并生成输出。在反向传播阶段,根据输出与真实值之间的误差,通过梯度下降算法更新权重和偏置项,逐步减小误差并提高模型的准确率。卷积神经网络在许多领域都取得了显著的成果,例如图像分类、目标检测、人脸识别、自然语言处理等。由于其优秀的特征提取能力和强大的泛化能力,CNN已经成为深度学习领域中应用最广泛的神经网络之一。3.3 反馈神经网络(RNN)反馈神经网络(Recurrent Neural Network,RNN)是一种特殊的神经网络,它具有反馈连接,能够将前一时刻的输出作为当前时刻的输入。这种结构使得RNN能够处理序列数据,并具有记忆性,能够捕捉序列中的长期依赖关系。RNN主要由输入层、隐藏层和输出层组成。输入层负责接收外部输入的数据,隐藏层通过与前一时刻的输出进行连接,将历史信息传递给当前时刻,使得RNN能够利用历史信息来影响当前的输出。输出层则根据隐藏层的输出生成最终的输出结果。RNN的训练方法主要包括前向传播、反向传播和递归神经网络等算法。在前向传播阶段,输入数据通过RNN的各层处理,逐步生成输出结果。在反向传播阶段,根据输出与真实值之间的误差,通过梯度下降算法更新权重和偏置项,逐步减小误差并提高模型的准确率。由于RNN具有处理序列数据的能力,它在许多领域都有广泛的应用,例如语音识别、自然语言处理、时间序列预测等。然而,RNN也存在一些问题,例如梯度消失和长期依赖关系的学习困难等。为了解决这些问题,研究者们提出了许多改进的RNN模型,如长短时记忆网络(LSTM)、门控循环单元(GRU)等。3.4 转换器(Transformer)转换器(Transformer)是一种基于自注意力机制的神经网络模型,最初被提出用于解决机器翻译的序列到序列问题。由于其优秀的性能和广泛的应用场景,Transformer已经成为了深度学习领域中的一种重要模型。与传统的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformer不依赖于序列数据的时间顺序,而是通过自注意力机制来捕捉输入序列中的长距离依赖关系。这种机制使得Transformer能够并行地处理输入数据,提高了训练速度和模型的表达能力。Transformer主要由输入编码器和输出解码器组成,这些编码器和解码器之间由若干个自注意力层连接。这些层使用注意力机制来计算输入和输出之间的关系,从而允许Transformer模型并行地处理序列。在机器翻译任务中,输入编码器将源语言句子编码为固定长度的向量,输出解码器则将这些向量解码为目标语言的句子。除了在自然语言处理领域的应用外,Transformer也被广泛应用于计算机视觉和语音处理等领域。例如,Vision Transformer(ViT)使用Transformer进行图像分类,DERT使用Transformer进行物体检测和分割。总的来说,转换器(Transformer)是一种基于自注意力机制的神经网络模型,它通过捕捉输入数据中的长距离依赖关系,实现了高效的序列到序列处理。顺带介绍一下,ChatGPT就是一种基于 Transformer 的自然语言处理技术,它使用大规模的语料库和预训练技术进行训练,以提高模型的语言理解和生成能力。具体来说,ChatGPT使用了一种基于Transformer架构的模型,其中包括编码器和解码器两部分。编码器将输入文本转换为高维向量空间中的表示形式,解码器则将这些向量转换为新的词汇序列。在训练过程中,ChatGPT通过不断地学习和调整模型参数,实现了对自然语言文本的理解、生成和对话等任务。与传统的循环神经网络(RNN)和卷积神经网络(CNN)相比,Transformer不需要考虑输入序列的顺序,因此可以并行处理输入序列,提高了训练速度和模型的表达能力。同时,ChatGPT还采用了大量的文本数据进行训练,并将其转化为高维向量空间中的表示形式,从而实现对语言文本的表征和预测。ChatGPT基于Transformer的自然语言处理技术,通过大规模的语料库和预训练技术进行训练,实现了高效的自然语言处理任务。3.5 小结现代的深度学习模型通常是由多种基础模型组合而成的。这些基础模型提供了强大的特征表示和学习能力,可以用于解决各种复杂的任务。例如,生成式对话系统通常会结合多层感知机(MLP)和转换器(Transformer)进行构建。MLP可以用于提取输入对话的语义特征,而Transformer则可以用于生成高质量的回复。通过将这两种模型结合使用,可以构建出高性能的生成式对话系统。再比如,计算机视觉领域中的目标检测和图像分类任务,通常会结合卷积神经网络(CNN)和反馈神经网络(RNN)进行实现。CNN可以用于提取图像中的特征,而RNN则可以用于处理序列数据,如文本描述或时间序列数据等。通过将这两种模型结合使用,可以实现高性能的目标检测和图像分类任务。此外,现代深度学习模型还经常使用集成学习、迁移学习等技术,以进一步提高模型的性能和泛化能力。这些技术可以通过将多个基础模型组合在一起,形成一个更加复杂的模型结构,以适应不同任务和场景的需求。四、典型应用2006年深度学习在学术界受到了广泛关注,但在企业界的应用相对较少。随着技术的不断发展和进步,深度学习逐渐被应用于企业界,并取得了显著的成功和商业价值。从2012年开始,深度学习在企业界的应用开始加速发展。许多大型科技公司开始将深度学习应用于语音识别、图像分类、自然语言处理等领域,并取得了突破性的进展。这些成功的应用案例进一步推动了深度学习在企业界的发展,越来越多的企业开始投入资源进行深度学习的研究和应用。深度学习的用途非常广泛,如下图4.1 物体分类4.1.1 一般物体分类CIFAR和ILSVRC2012等数据集是计算机视觉领域中常用的数据集,用于训练各种图像分类和识别模型。这些数据集具有各自的特点和挑战,被广泛应用于深度学习和计算机视觉算法的研究和开发。CIFAR数据集由Alex Krizhevsky、Vinod Nair和Geoffrey Hinton等人收集而来,分为CIFAR-10和CIFAR-100两个版本。CIFAR-10包含10个类别的60000张32x32彩色图像,其中50000张用于训练,10000张用于测试。CIFAR-100包含100个类别的60000张32x32彩色图像,将图片分得更细,对神经网络图像识别是更大的挑战了。这些类别中的图像示例包括飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车等。ILSVRC2012是ImageNet数据集的一部分,拥有1000个类别,涵盖了各种不同的物体和场景。该数据集包含超过120万张训练图像和5万张测试图像,每张图像标记有相应的类别标签。由于该数据集规模庞大,需要使用更复杂的模型和算法来进行训练和分类。4.1.2 特定物体分类上面介绍的两个数据集,在学术界用的比较多。而真正在业界广泛遇到的任务,还是特定物体的分类。比如人脸验证,狗脸,或者鸟类,或者各种车,如下图人脸验证它的定义是给你两张图片,让你去判断是否是同一个人。深度学习模型和准确率如下图猪脸识别既然人脸可以识别,那自然动物脸也能识别!下图是2017年京东举办的“猪脸识别”比赛,在中美两地同时举行,冠军奖30万牛脸识别这个是新华网的一则新闻。11月26日,在广西天等县驮堪乡,保险公司工作人员为牛进行面部识别,准备办理保险。近年来,中国人寿在广西天等县通过“牛脸识别”技术为农户养殖的牛上保险,消除群众养牛的后顾之忧,助力发展壮大养牛产业。该技术通过牛的面部信息采集快速创建3D特征数据库,建立牛的身份识别管理系统,确保承保保标的真实性、唯一性、大大简化承保验标和理赔审核流程。4.2 物体检测4.2.1 一般物体检测物体检测比上面提到的这个物体识别要复杂一点,因为它不仅要识别出图上有猫、有狗、有鸭子,它还要判断出它们到底在哪,并用一个矩形标识出它们的位置:物体(左上角x坐标,左上角y坐标,宽度,高度)4.2.2 特定物体检测做自动驾驶算法需要检测前面是否有人,识别车道线、指示线、指示标、交通信号灯等等现在很多深度学习在医疗领域应用的特别广泛,比如用来识别病人的某个部位有没有肿瘤现在的手机都可以拍照,需要在拍照时,自动识别人脸,然后去做美颜,去去除红眼等检测肺癌在2016年的比赛中,美国Enlitic公司开发的基于深度学习的肺癌检测系统在技术上取得了重大突破。该系统利用深度卷积神经网络等技术对CT扫描图像进行自动分析和检测,能够快速准确地识别出肺部结节等肺癌相关病变。相比传统的方法,该系统的检测精度更高,大大提高了肺癌诊断的准确性和效率。语音识别将声波直接转化成文字利用神经网络预测股票投资回报率现在已经有很多公司在做这个了,通过机器预测股票今天买明天有百分多少概率赚钱,如果赚钱几率大就进行投资,这个现在叫量化交易利用新闻分析投资市场情绪现在有很多财经或者股票相关的论坛,你如果能有一定的爬虫功底,可以采集这些数据,通过深度学习的办法进行分析,就可以获得当前市场上投资者的情绪。蛋白质结构预测这个是谷歌推出的,AlphaFold 的第二代,用来做蛋白质结构预测的天气预报华为盘古大模型,通过对天气预报的历史数据进行学习,在中长期气象预报精度上首次超过传统数值方法,速度提升10000倍以上图像风格转换通过提供一张风格图片,AI就能把原图和这张风格图片相结合,生成你想要的图片图像生成通过文字描述,自动生成图片(即使这种图片在自然界不存在,深度学习的模型也能给你创造出来)旋律生成你只要给定前面一部分旋律,AI就能自动补全后半部分。demo地址为:cid:link_1歌声合成初音未来在2007年8月31日发布,声音库来自日本动漫声优藤田咲。代言和授权的产品就有红米Note4X,网易游戏新作《初音速》及盛大手游《神无月》古诗生成这是清华大学开发的一个古诗生成器,可以生成五言绝句、七言绝句、藏头诗等等。经过多轮迭代,现在不仅可以生成唐诗,还能生成宋词。试用地址为:cid:link_3五、对抗攻击5.1 深度学习的鲁棒性差鲁棒性是控制科学中的一个名词,是英文robust(强健的,精力充沛的,粗鲁的)的音译,也被称为强健性或者抗干扰性。它是指在异常和危险情况下系统生存的能力,或者说系统在面对各种异常情况时仍能维持其正常功能的能力。举个例子,使用ResNet训练完的深度学习算法,识别某张图片是袋鼠或者树懒的准确率已经达到99%以上了。这时候,我们在原图上增加一个0.008的随机噪声,该变这张图,虽然在人看来两张图片相差无几,但是AI却非常自信的判断错了(AI将袋鼠识别为飞机,把树懒图判断成防弹背心,并且置信率居然都接近100%)对图片进行改变称为 “对抗攻击”(刻意地对输入进行扰动使得深度学习输出错误预测结果)5.2 针对深度学习的可见光“隐身衣”通过上面这个案例,我们发现,对图片加上一个随机噪声就能让深入学习算法检测出错,因此我们精心设计如下几套衣服,来测试是否能对深度学习检测算法“隐身”YOLOv 是You Only Look Once version 的缩写,是一种目标检测算法。在测试视频中可以看到,人穿上了我们精心设计的衣服后,就无法被人体检测器识别出来了5.3 针对深度学习的红外“隐身衣”既然上面提到了能对深度学习的可见光“隐身”,那按道理我们也能对深度学习的红外相机“隐身”红外相机在呈相时,只有黑白没有彩色的因此我们就设计了这么两套看起来有点像二维码的衣服,来欺骗红外相机。我们设计了如下4套衣服气凝胶的导热系数极低,红外相机是通过热量检测来判断的。因此我们就能在黑色的地方贴上气凝胶,这样热量就出不来了通过实验得出以下结论不穿和随机帖气凝胶,都能被深度学习检测出来用气凝胶做了一件衣服,把人全盖住了,还是能被深度学习检测出来只有我们精心设计的那件(即下图的A)才能躲过检测5.4 针对深度学习的红外隐身板如果你觉得上面这件衣服太丑了,还可以在胸口放一块板子,这个板子上面放了一些小灯泡(位置是被精心设计出来的,随机放的没用)中间的人拿的是我们这个板子,可以看到就没被深度学习算法给检测出来六、脑启发的模型6.1 深度学习面临的挑战效果差:有时分割的好,有时分割的差效率低:训练一个gpt3,需要花费1200万美元可解释性差:只有输入和输出,不知道里面发生了啥鲁棒性低:原图加个随机微小的噪声就会导致识别出错6.2 脑启发的模型是一个重要方向既然深度学习还有这么多问题,那么如何克服这些问题呢?我们的想法是:进一步借鉴脑科学的知识,提高人工神经网络的效果和效率深度学习的发展与脑启发的发展是密切相关的,如下图神经元 ——> MP单元、感知机简单/复杂细胞 ——> BP算法/卷积神经网络、大数据+大算力皮层脑电、双光子、功能性核磁 ——>(这部分还没被应用到深度学习)6.3 脑中存在大量的反馈神经科学家发现,大脑中存在大量反馈连接。那么如何去建模这些连接?它们又能带来什么优点呢?在2015年之前,人们做视觉都觉得不会用到这些反馈连接,因为当时觉得反馈连接主要是用来做动态任务会比较好的。6.3.1 有层内反馈的卷积神经网络但是研究发现,大脑的视觉皮层中确实存在着大量的反馈神经。脑既然这么设计,肯定都是有用的。后面就根据这个,设计了一个有层内反馈的卷积神经网络6.3.2 自上而下反馈的卷积神经网络神经元之间具有一些不同区域的自上而下的反馈经过实验发现,这种神经网络,在图像分割方面做的非常的好,放大可以看到细节上,比原先的 Mask R-CNN 要做的更加细致6.3.3 同时有两种反馈的卷积神经网络我们构造了一个既有层内反馈,又有自上而下反馈,并且随着时间推移一步步展开的模型Bottom-up:自下而上Top-down:自上而下Lateral:随着时间异步展开这种算法在声音分离上做的非常的好声音分离:分离不同人的声音音乐分离:分离人声和背景音乐6.3.4 皮层-丘脑-皮层模型这是我们发现在高级的哺乳类动物中,丘脑在多模态融合方面发挥着一个很重要的作用。信息会从皮层到丘脑,然后丘脑在处理后再发回皮层。下面这个是啮齿类动物,皮层-丘脑-皮层,信息通路的示意图通过模仿 皮层-丘脑-皮层连接,实现了 皮层-丘脑-皮层模型这是一个视觉辅助的语音分离效果展示,这里不仅识别了人的声音,还用上了人的面部信息。效果如下(你可以听到女的讲话的时候,男的声音基本就没有了)七、总结本文主要介绍了以下5点深度学习的背景基础模型:多层感知机、卷积神经网络、反馈神经网络、转换器典型应用:视觉、听觉、自然语言、医疗、自动驾驶、娱乐对抗攻击:隐身衣、隐身板脑启发的模型:同层反馈,自上而下的反馈为方便大家学习和理解,我将他们制作成一个“思维导图”本文参与华为云社区【内容共创】活动第25期。 任务3:深度学习导论及行业应用 2023CANN训练营第二季
  • [问题求助] 云平台第一次用,求助怎么导入transformers库啊?
    --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-747b7b779074> in <module>() 1 import os 2 import torch ----> 3 from transformers import BertTokenizer, BertForSequenceClassification, AdamW, BertModel 4 from sklearn.model_selection import train_test_split 5 from keras.utils import pad_sequences ModuleNotFoundError: No module named 'transformers'我在terminal里pip下载了,还是报错
  • [问题求助] 【求助 | YOLOv7】Modelarts上用pytorch训练YOLOv7报错CUDNN_STATUS_NOT_INITIALIZED
    问题基本如题使用的具体规格是pytorch1.8-cuda10.2-cudnn7-ubuntu18.04,GPU等情况是:GPU: 1*T4(16GB)|CPU: 8核 32GB,在配置好了相关数据和文件之后,训练开始阶段报错“RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED”。我猜想应该是和cuDNN的安装和版本适配有关,但实在是不清楚具体该怎么在Modelarts上完成配置,各位请不吝赐教QvQ
  • [问题求助] “上海计算生物学大赛”靶标数据
    “上海计算生物学大赛”中所提供的数据只有化合物相关,请问这些化合物对应的靶标数据都是已知的吗?如果是存在已知靶标的,有无指定的搜索渠道?
  • [常见问题汇总帖] presenter如何打开多路展示?具体怎么改?
    presenter如何打开多路展示?具体要怎么改?比如samples/cplusplus/level3_application/1_cv/detect_and_classify项目中,两路输入,怎么同时把这两路结果输出显示到presenter上?
  • [教程] 基于MobilenetV2的猫狗识别APP应用部署
    第1章 系统实现1.1  环境准备使用Anaconda作为Python虚拟环境的管理。去Anaconda官网自行下载,一路Next即可。安装完毕后,在虚拟环境中下载python版本,然后验证python版本是否安装成功。如下图所示   打开MindSpore官网MindSpore安装指南,选择conda命令以及相应环境获取安装命令,安装完成后根据查验指令查看MindSpore版本。如下图所示。1.2  数据集预处理   将工作目录切换到代码所在路径下,将下载的数据集解压,执行收集处理数据集脚本preprocessing_dataset.py,对不符合条件的图片进行删除,筛选尺寸符合要求的图片。运行结果如上图所示,将制定目录下的数据集解压完成后删除不符合条件的图片,然后将剩余图片划分成训练集和测试集,将最后的数据集保存至制定目录下。1.3  模型训练     执行训练脚本,开始生成模型文件,用于图像处理的依赖包如OpenCV-python、matplotlib等,会自动安装,用于图像处理,脚本会在正式训练前从爆弹6张图片载入当前模型文件,对猫狗进行判别,如上图所示,部分猫狗明确数据图预测错误,点击图片关闭图片,使脚本正式进入微调训练。    微调训练阶段,先对数据进行特征采集,然后进入迭代训练,训练时模拟模型的精确进行测试,当训练的模型精度超过当前模型时,就会将图模型抑制下来,如下图所示。训练是不断重复的过程,通过循环批数据的输入,进行可以计算,逼近损失/最小的那个模型。每一次训练中打印相关的评价指标,随着迭代数的增加,增加平均损失函数(avg loss)逐步降低,精确(acc)逐步提高。可以看到最好的训练精度在第6个epoch时,准确率达到99.0%,训练总共花了大概28分钟,最后将训练好的模型导出到对应文件夹目录下。训练完成,脚本会再调用之前的图片对微调后的模型进行验证,如下图所示,所有图片分类正确,说明模型精确满足要求,点击图片关闭图片,使脚本继续运行完成文件转换。1.4  手机端推理和部署因为直接训练出的midir模型并不能直接部署到手机上,所以我们需要进行模型转换,利用新版的converter模型转换工具将训练好导出的Mobilenetv2模型转换为pet.ms。结果如下图所示,成功转换。然后使用Notepad++编写所需要的json文件,将json文件与pet.ms一同导入手机中。                       上图为编写的json文件                             上图为在手机的文件管理中查看导入的两个文件第2章 测试分析首先利用MindSpore Vision拍照进行识别。          然后利用Mindspore vision对输入的图片进行预测,图片包括一些正常的图片、一些表情包、卡通风格的图片等。          和原通用功能相比,本模型具有较好的识别能力,可以针对不同场景,以较高正确率识别出小猫和小狗。
  • [问题求助] 有大佬知道人头识别的推荐算法和模型吗?
    论坛里有大佬知道人头识别的推荐算法和模型吗?   我想识别视频里出现的人,圈出人头部分。人脸识别OpenCV有现成的模型,但是精度不高,主要是视频里人脸也是各种形态。 如果能直接识别人头就好了。 主要是用于景区里的人流量的判断,估算。
  • ATC 模型转换不支持input_format:RGB888_U8
    toolkit版本:Ascend-cann-toolkit_6.10.t01spc030b070_linux.x86_64.run转换命令:atc  --model=./yolov3.prototxt --weight=./yolov3.caffemodel --framework=0 --output=yolov3 --soc_version=SS928V100  --insert_op_conf=./aipp_bgr.cfgaipp配置文件如下图:报错信息:
  • [问题求助] 如何在Ascend310上使用Mindspore lite进行yolov5的C++推理
    如何在Ascend310上使用Mindspore lite进行yolov5的C++推理
  • [其他] 浅谈深度学习
    前言当今计算机科技领域中,深度学习是最具有影响力的技术之一。这篇文章将介绍深度学习是什么,它的应用领域,以及为什么它如此重要。简介深度学习是一种机器学习技术,它使用大量人工神经网络来模拟人类大脑的工作方式。这些神经网络可以自动从数据中学习模式,并根据这些模式进行预测和分类。深度学习技术已经在多个领域取得了巨大的成功,包括图像识别、语音识别、自然语言处理和机器人控制等。工作原 理深度学习的工作原理如下:首先,它会收集大量数据,并将其存储在训练集中。然后,深度学习模型会对训练集中的数据进行特征提取,以便更好地适应不同的数据类型。最后,深度学习模型会根据训练集的数据特征,对新的数据进行分类或预测。应用在图像识别领域,深度学习技术可以自动识别图像中的物体、人脸和交通信号等。这是因为深度学习模型可以从图像中提取特征,例如颜色、纹理和形状等。然后,这些特征可以被用于识别物体或人脸等。在语音识别领域,深度学习技术可以自动识别语音中的词语和句子。这是因为深度学习模型可以从语音信号中提取特征,例如音高、音强和时序等。然后,这些特征可以被用于识别语音中的单词和句子。在自然语言处理领域,深度学习技术可以自动理解语言的结构和含义。这是因为深度学习模型可以从文本中提取特征,例如词汇、语法结构和语义等。然后,这些特征可以被用于理解文本的含义和结构。在机器人控制领域,深度学习技术可以帮助机器人识别和理解环境,并进行自主决策。这是因为深度学习模型可以从图像和语音信号中提取特征,以便识别和理解环境。然后,这些特征可以被用于控制机器人的运动和操作。深度学习技术的成功离不开它的底层算法。深度学习的底层算法主要是神经网络。神经网络是由多个神经元组成的复杂数学模型,它可以自动从数据中学习模式。每个神经元都可以接收多个输入,并通过非线性函数将它们转换为输出。多个神经元的组合可以产生复杂的输出,从而实现多种功能。神经网络的输入和输出通常是数字,但在某些情况下,它们也可以表示向量或矩阵。深度学习模型通常由多个层组成,每层都会提取出不同层次的特征。最外层的层通常负责输出预测结果,而内部的层则负责提取更高层次的特征。深度学习模型的训练通常需要大量的数据和计算资源,但一旦训练完成,它们就可以用于预测和处理各种类型的数据。深度学习技术已经广泛应用于各个领域,例如计算机视觉、自然语言处理、语音识别、机器人控制等。在这些应用中,深度学习模型可以自动从数据中学习模式,并根据这些模式进行预测和分类。由于其高效性和准确性,深度学习技术正在成为越来越多领域的主流技术。然而,深度学习技术也存在一些挑战和问题。例如,深度学习模型的训练需要大量的数据和计算资源,而且通常需要大量的时间和人力来完成。此外,深度学习模型的精度和稳定性也需要更多的研究和改进。总结总之,深度学习技术是一种非常重要和有影响力的机器学习技术。它已经在多个领域取得了巨大的成功,并已经成为人们日常生活中不可或缺的一部分。随着技术的不断发展,深度学习技术将会在更多的领域得到应用,并产生更大的影响。
  • [其他] 浅谈强化学习基本模型和原理
    强化学习是从动物学习、参数扰动自适应控制等理论发展而来,其基本原理是:如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。Agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。强化学习强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,而且影响环境下一时刻的状态及最终的强化值。强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是Agent对所产生动作的好坏作一种评价(通常为标量信号),而不是告诉Agent如何去产生正确的动作。由于外部环境提供了很少的信息,Agent必须靠自身的经历进行学习。通过这种方式,Agent在行动一一评价的环境中获得知识,改进行动方案以适应环境。强化学习系统学习的目标是动态地调整参数,以达到强化信号最大。若已知r/A梯度信息,则可直接可以使用监督学习算法。因为强化信号r与Agent产生的动作A没有明确的函数形式描述,所以梯度信息r/A无法得到。因此,在强化学习系统中,需要某种随机单元,使用这种随机单元,Agent在可能动作空间中进行搜索并发现正确的动作。
  • [其他] 浅谈深度学习模型压缩
    常见的模型压缩方法有以下几种:    模型蒸馏 Distillation,使用大模型的学到的知识训练小模型,从而让小模型具有大模型的泛化能力    量化 Quantization,降低大模型的精度,减小模型    剪枝 Pruning,去掉模型中作用比较小的连接    参数共享,共享网络中部分参数,降低模型参数数量    teacher-student模型    teacher-student模型是迁移学习的一种,迁移学习也就是将一个模型的性能迁移到另一个模型上,对于教师网络往往是一个更加复杂的网络,具有非常好的性能和泛化能力,可以用这个网络来作为一个soft target来指导另外一个更加简单的学生网络来学习,使得更加简单、参数运算量更少的学生模型也能够具有和教师网络相近的性能   知识蒸馏作为前端压缩比较热门的一种压缩技术,其核心思想是通过学习的方法,将庞大复杂的模型迁移到一个精简的小模型上,尽量保持原有模型的特征和精度。这两个模型就类似于老师和学生两个角色,大的模型是老师,精简的模型是学生,通过一定的学习方法尽量继承大模型的特征,而这些学习方法就是研究人员正在研究的蒸馏算法。2014 年,Jimmy 等人认为 Softmax 层含有更为丰富的监督信息,可以作为网络中知识的有效概括。2016 年,Luo 等人提出可以使用Softmax 前一层的输出来指导小模型的训练,可以取得很好的分类效果,其精度甚至超过大模型。但蒸馏因为指导训练的方法较难确定,一直没有得到广泛应用。后端压缩中常用的模型压缩方法是参数量化,其核心思想是从权重中归纳出若干“代表”,由这些“代表”来表示某一类权重,将这些代表储存在码本(Codebook)当中,原始权重矩阵只需在码本中索引所需要的代表就可以,这样会大大降低储存的开销。2014 年,Gong 等人提出将 K 均值聚类算法(K-Means clustering algorithm,K-Means)应用于模型量化,可以使模型大小和准确率之间得到很好的平衡,在比较先进的卷积神经网络(Convolutional Neural Networks, CNN)上可以实现 16-24倍的网路压缩,精度只有 1%的损失。同样基于 K-Means 的思想,Han 等人采用了标量量化的方法,令 K 值等于 4,对所有的权重进行聚类,并储存在码本当中,原始权重只记录码本的索引,这样可以使模型储存空间降低,同时针对精度损失的问题,他们借鉴了剪枝的微调思想,最后对量化后的模型进行微调,使精度有所回升。目前还有一种比较主流且集成好的量化方案就是 TensorRT,TensorRT 是由NVIDIA 公司开发的一个高性能加速工具包,它可以实现将原来 32 位浮点类型的卷积操作替换成 16 位浮点类型的卷积操作或 8 位整数类型的卷积操作,使计算量大大减小,从而降低模型大小,提升推理速度。 后端压缩还有一项重要技术就是模型剪枝,被广泛的应用于神经网络算法的后处理当中,可以有效降低模型大小,减少参数冗余。早在 1990 年,Yann 等人就提出采用二阶导数对网络复杂性和测试误差之间做过一个平衡,通过删除不重要的权重,使模型测试效果达到最优。之后,Babak 等人的剪枝算法也证明了其思想的正确性,但是此类方法多是基于二阶梯度来判断权重的重要程度,所以压缩的程度比较小,无法实现大数量级别的压缩。
  • [其他问题] notebook训练模型,关闭终端(没关闭botebook)后,如何再次打开原终端,查看训练输出进度?
    如题,notebook训练模型,关闭终端后(没关闭botebook),如何再次打开原终端界面,查看训练输出进度?
  • [问题求助] 在Atlas200DK上运行强化学习算法
    想在Atlas200DK上运行强化学习算法,但之前没这么用过,请问有什么技术支持或者开发案例可供入门吗?
  • [其他] 浅谈生成对抗网络
    生成对抗网络深度学习在很多领域的都取得了突破性进展,但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的工作基本都是判别模型相关的。2014 年 Goodfellow 等人启发自博弈论中的二人零和博 弈 ,开创性地提出了生成对抗网络 (GAN)。生成对抗网络包含一个生成模型和一个判别模型。其中,生成模型负责捕捉样本数据的分布,而判别模型一般情况下是一个二分类器,判别输入是真实数据还是生成的样本。这个模型的优化过程是一个“二元极小极大博弈”问题 ,训练时固定其中一方(判别网络或生成网络),更新另一个模型的参数,交替迭代,最终,生成模型能够估测出样本数据的分布。生成对抗网络的出现对无监督学习,图片生成的研究起到极大的促进作用。生成对抗网络已经从最初的图片生成,被拓展到计算机视觉的各个领域,如图像分割、视频预测、风格迁移等。深度卷积生成对抗网络深度卷积生成网络(DCGAN)将卷积神经网络(CNN) [4]  引入到了生成模型和判别模型当中,使得生成性能有了质的提升,以至于后来很多工作都在该网络的基础上进行改进。该网络结构的几个设计要点为:1)将卷积网络中的池化层用相应步长的卷积层代替;2)在生成模型和判别模型中都使用了批归一化层;3)去掉了网络中的全连接层;4)在生成模型中采用Re LU激活函数;5)在判别模型中采用Leaky Re LU激活函数。其生成模型结构图如图3所示。深度卷积生成网络相对于一般的生成对抗网络而言具有更强大的生成能力,同时训练起来更加稳定、容易,生成样本更加多样化等优点。深度卷积生成网络生成的图片足以以假乱真,但缺点是生成图像分辨率比较低(64 * 64),这也是现阶段各种生成对抗网络及其变体所具有的共同问题,因此,如何生成高质量、高分辨率图像将会是一个热门研究方向。半监督生成对抗网络半监督生成对抗网络(SGAN)的判别模型不仅仅判断图像的来源(由 G 生成或者来自训练数据)同时判断图像的类别,这样使得判别模型具有更强的判别能力,其网络结构图。另一方面,输入网络的类别信息也在一定程度上提高了生成模型生成图片的质量,因此半监督生成抗网络的性能要比普通的生成对抗网络的性能略好一些。生成对抗网络的应用图像分割图像分割是指将图像的中的内容根据不同的语义分割开来。绝大多数分割的方法是将图像的每个像素进行分类,这样就忽略了空间一致性这个重要信息。生成对抗网络做图像分割时,生成模型被图像像素分类的网络替换,判别模型用于判断是网络的分类产生的分割图(Class predictions)还是标准的分分割图(Ground truth)。视频预测视频预测是根据当前的几帧视频预测接下来的一帧或者多帧视频。一般常用的做法是用最小二乘回归视频帧的逐个像素值,这样做的一个问题就是生成视频帧存在动作模糊(Motion blur)。一种采用生成对抗网络的做法是,将现有视频帧改变不同尺寸 输入生成模型 G ,让 其 输 出 接 下 来 的 真 值 帧(Ground truth frame)。图6给出了生成对抗网络应用于视频预测时生成网络部分示意图。判别模型和一般生成对抗网络相同,即判断视频帧是生成的还是训练数据原有的风格迁移风格迁移是指将目标图像的风格迁移到源图像当中,使得源图像保留内容的同时具有目标图像的风格,比如将卡通人物的风格迁移到真实人脸图像使其成为卡通头像。生成对抗网络用于图像风格迁移时其特点有3个:1)将源图像输入生成网络后,生成网络输出目标图像风格的图片;2)生成图像和源图像特征相同(或者说保持内容);3)当把目标图像输入生成网络后,生成网络仍然输出目标图像(相当于单位映射)。