解锁人工智能项目开发的关键:Python 基础库详解与进阶学习

news2024/10/7 2:19:24

 Python 是一种通用的编程语言,广泛用于人工智能项目开发。它有很多可用的库,可以帮助开发人员构建各种人工智能应用程序,如自然语言处理和机器学习。在本文中,我们将介绍一些最流行的 Python 库,以及它们在人工智能项目开发中的应用。

36246defcc0bb5ba7c54e65499810507.png

最近研究人工智能方面的项目落地,接触到不少Python开源库。一开始也不认识,遇到代码里的开源库,就去问大模型 ChatGPT,Google Bard,Claude。随着项目落地的深入,越觉得需要系统的了解一些开源库。

01‍

Scikit-learn:机器学习

1358f0153f79624fda2394ddada218bd.png

Scikit-learn是一个用于实现机器学习算法的 Python 库。 

2007年,年轻开发者David Cournapeau以学生身份推出了scikit-learn。这一开源工具很快赢得了社区的喜爱,多年来持续迭代更新,得到了广泛应用和推崇。

官网:https://scikit-learn.org/stable/

Scikit-learn涵盖了全部关键机器学习算法,涵盖SVM、随机森林、梯度提升、k均值聚类和DBSCAN等。其目标在于与NumPy和SciPy(后续介绍)无缝整合,实现数据清洗、预处理和计算。内含模块可方便地载入数据并分割成训练集与测试集。同时,支持文本和图像数据的特征提取。

Scikit-learn 是所有涉足机器学习领域的从业者的不可或缺工具。不论您是否需实施分类、回归、聚类、模型选择等算法,它都被誉为最优之选。

缺点:Scikit-learn诞生于深度学习盛行之前。尽管它在核心机器学习和数据科学领域表现出色,但在如今大多数应用大型模型的情景中,更多倾向于使用TensorFlow或PyTorch(后续介绍)。

学习资源: 使用 Scikit-Learn 进行 Python 机器学习。

https://www.youtube.com/playlist?list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A

02‍

NumPy:处理数字‍‍

864d514151a6ef91cd90f99bd314b56b.png

NumPy是Python的一个库,用于处理数组和大量同质数据。想象数组如电子表格,数据存储于列和行。

官网:https://numpy.org/

2005年,Travis Oliphant将十多年开发成果整合,创造出名为NumPy的数值计算库。

NumPy主要支持数组操作,可快速处理和操作大量数据集。数组可以是多维的,适用于单列或多行数字。库含线性代数函数模块,亦有绘图功能。NumPy数组中的同质数据有助于高效处理。

适用场景:适合处理和操作数据,进行高级数据科学及机器学习操作。处理数字时,NumPy是必需的。

缺点:由于NumPy数组为同构,不适用于混合数据。处理超过50万列时,性能可能下降。建议在这种情况下使用Python列表。

学习地址: Coursera 的Linear Regression with NumPy and Python 。

https://www.coursera.org/projects/linear-regression-numpy-python

03‍‍

Pandas:操作数据‍‍

53c9b5b71eccaa6bae49114066547889.png

Pandas是一个用于处理多类型标记数据的库。若需处理包含数字、字母和字符串的CSV文件等,Pandas是首选。

官网:https://pandas.pydata.org/

2008年,Wes McKinney发布了Pandas。它建基于NumPy(安装NumPy后方可使用),用于处理异构数据。

特点:Pandas主要特色在于多样的数据结构,可执行多种分析操作。包括数据重塑、连接、合并、透视等模块。还具备数据可视化功能,可执行微积分和统计等数学运算,无需外部库。同时,它还有模块帮助您处理丢失数据。

适用场景:数据分析。

缺点:与普通Python相比,Pandas的学习曲线较陡,文档质量也不佳,可能导致学习难度较大。

学习地址:DeepLearning.AI 的Pandas 课程。

https://learn.deeplearning.ai/pandas/lesson/1/introduction

04‍

Python SciPy:数据科学做数学计算

cb72cbcef9c5636f1c5eec3f40dbdacd.png

SciPy是一个用于科学计算的Python库,涵盖多个包和模块,助力科学家进行实验和分析。

官网:https://docs.scipy.org/doc/scipy/

2001年,Python开源社区开发的一系列满足科学需求的工具,以SciPy形式发布。

特点:SciPy软件包括完整的数学技术工具集,涵盖微积分、线性代数、统计、概率等领域。受欢迎的功能包括插值、K均值测试、数值积分、傅里叶变换、正交距离回归和优化。此外,还包含图像处理和信号处理的包。Weave功能允许在Python中使用C/C++编写代码。

适用场景:SciPy是数据科学家的得力助手。

缺点:SciPy文档不足,部分软件包不如MatLab中类似软件包。

学习资源:Ahmad Bazzi的"SciPy编程"教程。

https://www.youtube.com/watch?v=ARYCvrEW1fw

05‍‍‍

TensorFlow

128d0953258d67ca6fb7246b57dd56aa.png

TensorFlow是端到端开源库,用于开发、训练和部署深度学习模型。

官网:https://www.tensorflow.org/

TensorFlow最初由Google Brain于2015年发布。初始版本前端不够友好,多余API让模型构建繁琐。随后通过更新和将Keras整合为默认前端(后续介绍)解决了诸多问题。

TensorFlow提供了多个软件包,用于构建、扩展深度学习模型以进行商业部署。

TensorFlow用户可调用开发中心(https://tfhub.dev/)和模型花园(https://github.com/tensorflow/models/tree/master/official)中的数百个预训练模型。

开发中心含即用模型,模型花园则适合高级用户自定义。TensorFlow能有效利用内存,可并行训练多个神经网络。可运行于多种硬件系统,如CPU、GPU、TPU等。TensorFlow Lite优化移动和嵌入式机器学习模型。用户可在Tensorboard.dev(https://tensorboard.dev/)上分享机器学习实验。

适用场景:适用于大规模构建生产可用的深度学习模型。

缺点:前端较复杂,遭到关于执行速度缓慢的批评,主要因TensorFlow 1.0默认以图模式执行操作。TensorFlow 2.0改进为默认急切执行模式。

学习资源:DeepLearning.ai的"TensorFlow开发课程"。

https://www.deeplearning.ai/courses/tensorflow-developer-professional-certificate/

06‍‍‍

Keras

0a4d95ad8dcb634a42ad049b858e34c1.png

Keras是为TensorFlow提供前端接口的神经网络工具包。

Google工程师Francois Chollet于2015年发布了Keras,成为多个深度学习库的API。截至2020年,Keras已成为TensorFlow独有。

特点:Keras专注于TensorFlow中构建神经网络的高级任务,包含激活函数、层、优化器等基本模块。

Keras支持常规神经网络、卷积神经网络、循环神经网络及实用层,如批量归一化、dropout和池化。旨在简化深度神经网络的编码。

适用场景:适用于深度学习网络的开发。

缺点:仅适用于TensorFlow用户。

学习资源:IBM的"Keras深度学习和神经网络简介"。

https://www.coursera.org/learn/introduction-to-deep-learning-with-keras

07‍‍‍

Pytorch

a24d0af3b74d5f355d367e557fe2ef95.png

PyTorch是Facebook AI研究实验室对TensorFlow的响应,是一款开源通用库,用于机器学习、数据科学(尤其是深度学习)。

官网:https://pytorch.org/

2016年,Facebook发布了PyTorch,紧随TensorFlow发布一年后。其简化的前端和立即执行操作的默认模式使其在学术界和快速原型设计领域受到欢迎。

PyTorch与TensorFlow具有诸多相似功能。

PyTorch拥有自己的预训练模型库,PyTorch Hub为学术用户提供模型设计尝试,生态系统工具包含预训练模型。PyTorch具备高内存效率,能并行训练多个模型,并支持多种硬件类型。

适用场景:适用于快速原型设计深度学习模型。PyTorch代码运行速度高效。

缺点:部分用户认为PyTorch在处理大型项目、大数据集和复杂工作流方面有些难。构建大规模部署人工智能产品的开发者可能更偏向TensorFlow。

学习资源:PyTorch官方教程,详见PyTorch.org‍

https://pytorch.org/tutorials/

08‍‍‍‍

LangChain:LLM应用架构

d34b8e54ebc6ba6a367ecdce37a8704b.png

它是什么:LangChain 是一个开源框架,这个框架是用来让开发者进行 LLMs (大语言模型)应用开发的。

可以理解是为各种 LLM 开发的脚手架,将 LLM 的各个组件进行封装和链接。把 LLMs 相关的组件“链接”在一起,简化 LLMs 应用的开发难度,方便开发者快速地开发复杂的 LLMs 应用。

官方地址:https://langchain.com/

背景:LangChain 的作者是 Harrison Chase,最初是于 2022 年 10 月开源的一个项目,在 GitHub 上获得大量关注之后迅速转变为一家初创公司。

特点:LangChain 用于连接人工智能大语言模型LLM来生成人工智能文本。

  • 它是基于论文《ReAct: Synergizing Reasoning and Acting in Language Models》的实现:该论文展示了一种提示技术,允许模型「推理」(通过思维链)和「行动」(通过能够使用预定义工具集中的工具,例如能够搜索互联网)。

  • Langchain 作为一个大语言模型应用开发框架,解决了现在开发人工智能应用的一些切实痛点:数据滞后,token 数量限制,不能进行联网,不能与其他数据源链接。

  • 作为一个胶水层框架,极大地提高了开发效率,它的作用可以类比于 jquery 在前端开发中的角色,使得开发者可以更专注于创新和优化产品功能。

  • LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。

  • LangChain 包含六部分组成,分别为:Models、Prompts、Indexes、Memory、Chains、Agents。

最适合:让开发人员更方便进行 LLM 应用开发的一套框架,集成了很多家公司的 LLM。将这些 LLM 进行抽象,提供了很多组件和扩展能力,支持更复杂的 LLM 应用。

缺点:学习成本很高,而且对于小型项目来说并不容易使用。

学习地址:LangChain 中文文档网站

https://www.langchain.com.cn/

09‍‍

Gradio

24bc88f4b6122bcb5b84b3ffcf41abbc.png

它是什么:Gradio是一个用于快速构建交互式应用程序的开源Python库。它可以帮助开发者轻松地将机器学习模型集成到用户友好的界面中,从而使模型更易于使用和理解。

官方地址:https://gradio.app/

背景:Gradio 由软件工程师和数据科学家Abubakar Abid 于2020 年1 月首次发布,目的是让研究人员和开发人员能够轻松构建和共享其模型和数据的交互式界面。用于为机器学习模型和其他数据处理功能创建可定制的接口。 

特点:Gradio适用于以下情况:

    1. 为客户/合作者/用户/学生演示机器学习模型。

    2. 通过自动共享链接快速部署你的模型,并获得对模型性能的反馈。

    3. 在开发过程中使用内置的操作和解释工具交互式地调试模型。

  • Gradio提供了多种输入和输出类型,以便创建更复杂的交互式应用程序。以下是一些常见的输入和输出类型:text:文本、number:数字、slider:滑块、checkbox:复选框、radio:单选按钮、dropdown:下拉菜单、image:图像、file:文件。

  • Gradio的默认布局非常简单,也可以使用Gradio组件的高级选项来自定义应用程序的布局。

  • Gradio支持多种部署方式,包括本地部署、云部署和Web应用程序部署。本地部署适用于测试和开发环境,而云部署和Web应用程序部署适用于生产环境。

  • gradio可以在启动应用时设置share=True参数创建外部分享链接,

  • gradio可以在jupyter中直接展示页面,更加方便调试。

最适合:Gradio是一个非常灵活和易于使用的库,可以快速构建机器学习模型的用户友好界面。可以帮助我们将模型部署到生产环境中,并通过Web应用程序向最终用户提供服务。

缺点:黑黄色的界面不是很符合流行的审美。

学习地址:Gradio 官方文档

https://gradio.app/docs/

掌握人工智能最好的办法就是不断学习!

参考地址:

https://www.deeplearning.ai/blog/essential-python-libraries-for-machine-learning-and-data-science/

https://cloud.tencent.com/developer/article/2313918

阅读推荐:

MM-Vet的多模态评估标准如何评估大型多模态模型(LMM)在复杂任务上的表现

Atom Capital:大模型在金融领域落地,想说爱你不容易

$100亿模型的扩张有望2年内实现通用人工智能—与 Claude 创始人Dario Amodei 访谈录

深度解析 Llama 2 的资源汇总:不容错过

OpenAI又推新:使用ChatGPT进行内容审核

中文大模型 Chinese-LLaMA-Alpaca-2 开源且可以商用

ChatGLM团队发布AI Agent能力评测工具AgentBench:GPT-4一骑绝尘,开源模型表现非常糟糕!

ChatGPT 微信助手上线!问答更便捷,功能持续升级中。

拥抱未来,学习 AI 技能!关注我,免费领取 AI 学习资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/913021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机密计算实践】支持 Intel SGX 的 LibOS 项目介绍(二)

续上一篇 【机密计算实践】支持 Intel SGX 的 LibOS 项目介绍(一) 四、Mystikos Mystikos 是一个运行库和一组工具,用于在硬件可信执行环境(TEE)中运行 Linux 应用程序。当前版本支持英特尔 SGX,而未来版本可能支持其他 TEE。 4.1 目标 通过使用硬件 TEE,在…

校园后勤如何实现数字化管理?的修报修系统有哪些产品优势?

数字化时代背景下,校园后勤管理同样需要向智能化方向迈进。随着科技的飞速发展,我们应该充分利用数字化技术和智能化设备来提升校园后勤管理的效率和质量。通过引入可视化、数字化的流程管控系统,我们可以实现在线报修、快速响应处理、全流程…

4G语音胸牌,如何实现在门店接待过程管理的智能化管理?

一个完整的客户销售过程,一般包括线索获取-电话沟通-邀约到店-门店接待-回访-成交。这个过程中我们会发现,销售和客户大量的互动过程都在线下门店,而这个环节是客户最直观感受企业服务和产品的过程,很大程度上直接决定后续的成交与…

精准、高效的RFID资产管理新时代

当谈及高效、精细的企业资产管理时,RFID固定资产管理系统绝对是一项令人振奋的技术。这项引人注目的射频识别技术为企业管理带来了前所未有的革命性变革,以其精准性和高效性赋予了资产管理全新的维度。 想象一下,您无需耗费宝贵的时间和精力…

MinIO线上扩容实战

硬件投入肯定是随着业务的增长而增长,这就要求中间件平台必须提供水平伸缩机制,MinIO对象存储服务也不例外,本文就详细介绍MinIO的扩容。 Minio支持通过增加新的Server Pool来扩容老的集群。每个Server Pool都是一个相对独立的故障域&#x…

安防视频能力平台EasyNVR视频汇聚平台关闭匿名登陆的问题的解决步骤

EasyNVR是基于RTSP/Onvif协议的安防视频能力平台,它可实现设备接入、实时直播、录像、检索与回放、存储、视频分发等视频能力服务,可覆盖全终端平台(pc、手机、平板等终端),在智慧工厂、智慧工地、智慧社区、智慧校园等…

YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测+k折交叉验证法)

YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测k折交叉验证法) 0.引言 k折交叉验证(K-Fold Cross-Validation)是一种在机器学习中常用的模型评估技术,用于估计模型的性…

华星时空展锐芯片5g随身WiFi改串教程

前段时间入手了一个华正易尚,发现插手机卡可以用,插微闯移植卡直接没网,于是研究出展锐改串的教程分享给大家 ⭐注意:理论上所有的展锐芯片棒子都可以用,至于电池机请自行测试 话不多说,教程开始: 1.下载展锐AT改串驱…

服务器数据恢复-EVA存储磁盘故障导致存储崩溃的数据恢复案例

EVA系列存储是一款以虚拟化存储为实现目的的中高端存储设备。EVA存储中的数据在EVA存储设备工作过程中会不断进行迁移,如果运行的任务比较复杂,EVA存储磁盘负载加重,很容易出现故障的。EVA存储通过大量磁盘的冗余空间和故障后rss冗余磁盘动态…

JAVA开发环境接口swagger-ui使用总结

一、前言 swagger-ui是java开发中生产api说明文档的插件&#xff0c;这是后端工程师和前端工程师联调接口的桥梁。生成的文档就减少了很多没必要的沟通提高开发和测试效率。 二、 swagger-ui的使用 1、引入maven依赖 <dependency><groupId>io.springfox</grou…

如何做好流量经营?数字化系统如何加速流量增长

​在用户转化策略上&#xff0c;从“公域流量”到“私域流量”的来源转变&#xff0c;充分说明企业已经意识到公域流量存在成本高、粘度差、稳定性差等问题&#xff0c;开始寻求拥有更低成本、更容易培养忠实度、更容易精准触达的私域流量。但由于企业缺少整体、系统化的私域经…

(AcWing) 900. 整数划分 (计数DP)

一个正整数 n 可以表示成若干个正整数之和&#xff0c;形如&#xff1a;nn1n2…nk&#xff0c;其中 n1≥n2≥…≥nk,k≥1。 我们将这样的一种表示称为正整数 n 的一种划分。 现在给定一个正整数 n&#xff0c;请你求出 n 共有多少种不同的划分方法。 输入格式 共一行&#…

问题:fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

问题&#xff1a;fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached 解决办法&#xff1a; 1. 新建一个文本文档并命名为XXX.json 2. 打开这个文本文档&#xff0c;复制下面内容保存 {"browsers": {"chrome": ["Mozill…

2023 年如何将您的应用提交到 App Store

您夜以继日地工作来创建您的梦想应用程序。最后&#xff0c;是时候向全世界宣布您的应用程序了。但不知道如何将您的应用提交到 App Store&#xff1f; 为您的商店获取现成的移动应用程序 将应用程序提交到 App Store 可能是一项复杂的任务。但在本指南的帮助下&#xff0c;事…

Monitor.Analog高温老化箱系统操作指南

高温老化室参数设置通常包括以下几个方面&#xff1a; 1.客户信息设置&#xff1a;每个柜子可能老化的产品不 同&#xff0c;客户信息也不一样&#xff0c;通过设置客户信息来标识。 2. 产品设置&#xff1a;根据老化物品的需求&#xff0c;设置老化房的产品类型。通常情况下&…

ElasticSearch常用方法

ElasticSearch:是一个储存、检索、数据分析引擎。 在互联网项目中我们经常会按一定的条件去索引我们指定的数据&#xff0c;但是在大量的数据中我们如果直接查询数据库效率是非常低的&#xff0c;ElasticSearch就可以很好的帮我们完成检索。 es封装了api提供给我我们直接操作…

建筑行业,工地管理有多简单?教你一招

智慧工地的出现&#xff0c;让我们能够实时洞察工地内的各个细节&#xff0c;无论是设备运转状态、工人位置&#xff0c;还是材料运输情况&#xff0c;一切都能通过传感器和互联技术汇聚到中央控制系统。这意味着管理人员可以更加高效地监督和调整工作流程&#xff0c;从而提升…

如何批量在图片名称前加相同的数字?

如何批量在图片名称前加相同的数字&#xff1f;如果平时喜欢拍摄美景&#xff0c;那么将拍摄的照片转移到电脑上保存是最好的选择&#xff0c;因为我们的手机或者相机的存储能力都是有限的&#xff0c;而电脑保存照片会更加的安全。因此时间久了我们的电脑中就会有很多的图片&a…

LAMP架构详解+构建LAMP平台之Discuz论坛

L A M P 一、LAMP架构简介1.1 LAMP架构的组成1.2 LAMP各组件的主要作用1.3 LAMP工作过程1.4 CGI和fastcgi 二、搭建Discuz论坛的思路三、编译安装Apache httpd3.1 前置准备3.2 移动apr包 apr-util包到安装目录中&#xff0c;并切换到 httpd-2.4.29目录中3.3 编译安装3.4 建立软…

网络安全(自学黑客)一文全解

目录 特别声明&#xff1a;&#xff08;文末附资料笔记工具&#xff09; 一、前言 二、定义 三、分类 1.白帽黑客&#xff08;White Hat Hacker&#xff09; 2.黑帽黑客&#xff08;Black Hat Hacker&#xff09; 3.灰帽黑客&#xff08;Gray Hat Hacker&#xff09; 四…