人工智能细分领域常用的开发软件是什么
链接:https://www.zhihu.com/question/421105005
编辑:深度学习与计算机视觉
声明:仅做学术分享,侵删
机器学习、NLP、CV、SLAM、机器视觉、人脸识别、图像识别、语音识别、推荐系统、知识图谱等人工智能领域常用的开发软件各是什么?它们都有深度学习的功能吗?
作者:金天
https://www.zhihu.com/question/421105005/answer/1486192914
人工智能常用的开发软件?我猜测你指的是框架,当然也可能包括IDE,没关系,我将统统给予解答。
首先我认为人工智能已经变成了一个十分成熟的领域,就跟四五年前各种Java培训班,前端培训班,.NetC#等语言培训班一样,现在随处可见的人工智能速成班依旧重蹈着昔日开发领域的步伐。这并非偶然,都是市场驱动导致。
1年前我们还在苦恼一些好用的模型无法部署到更低端的芯片上,而现在我们已经有了很厉害的各个精度的量化算法,各大硬件的前向推理框架已经把速度做到了前所未有的快,甚至大家已经在思考如何做图优化,如何把深度学习模型当成是编译器来做等等;2年前我们还在纠结用什么训练框架,我们还在纠结如何用tensorflow生成需要的数据格式,而现在,我们有超过五种深度学习训练框架可供选择,有超过数十个甚至更多的深度学习周边辅助库来帮助你完成目标...
可以说,深度学习的发展之快速,领域之深入,应用之广阔,可能远超乎你的想象,它正在成为新一代的技术基石,就如同上个世纪八十年代的DOS操作系统一样。
话说回来,就我们通常什么软件,分为几个方面来阐述:这篇回答即是回答题猪的问题,同时也希望给后来者一个锦囊
深度学习模型的训练框架
这个你可以选择的很多,比如Pytorch,比如TensorFlow,比如PaddlePaddle,甚至是天元。这些都有各自的优点和缺点。在这里我只告诉大家最好的选择,至于为什么还需要大家自己去探索,或者自己去踩坑,当然这个最好永远是相对的,不是绝对的答案,我建议选择pytorch。
部署框架
我很建议每一位学习人工智能的同学,合理的选择自己的方向,在我看来,当你入门之后,摆在你面前的有两条路,一条路是学术路线,一条路是工业路线。不管你选择哪一条,我认为都有不错的前景。如果你思路开阔,喜欢阅读英文文献,我建议你深入的选择学术路线,那么就不需要过多的关注或者触碰部署方面的东西;如果你喜欢实践,你不喜欢论文里面那些不告诉输入尺寸就对比时间的傻逼,你不喜欢做一个牛逼的东西但是用不起来,那你可以深入部署,往工程方面靠。不管怎样,这两个方向其实也不冲突,关键是看个人精力是否允许你可以两条腿走路。
说道部署框架,其实现在用的比较多的是透过ONNX的方式进行转换。这在很多框架里面支持的已经很好了,比如pytorch,就可以通过onnx部署到GPU上,通过TensorRT加速可以让网络模型提速很多,也可以通过ONNX转到ncnn或者mnn,部署到移动端不在话下。
这里面其实有一个很有意思的逻辑,大家可以想一下为什么需要有一个ONNX的角色存在?不得不说微软是很有先见之名的。随着ONNX的发展,它确实已经发展成了比较标准的网络模型定义格式。未来毫无疑问也会有更多的东西在这上面构建。比如以后会极大发展起来的深度学习编译器等。
总结来说,部署框架分为CPU和GPU,GPU毫无疑问,你不管哪个公司做的,哪个人做的,都做不过英伟达,毕竟芯片是人家做的。所以说这里面有一个很确定的第一性原理在里面。CPU的就八仙过海各显神通了。业内用的比较多得是ncnn和mnn。ARM旗下主导的Tengine也是一个不错的推理框架。
数据处理
鲁迅曾经说过:数据科学家80%的工作是在数据处理上。其实没有错的,数据的准备,清洗,标签制作,数据集格式的转换等等,你将会有很大一部分工作是做这个。
那么这一部分我也推荐一些工具给大家。首当其冲的,当然是自家的库了。
pipinstallalfred-py这个库干什么的?有什么用?简单来说它就是,我直接贴github链接吧:
https://github.com/jinfagang/alfred
感兴趣的同学可以去看看。
当你需要可视化VOC的数据,coco的数据,你需要从voc转到coo,coco转到voc,voc转yolo,yolo转coco等等,你自己写脚本会累死的。有了他,你就可以找到归属感。
IDE
最后说一下写代码不能不说IDE。到目前为止,我一般只用vscode。
作者:SunArieshttps://www.zhihu.com/question/421105005/answer/1473432606
主流TensorFlow和PyTorch生态肯定少不了了。一般还会配合其他各种小工具,如sklearn、opencv、numpy等等,甚至还有按键精灵的。因为人工智能是一个大课题,不可能仅一到两个工具软件就能完解所有问题,所以工具也在发展,自己也要会写些辅助工具帮助研究。
作者:西涛
https://www.zhihu.com/question/421105005/answer/1511837167
开发框架tensorflow,pytorch,numpy,pandas,sklearn,开发IDEpycharm,vscode,jupytornotebook等
作者:marsggbohttps://www.zhihu.com/question/421105005/answer/1497062214
1.写代码VSCode用来写代码
Vscode超级推荐的快捷键:Ctrl+D
比如一个文件里一共有10个myname字符,你想把前面5个替换成youname,那么你就可以首先鼠标选中第一个myname,然后按五次 Ctrl+D后就可以选中前面5个myname,之后你只需要在键盘上写入youname,就完成了替换。
其他快捷键想到再补充
2.框架框架推荐Pytorch,或者TensorFlow>=2.0
很多人都基于Pytorch做了封装,更进一步简化框架使用门槛,比如Pytorch-lightning,fast.ai,还有我自己写的裁缝库(各种封装哈哈哈,不过感觉挺好用的)torchline
3.调试调试代码很多人都用Pycharm,但是在服务器上你怎么办呢?这里强烈推荐ipdb
pipinstallipdb用法很简单
首先运行py文件
python-mipdbmain.py之后就会进入命令调试
bmain.py:15 这个表示在第15行设置一个断点
butils/other_file.py:66同理你也可以在其他文件里设置断点,只要指定路径就好了
clear1 取消第一个断点
c运行到下一个断点
n运行到下一行代码
s 这个命令可以进入某一个函数进行调试
r这个命令是直接跳转到return语句,一般用在函数里或者for循环语句
ipdb常用的命令就是这些,欢迎补充。
4.Windows下命令行工具Cmder超级推荐,用过的都说好,比Windows自带的命令行窗口好用很多,同时支持Linux下的很多命令,用起来很顺滑。https://cmder.net/
5.代码版本控制Vscode的插件库里宝库非常多,这里推荐安装Gitgraph,有了这个后你不用再记忆那么多git命令了
6.Markdown写笔记推荐小书匠软件,好看免费还好用
其他可选:
印象笔记
OneNote
有道笔记
7.论文阅读软件还在用阿逗比的Acrobat或者福昕阅读器吗?学术论文用这些看的话各种知识点七零八落的,这个时候你需要。http://www.bookxnote.com/
是的,这个软件也是免费的哦,这个软件是Windows版本的Marginnote,关键目前是免费的,而且你可以通过搭配坚果云完成文档和笔记的云同步,简直香到不行,都舍不得推荐给你们,生怕用的人多开始收费。
8.知识脑图这里强推Xmind,懂的都懂哈哈哈
9.Visio替代品Visio常用来话流程图,但是除非你下载盗版的,不然穷逼用不起,所以我当然还是推荐几个免费的。
坚果云自带这个功能,但是好像目前版本不支持导出PDF了,所以不爱ta了
ProcessOn在线流程图画图工具,免费用户好像可以创建10个文档,其实也是够用了
重磅来了!!!Drawio最好没有之一!!!
免费、功能强大、支持导出各种格式、还可以备份到谷歌云、GitHub、gitlab、本地等,好用到想哭啊。https://app.diagrams.net/
10.Mathpix
Mathpix可以非常方便地将图片中的数学公式转化成latex代码,写论文超级方便。每个月好像只有一定数量的免费使用次数,如果你使用频率很高,可以去闲鱼买账号https://mathpix.com/
11.Mobaxterm跑实验肯定要用到服务器,这里强烈推荐MobaXterm,ssh和ftp等功能这个软件都有,用起来非常方便。12.OneCommander超级好用的文件管理器,可以以树形结构展示不同层次文件夹的内容,不用在不同文件夹里来回切换了
☆END☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「mthler」,每日朋友圈更新一篇高质量博文。
↓扫描二维码添加小编↓
如何构建人工智能平台
概述
我们将总结我们从行业中的AI平台中学到的元素。包括什么是人工智能平台,平台有哪些组件,平台可以做什么,它将如何帮助我们通过人工智能实现目标。然后尝试确定AIPlatform的关键问题和它必须实现的目标。
人工智能平台人工智能平台为用户提供构建智能应用的工具包。这些平台将智能决策算法与数据相结合,使开发人员能够创建业务解决方案。一些平台提供预先构建的算法和简单的工作流程,具有拖放建模和可视化界面等功能,可以轻松地将必要的数据连接到最终解决方案,而其他平台则需要更多的开发和编码知识。除了其他机器学习功能外,这些算法还可以包括图像识别、自然语言处理、语音识别、推荐系统和预测分析功能。
开发人员经常使用AI平台来创建学习算法和智能应用程序。但是,没有密集开发技能的用户将受益于平台的预构建算法和其他抑制学习曲线的功能。AI平台与PaaS非常相似,后者允许基本的应用程序开发,但这些产品的不同之处在于提供了机器学习选项。随着智能应用程序成为常态,所有PaaS产品开始提供与AI平台相同的机器学习选项可能会变得司空见惯。
如果对Python有兴趣,想了解更多的Python以及AIoT知识,解决测试问题,以及入门指导,帮你解决学习Python中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己Python方面学的不够精想要继续学习的,想转行怕学不会的,都可以加入我们,可领取最新Python大厂面试资料和Python爬虫、人工智能、学习资料!微信公众号【Python大本营】等你来玩奥~
前5名AI平台易于使用、满足要求、易于开展业务、易于设置、支持质量、易于管理
谷歌人工智能平台GoogleAIPlatform包含3个重要组件:AIHub、AIBuildingblocks和AIPlatform。
人工智能中心AIHub为构建AI系统的开发人员和数据科学家提供了一系列资产。在笔记本中训练您的ML模型或将其部署到托管服务。查找和部署ML管道。探索和重用TensorFlow模块。发现为您的训练模型提供服务和管理的最佳解决方案。从深入的教程和示例中学习。
人工智能积木使开发人员可以轻松地将视觉、语言、对话和结构化数据添加到他们的应用程序的工具。
人工智能平台这种基于代码的数据科学开发环境使机器学习开发人员、数据科学家和数据工程师能够快速且经济高效地将他们的项目从构思到部署。
控制台和仪表板微软Azure人工智能MicrosoftAzureAI专注于3个主要领域:AI应用程序和代理、知识挖掘、机器学习。
人工智能应用程序和代理使用认知服务和机器人服务在您的应用程序中提供突破性体验。访问行业领先的AI模型,这些模型如今已被Office365、Xbox和Bing等数百万产品所使用。使用您自己的数据自定义这些模型并在任何地方部署。只有Azure为您提供对这些久经考验的功能的访问权限。
知识挖掘只有Azure为您提供最先进的机器学习功能。使用Azure机器学习、AzureDatabricks和ONNX快速轻松地构建、训练和部署机器学习模型。使用您选择的工具和框架,无需锁定。使用自动化机器学习更快地开发模型。跨云和边缘轻松部署和管理。
机器学习使用Azure搜索从所有内容(文档、图像和媒体)中发现潜在见解。使用唯一具有内置AI功能的云搜索服务,发现内容中的模式和关系,了解情绪,提取关键短语等。
控制台和仪表板亚马逊机器学习亚马逊专注于解决一些阻碍机器学习掌握在每个开发人员手中的最严峻挑战。
机器学习服务AmazonSageMaker使开发人员和数据科学家能够快速轻松地构建、训练和部署任何规模的机器学习模型。它消除了阻碍跨用例和行业成功实施机器学习的复杂性——从运行用于实时欺诈检测的模型到虚拟分析潜在药物的生物学影响,再到预测棒球中被盗基地的成功。
人工智能服务AWS预训练的AI服务为您的应用程序和工作流程提供现成的智能。AI服务可轻松与您的应用程序集成,以解决常见用例,例如个性化推荐、现代化联络中心、提高安全性和提高客户参与度。因为我们使用与Amazon.com和我们的ML服务相同的深度学习技术,您可以从持续学习的API中获得质量和准确性。最重要的是,AWS上的AI服务不需要机器学习经验。
机器学习框架和基础设施从TensorFlow、PyTorch、ApacheMXNet和其他流行框架中进行选择,以试验和自定义机器学习算法。您可以使用您选择的框架作为AmazonSageMaker中的托管体验,也可以使用AWSDeepLearningAMI(Amazon机器映像),它们完全配置了最流行的深度学习框架和工具的最新版本。
控制台和仪表板其他阿里巴巴人工智能机器学习平台阿里巴巴人工智能机器学习平台提供端到端的机器学习服务,包括数据处理、特征工程、模型训练、模型预测和模型评估。人工智能机器学习平台结合了所有这些服务,使人工智能比以往任何时候都更容易访问。
IBM沃森机器学习IBMWatsonMachineLearning可帮助数据科学家和开发人员共同努力,加快部署过程并将AI集成到他们的应用程序中。通过简化、加速和管理AI部署,它使组织能够利用机器学习和深度学习来交付业务价值。
甲骨文人工智能Oracle可随时构建的AI平台为数据科学家和应用程序开发人员提供了一系列云服务,以轻松构建、训练、部署和管理AI驱动的解决方案。借助现成的Oracle自治数据库平台,机器学习正在幕后工作,以自动化安全修补和备份并优化数据库查询性能。了解由AI提供支持的现代云架构如何满足您的业务需求。
H2O机器学习平台H2O是一个完全开源的分布式内存机器学习平台,具有线性可扩展性。H2O支持最广泛使用的统计和机器学习算法,包括梯度增强机器、广义线性模型、深度学习等。H2O还具有行业领先的AutoML功能,可自动运行所有算法及其超参数,以生成最佳模型排行榜。
多轴突一个用于复制和管理机器学习和深度学习应用程序的整个生命周期的平台。Polyaxon为您提供了最简单的途径,可以快速实现更快的创新,并开发可重现和可扩展的机器学习模型。独立于云提供商扩展您的数据科学基础架构并更快地进行创新。
概括如您所见,不同的AI平台有许多共同的特点:为构建智能、支持AI的应用程序提供平台。允许用户创建机器学习算法和/或为更多新手用户提供预构建的机器学习算法来构建应用程序。为开发人员提供一种将数据连接到算法以供他们学习和适应的方法。
人工智能平台状态人工智能可访问性除非我们让每个人都可以轻松访问AIPlatform,否则它不会进入产品。AIPlatform的主要问题是缺乏可访问性。我们必须注意畅通数据可访问性、工作流可访问性、知识可访问性和服务可访问性。
数据可访问性研究人员从不同来源获取数据。这是一项肮脏的工作,从来都不容易。研究人员没有这样的地方可以一目了然地查看所有数据,以帮助他们了解数据之间的关系。数据对人工智能的重要性是不可否认的。AI接收特定功能或任务的输入或请求,并且为了输出解决方案,它需要访问数据。AI可以访问的数据越多越好。研究人员必须以更好的方式充分了解我们的数据。这就是为什么不能忽视提高数据可访问性的原因。
谷歌、微软和亚马逊都提供友好的工具来为开发人员在其AI平台上提取和操作数据。
工作流程可访问性从数据摄取、数据标记、数据分析、数据转换、模型训练、数据验证、提炼、再训练、部署、演化和服务。这是机器学习操作化的一个非常常见的工作流程。研究人员不会共享这样的工具来简化他们的工作流程。研究人员在工作流程上不可避免地需要付出努力,但他们的大部分工作都是重复的,难以重用。
我们必须提供一种工具来部署、监控和管理机器学习模型。跟踪已部署机器学习模型的运行状况和性能。提供整体管理工具,以更好地了解跨产品部署的所有模型。
知识可及性人工智能正在成为所有商业软件的主要内容,并将在可预见的未来继续存在。实际上,我们对AI以及它如何将我们带入未来几年知之甚少。苹果、谷歌、微软和亚马逊在建立强大的研究团队之前没有人工智能。他们的研究团队编写了许多文档、指南、规范、设计、标准、解决方案等。这些成为他们的AI知识中心。每个人都可以访问它并从中学习,因此他们知道如何将AI应用到他们的业务中并通过AI开发新领域。他们最终成为一家人工智能驱动的公司。
建设人工智能知识中心是人工智能平台的重中之重。
服务可访问性AI基础设施层、ML服务层、AI服务层,它们是AIPlatform的服务。这些服务应该为彼此设计,为彼此进化。所以人工智能平台可以快速移动。尤其是人工智能服务层,我们定义了我们应该在这一层服务什么,这样我们就知道我们需要专注于什么。人工智能服务应该是产品就绪层。谷歌和微软的人工智能服务都提供视觉、视频、翻译、自然语言、语音等。
AI平台必须实现开发工具以确保每个团队都可以访问AI。基础设施、服务、标签工具、质量控制、分析工具、监视器、自动化、控制台、仪表板、命令行工具、lib/framework/SDK/API。等等。
建立知识中心,指导每个团队通过人工智能实现目标。文档、规范、设计、标准、解决方案、算法。等等。
为产品提供高质量的人工智能。推荐、搜索、活动、营销、个性化、播放元数据、自适应比特率。等等。
将AI技术应用于新领域。智能视频广告、AR/VR、语音。等等。
如果对Python有兴趣,想了解更多的Python以及AIoT知识,解决测试问题,以及入门指导,帮你解决学习Python中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己Python方面学的不够精想要继续学习的,想转行怕学不会的,都可以加入我们,可领取最新Python大厂面试资料和Python爬虫、人工智能、学习资料!微信公众号【Python大本营】等你来玩奥~