-
相较于MNIST和Fashion-MNIST的灰度图像,CIFAR-10数据集则由10个类的60000张32*32彩色图像组成(每个类包含6000张图像),分别有50000张训练图像和10000张测试图像。CIFAR-10是由Hinton的学生AIex Krizhevsky(AlexNet的作者)和llya Sutskever整理的一个用于识别普适物体的彩色图像数据集。一共包含10个类别的RGB彩色图片:飞机(airplane)、汽车(automobile)、鸟类(bird)、猫(cat)、鹿(deer)、狗(dog)、蛙类(frog)、马(horse)、船(ship)和卡车(truck)CIFAR-100可以看作是CIFAR-10的扩大版,CIFAR-100将类别扩大到100个类,每个类包含600张图像,分别有500张训练图像和100张测试图像。CIFAR-100的100个类被分为20个大类,每个大类又有一定数量的小类,大类和大类之间区分度较高,但小类之间有些图像具有较高的相似度,这对于分类模型来说会更具挑战性。ImageNet数据集始于2009年,是由斯坦福大学李飞飞教授主导的一个项目形成的数据集。当时李飞飞教授在CVPR2009上发表了一篇名为ImageNet:A LargeGScale Hierarchical Image Database的论文,之后就是基于ImageNet数据集的七届ILSVRC竞赛(从2010年开始),这使得ImageNet极大地推动了深度学习和计算机视觉的发展。目前ImageNet中总共有14197122张图像,分为21841个类别PASCAL VOC(The PASCAL Visual Object Classes)挑战赛是一个世界级的计算机视觉挑战赛,其全称为Pattern Analysis,Statical Modeling and Computational Learning,从2005年开始到2012年结束,PASCAL VOC最初主要用于目标检测,很多经典的目标检测网络都是在PASCAL VOC上训练出来的,如Fast RCNN系列的各种网络。后来逐渐增加了分类、分割、动作识别和人体布局等比赛。目前PASCAL VOC主要分为VOC2007和VOC2012两个版本的数据集。COCO数据集是微软在ImageNet和PASCAL VOC数据集标注的基础上产生的,主要用于图像分类、检测和分割等任务。COCO全称为Common Objects in Context,2014年微软在ECCV Workshops发表了一篇名为Microsoft COCO: Common Objects in Context的论文。论文中说明了COCO数据集以场景理解为目标,主要是从复杂的日常场景中截取,图像中的目标通过精确的分割进行位置的标定。COCO包括91个类别目标,其中有82个类别的数据量都超过了5000张。除以上这些公开的经典数据集之外,我们也可以通过数据采集和图像标注工具制作数据集。常用的图像标注工具包括Labelme、LabeIImg、Vatic、Sloth、ImageJ、CVAT、Yolo_mark、RectLabel和Labelbox等。
-
被拦截了,但很难人工修改:数据集-CV篇 cid:link_0
-
很多人在学习了神经网络和深度学习之后,早已迫不及待地要开始动手实战了。通常第一个遇到的问题就是数据。作为个人学习和实验来说,很难获得像工业界那样较高质量的贴近实际应用的大量数据集,这时一些公开集往往就成了大家通往人工智能(AI)路上的反复摩擦的对象。计算机视觉(CV)方向的经典数据集包括MNIST手写数字数据集、Fashion-MNIST数据集、CIFAR-10和CIFAR-100数据集、ILSVRC竞赛的ImageNet数据集、用于检测和分割的PASCAL VOC和COCO数据集等。而自然语言处理(NLP)方向的经典数据集包括IMDB电影评论数据集、WikiText(维基百科)数据集、Amazon reviews(亚马逊评论)和Sogou news(搜狗新闻)数据集等。MNIST(Mixed National Institute Of Standards and Technology database)数据集相信大家已经耳熟能详。可以说,每个入门深度学习的人都会使用MNIST进行实验。作为领域内最早的一个大型数据集,MNIST于1998年由YannLeCun等人设计构建。MNIST数据集包括60000个示例的训练集及10000个示例的测试集,每个手写数字的大小均为28*28。MNIST在TensorFlow中可以直接导入使用。可能是看到MNIST太"烂大街"了,德国的一家名为Zalando的时尚科技公司提供了Fashion-MNIST来作为MNIST数据集的替代数据集。Fashion-MNIST包含10种类别70000张不同时尚穿戴品的图像,整体数据在结构上与MNIST完全一致。每张图像的尺寸同样是28*28。同样在TensorFlow中可以直接导入使用。
-
PyTorch是一款可以媲美于TensorFlow的优秀深度学习计算框架,而且相比于TensorFlow在语法上更具灵活性。PyTorch原生于一款小众语言Lua,而后基于Python版本具备了强大的生命力。作为一款基于Python的深度学习计算库,PyTorch提供了高于Numpy的强大的张量计算能力和兼具灵活度和速度的深度学习研究功能。 2018年10月发布了1.0版本,然后正式走向了稳定可用阶段。在ICLR 2019提交论文中,提及TensorFlow的论文数量从2018年的228上升到了2019年的266,而提及PyTorch的论文数量从2018年的87激增到了252。这也从侧面说明PyTorch的影响力今非昔比。根据2019年各大顶会的研究人员使用情况调查来看,目前TensorFlow已经退守到工业界,学术界和各大顶会的研究人员更多地是使用PyTorch。但TensorFlow、Keras和PyTorch这3种深度学习计算框架我们都要学习,一个好的深度学习项目不能因为使用了不同的框架而使我们错过它们。
-
对于初次踏入深度学习领域的人员而言,选择哪种计算框架是一个值得思考的问题。 如果一定要选出一个框架作为你的深度学习入门工具,那么建议选择Keras,Keras具备搭建神经网络各个零部件高度集成的API,并且对新手非常友好,基于Keras进行一次快速的深度学习试验几乎是分分钟的事。 在熟练之后则不要继续停留在Keras的舒适区,继续学习其他计算框架。TensorFlow作为Google开发维护的深度学习工具,它是用C++/Python编写的,提供Python、R、Java、Go和JavaScript API。TensorFlow使用静态计算图,TensorFlow Fold库也增加了对动态图的支持。此外,从版本1.7开始,TensorFlow在动态执行方面采取了不同的步骤,并实现了可以立即评估Python代码的急切执行,而无须构建图形。TensorFlow有着非常好的社区环境支持,即可以轻易地从网上找到很多有关的使用教程、视频,在线课程和教程等。除纯粹的计算功能之外,TensorFlow还提供了TensorBoard这样的可视化性能监控工具,它可以显示计算图,绘制关于模型训练或推理执行的量化指标,并基本上可以提供调试和微调深度神经网络所需的各种信息。TensorFlow虽然很好,但是对于初学者来说并不友好,初学者用TensorFlow来搭建神经网络需要一个思维转变,总体来说,学习TensorFlow没那么容易。TensorFlow在2.0版本中做了较大的改动,如使用Eager Execution替代了Session运行机制,深度集成了Keras的网络搭建方法等。但目前工业界部署和使用较为成熟的还是1.13和1.14等版本。Keras并不能算是一个独立的框架,其本质上是一个高层神经网络API,Keras由纯Python编写而成并基于TensorFlow、Theano及CNTK后端。 所以,我们也可以直接使用TensorFlow调用Keras。Keras为支持快速实验而生,能够把想法迅速转换为结果。 Keras非常易于学习和使用。无论是初学者还是不打算进行复杂研究的高级深度学习研究员,都建议使用Keras。在TensorFlow2.0中,其网络构建深度集成了Keras的架构,在实际使用时,Keras和tf.keras并无大的差别。
-
Hinton认为,在识别图像时,人类神经元是按照一种二叉决策树的形式自上而下地进行判断来识别图像的,而CNN则是通过一层层的网络进行信息过滤和提取、集成和抽象来识别图像的,这就是CNN与人类神经元的最大区别。所以,总体来说,CNN最大的问题在于其网络内部的各神经元是平等的,没有具体的组织结构能够让CNN来识别出同一张图像内容的不同位置表示。CNN的这些缺点,正是胶囊网络要做的。2017年11月,由Sara Sabour、Nicholas Frosst和Geoffrey Hinton共同发表了一篇名为Dynamic Routing Between Capsules的论文,这篇论文提出了一种新的、不同于此前的CNN网络架构的胶囊网络结构。组成胶囊网络的基本元素是一个个的胶囊,而不是神经网络中的神经元。那胶囊又是什么呢?其实,胶囊依然是由一组神经元构成的,说到底,胶囊网络的最基本单元还是神经元,但是Hinton规定胶囊就是胶囊网络的最小单元。构成每个胶囊的这样一组神经元,它会学习检测给定区域(如一个八边形区域)图像的特定目标,输出一个向量(如一个八维向量),向量的长度代表目标存在的概率估计,而且它对姿态参数进行(如精确的位置、旋转等)定向编码(如8D空间)。如果对象有轻微的变化(如移位、旋转、改变大小等),那么胶囊将输出相同长度但方向略有不同的向量,因而胶囊追求的是等变化(Equivariance),而对应的不能察觉出这种轻微变化的CNN追求的则是不变性(Invariance)。胶囊与传统神经元的区别如下:
-
卷积神经网络在深度学习和计算机视觉应用中都有着举足轻重的地位,可以说CNN是目前深度学习的主流方法。在CNN这样普遍化的工业应用之后,我们能否更进一步,构造出性能超越CNN的网络结构?解铃还须系铃人,当年提出CNN的Geoffrey Hinton经过多年研究,在2017年11月提出了著名的胶囊网络(Capsule Nets)并在MNIST数据集识别任务上取得了迄今为止最优的成绩。在CNN中池化层是一个伟大的发明,数据经过池化层这样一个下采样过程的处理,能够缩小信息冗余,让网络处理更加有效的信息。但池化层也有缺点,如最大池化处理,丢失了数据中很多有效的信息,降低了图像的空间分辨率。最明显的例子就是CNN很难分辨出两张有着细微差别的输入图像。例如下图,CNN很难察觉出这只狗是在图像的←边还是右边。再如,CNN识别一张人脸的要素在于两只眼、一张嘴巴和一个鼻子,只要输入图像中有这些元素,CNN都会将其识别为人脸。例如下图右边的毕加索风格的人脸,CNN也会准确无误的将其识别出来,而不会在乎构成人脸的鼻子、眼之间是以怎样的一种结构来组成的。从CNN的角度来看,鼻子歪或眼睛长到嘴巴上去对于整张图像来说只是微小的变化,不会影响它对输出的判断。
-
华为云账号:CSDN-weixin 55984718课程1.3打卡:
-
前言 DevChat是一款基于自然语言处理技术的聊天机器人,集成了GPT3.5、GPT4.0、XINGHUO-2、CLAUDE-2、LLAMA-2-13B-CHAT等大模型,它可以通过自然语言对话的方式与开发者进行交流,帮助开发者更高效地完成编程任务。 现在流行的GPT、文心一言、讯飞对话机器人,都需要在编辑器之外的网页或APP另外开一个窗口,而DevChat是VSCode里的插件,可以一边写代码一边使用DevChat生成代码。 使用DevChat也有一段时间了,也越发体会到AI的好处。对比人类的大脑,在精准海量的记忆方面,AI还是有很大优势。就拿创建Vue项目来说,如果是第一次创建Vue项目,通常需要打开搜索引擎去搜索Vue官网,然后找到Document,去搜寻关于创建Vue项目的文章,最后回到我们的编辑器,按照说明去完成上述步骤。如果是第二次创建Vue项目,我们通常会翻出上次的笔记或是重复搜索引擎那套流程。 那么今天在这里给大家展示一下在VSCode里使用DevChat的便捷性,我们可以完全颠覆以往那些复杂的过程,轻轻松松喝几口咖啡的时间,DevChat就会给出我们创建Vue项目的步骤。 一、安装DevChat 由于DevChat是一个VSCode插件,我们的目标是创建Vue项目,因此我们需要事先准备好一些东西:代码编辑器VSCode、node/npm环境。 1.1、访问地址 https://meri.co/yxt 1.2、注册 进入官网后,首先进行账号注册,步骤非常简单,就是邮箱加验证码(友情提示,163邮箱也是可行的)。 注册的时候会有一封邮件告知注册成功,里面包含了一个Access Key ,记住这个Access Key等会有大用。 1.3、在VSCode里安装DevChat插件 在 VS Code 插件市场中搜索“devchat”,如下图,点击安装(或访问 Visual Studio Marketplace,点击 Install)。 1.3.1、未安装状态 未安装状态下,DevChat会显示“安装”按钮。 1.3.2、已安装状态 已安装状态下,DevChat会显示“卸载”按钮 二、设置Access Key 把 邮件里的access key,完整复制粘贴到 VS Code 中,具体方法为: 2.1. 点击左下角管理(“齿轮”图标)—命令面板(Command Palette),如下图 2.2、在弹出的命令面板中输入“devchat key”,点击如下命令 把邮箱里的Access Key输入到这里,按回车键确认。 三、使用DevChat 使用DevChat,提问”创建一个Vue3项目” DevChat会给出我们答案,如下图: 3.1、 选中机器人标签 打开DevChat窗口, 选中机器人标签,可以有GPT3.5、GPT4.0、XINGHUO-2、CLAUDE-2、LLAMA-2-13B-CHAT等大模型的选项,这里我们选择GPT-4,尝试一下当前最先进的大模型。 3.2、创建新的主题 点击[new topic],主题内容是:创建一个Vue3项目 可以创建多个Topic,Topic之间是数据隔离的(比如创建Java项目,生成跟当前主题不相关的其他代码等) 3.3、创建Vue3项目的提示内容 3.3.1、确保你已经安装了Node.js和npm 这里可以配合底部终端区域,检测node、npm是否已安装、配置环境。 3.3.2、使用npm全局安装Vue Cli 安装并配置好node、npm环境,就可以使用npm全局安装Vue Cli 命令:npm insattll -g @vue@cli 3.3.3、使用Vue Cli创建一个Vue新项目 使用Vue Cli创建一个Vue新项目,替换掉DevChat提示词里的项目名称 vue create vue_snake 3.3.4、在提示符下, 选择Vue3 在创建Vue项目中, 选择Vue3项目,按照提示一步一步完成Vue3项目创建 四、按照上述提示创建Vue3项目并打开项目 4.1、左边区域是创建好的Vue3项目 vue_snake,包含node_modules、public、src等目录,package.json、README.md、vue.config.js文件。 4.2、右侧区域展示DevChat 在Vue3项目打开之后,重复【第二节】的内容,并设置展示在右边区域。 这样我们可以一边编写项目代码, 一边可以同DevChat聊天机器人互动。 4.3、打开终端运行项目(底部区域) 输入:npm run serve 项目启动成功之后会提示: App running at: Local: http://localhost:8080/ Network: http://192.168.1.105:8080/ 4.4、在浏览器查看Vue3项目 http://localhost:8080/ 5、DevChat在项目开发过程中的应用 5.1、添加到DevChat功能 如果我们在编辑器中有部分代码有疑惑,可以右键选择Add to AddChat,然后在右侧对话框输入我们的问题。比如,编辑器中我对下面的代码有疑惑,然后询问DevChat帮我解答疑惑。 可以看到当点击Add to AddChat后,左侧输入框就多个图标内容,主要记录的是你的操作。 DevChat这种操作就特别的方便,不需要我们复制内容到Gpt、文心一言等工具里, 在VSCode里就可以边写项目代码边使用AI答疑。 总结 在当今的软件开发领域,我们经常面临一些复杂的业务需求和非业务层面的代码问题。这些问题不仅耗费我们的时间和精力,而且可能阻碍我们专注于解决真正的业务逻辑。这时,一款优秀的工具——DevChat,便能够发挥出其强大的作用。 DevChat是一款基于自然语言处理技术的聊天机器人,可以通过与开发者的对话,理解并执行开发者的编程需求。无论是解决复杂的业务问题,还是优化代码,它都能为我们提供极大的帮助。在开发过程中,冗余代码或欠优化代码是常见的问题。这些问题不仅影响代码的质量,还可能影响软件运行的效率。此时,我们可以将这些代码复制到DevChat中,让它快速给出解决方案。 更值得一提的是,DevChat无需任何科技支持即可直接体验AI的效果。在开发过程中,由于网络或其他原因,我们可能无法使用科技。而DevChat的优点在于,它无需科技支持,响应速度快,让我们随时随地都能享受到AI的便利。 综上所述,DevChat的引入不仅可以提高我们的工作效率,还能提升我们的代码质量。对于开发者来说,它是一款不可或缺的工具。推荐大家在开发中尝试使用,相信你一定会爱上它的。 ———————————————— 版权声明:本文为CSDN博主「青花锁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/s445320/article/details/134096619
-
可视化技术在深度学习的应用实验说明实验目的深度学习已经成功运用在自然语言,多媒体,计算机视觉,语音和跨媒体等相关的特定领域.然而,这一架构在"端到端"模式下,通过标注大量数据来进行误差后向传播而优化参数的学习方法被比喻为一个"黑盒子",解释性较弱.可解释性指算法要对特定任务给出清晰概括,并与人类世界中已定义的原则或原理联结.在诸如自动驾驶,医疗和金融决策等"高风险"领域,利用深度学习进行重大决策时,往往需要知晓算法所给出结果的依据。因此,可视化技术可以将深度学习模型的运行过程进行直观的展示,透明化深度学习的"黑盒子",使其具有可解释性,具有重要意义。实验内容与要求1.使用华为 ModelArts 开发平台完成 “可视化提升深度学习建模指导手册.pdf” 中的第一部分 “使用ModelArts 快速搭建深度学习模型—以花卉识别为例” , 并自行选定一张花卉图像,进行花卉识别 。3. 使用华为 ModelArts 开发平台完成 “可视化提升深度学习建模指导手册.pdf” 中的第二部分 “ Notebook以及MindInsight的使用”, 利用MindInsight提供的可视化功能实现深度学习的参数可视化/中间结果/输出结果的可视化等功能(文档中给出的代码仅做参考)。4.撰写实验报告,展示实验结果,阐述可视化技术在深度学习中的作用以及意义。实验内容实验简介学习使用Model Arts快速实现AI的应用开发;学习在Model Arts部署在线服务;使用ModelArts,使用Model Arts快速搭建花卉识别模型,并上传一张花卉图片进行预测。详见附件的“Modelarts使用手册 第一部分”。学习使用Model Arts notebook,在notebook中运行神经网络代码,学习神经网络模型训练过程;基于MindInsight,实现深度学习的中间和最终输出结果的可视化;理解可视化技术在解释深度学习“黑盒子”中发挥的重要作用;修改网络结构或者参数,并可视化结果,对比修改模型参数后导致的可视化结果的不同,从而理解可视化如何帮助模型调参和改善模型质量。实验步骤及结果(请按实验内容,逐项任务记录实验过程和结果,配图和文字说明)任务1. 图像分类获得授权(选择已有委托)进入开发环境下载花卉数据集创建一个桶 bucket,并在桶中新建文件夹:下载完成:订阅算法订阅页面显示已经成功订阅:创建训练开始训练:创建 AI 应用导入成功:部署为在线服务创建成功:输入图片,预测结果上传一张实例中给出的向日葵图片。可以看到输出结果为向日葵。清除资源停止在线服务:用相似的方式删除作业、删除数据任务2. Notebook 以及 MindInsight 的使用创建 Notebook创建成功,点击启动:编写代码并收集 MindSight 数据成功启动 MindInsight点击查看可视化结果实验参考资料可视化提升深度学习建模指导手册.pdf (ouc.edu.cn)MindSporeMindInsight可视化作业_AI开发平台ModelArts_开发环境_JupyterLab_可视化训练作业_华为云 (huaweicloud.com)实验总结与体会本次实验通过使用华为ModelArts开发平台,完成了可视化提升深度学习建模指导手册中的第一部分和第二部分的实验内容。在第一部分的实验中,我们使用ModelArts快速搭建深度学习模型,以花卉识别为例。首先,我们利用ModelArts提供的图像分类模板,选择合适的算法和数据集,进行训练。通过调整超参数,我们得到了一个准确率较高的花卉识别模型。然后,我们自行选定了一张花卉图像进行识别,结果表明模型能够准确地识别出花卉的种类。整个过程中,ModelArts提供了一系列的便捷功能,如自动化训练、模型部署、在线推理等,大大提高了深度学习建模的效率和便利性。在第二部分的实验中,我们学习了如何使用Notebook和MindInsight进行深度学习的参数可视化和中间结果/输出结果的可视化。通过在Notebook中添加MindInsight的插件,我们可以方便地查看模型的训练过程和中间结果。而在MindInsight中,我们可以通过可视化方式查看模型的参数、梯度、损失、准确率等信息,还可以查看每个层的输出结果,从而更好地理解模型的运作原理和优化方向。实验结果表明,可视化技术在深度学习中具有重要的作用和意义。首先,它可以帮助我们更好地理解模型的运作原理和优化方向,从而更好地进行模型设计和调整。其次,通过可视化方式查看训练过程和中间结果,我们可以更好地分析模型的性能和瓶颈,从而优化模型。最后,可视化技术也可以帮助我们更好地与其他人进行沟通和交流,促进深度学习技术的共同发展。总之,本次实验让我们深入了解了ModelArts和MindInsight这两个强大的深度学习工具,同时也让我们更加深入地认识到可视化技术在深度学习中的重要作用和意义。
-
神经网络和深度学习兴起之后很自然地就被引入强化学习领域。DRL的一个经典例子就是深度Q网络(Deep Q-Learning Network,DQN)Q-Learning算法的整体思路。在给定状态、行为、Q值和奖励等概念的情况下,先初始化一个Q值的Q-Table,然后对每一个episode(片段)重复执行每一步:根据状态S来选取要执行的行为,然后观察奖励和新的状态,根据Q函数更新公式进行更新。为什么叫Q-Learning,大概是因为其本身是一种依靠Q函数来寻找最优的动作-状态决策的。Q-Learning算法的流程这里在初始化Q值时使用了一个Q-Table来存储Q值,这样做无疑非常方便。但在问题非常复杂且有无数多个状态和行为时,如果还用表格来存储Q值恐怕是不行的。一是内存不够,二是在巨大表格里搜索状态会非常耗时。所以,当问题复杂到QGTable难以表示的时候,就可以用一个价值近似函数来表示Q(S,A)。既然价值近似函数没有固定的形式,那么就可以直接用神经网络来表示它。这就是强化学习与深度学习进行结合的第一步,也是最重要的一步。到这里,传统的Q-Learning算法中的Q值就成了Q网络。Q-Learning算法这种通过神经网络来表示Q(S,A)的方式,发展到现在就成了著名的DQN。
-
传统的强化学习包括3种主要方法,分别是基于价值(ValueGBased)、基于策略(PolicyGBased)和基于模型(ModelGBased)的方法。基于价值的强化学习方法会基于一个价值函数计算主体在每个状态下未来奖励的最大预期值,如著名的QGLearning算法就是一种基于价值的强化学习方法。基于策略的强化学习方法会摒弃价值函数,直接优化主体的策略函数,将主体的每一状态和当前状态下的最佳行为建立联系,ActorGCritic、A3C和DDPG等就是基于策略的强化学习方法。策略也可以分为确定性策略和随机性策略。基于模型的强化学习方法则是要对环境进行建模,其中需要知道很多环境的状态。例如,状态转移矩阵,像马尔科夫决策过程(Markov Decision Process,MDP)就是一种基于模型的强化学习方法。
-
如何利用AI开发平台ModelArts来对管道漏液进行训练模型,是否有最佳实践可以参考?
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签