返回介绍

1 AI 框架概述

发布于 2024-09-08 14:43:39 字数 7793 浏览 0 评论 0 收藏 0

1.1 AI 库(python)

表格 1 python 常用 AI 库列表

类别库名介绍
数据分析scipy提供矩阵支持,以及矩阵相关的数值计算模块
 numpy数学函数库,提供数组、一组与线性代数相关的函数以及傅里叶变换函数。
 pandasa powerful data analysis and manipulation library for Python
机器学习 提供机器学习、深度学习和强化学习。通常包括了分类、聚类、回归问题。
 sklearnsckit-Learn。强大的机器学习库,支持回归、分类、聚类和降维。源码库里包含文档和例子(各语言含 jupyter notebook)。
 keras深度学习库,用于建立神经网络以及深度学习模型。windows 下速度会变慢。依赖库有 numpy/scipy/theano。
 xgboost约 100MB。
 libsvm机器学习库,SVM
统计学习statsModels统计建模和计量经济学
深度学习tensorflow谷歌基于 DistBelief 进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。
 caffe 
线性规划ortoolsgoogle 开源。
逻辑编程kanren简化业务逻辑编写代码的方式。
 SymPy轻量级的代数计算库。常用于逻辑编程,解决素数、数独等问题。
可视化 pillow, matplotlib, seaborn, wordcloud 等,详见 《 数据可视化工具.md
 tensorboardtensorflow 框架的可视化工具包。

备注:机器学习的第三方模块中 scipy、numpy、matplotlib 是基础模块,pandas 等库通常要依赖上述库。

1.2 AI 库分领域

1.1.1 科学计算常用库的方法

表格 2 pandas 库方法(依赖于 numpy)

功能主要方法备注
统计特征sum、mean var std corr cov skew kurt describe统计学基础
拓展统计cumsum cumprod cummax cmumin rolling_sum rolling_xxx累积统计
统计作图plot pie hist boxplot plot(logy=True) plot(yerr=error)饼图、拆线图、直方图、箱形图、对数图、误差条形图
数据预处理unique isnull notnull 

安装: pip install pandas

import numpy as np
import pandas as pd

表格 4 其它科学计算库用途

函数名函数功能库名
interpolate数据插值scipy
random生成随机矩阵numpy

1.1.2 NLP.自然语言处理

处理人类语言问题的库。

库名简述
NLTK编写 Python 程序来处理人类语言数据的最好平台。支持多种语言。
gensim用来作文本主题挖掘的库
jiebapython 实现的一个中文分词开源模块。
HanlpJava 实现的 NLP 库。
FudanNLP复旦大学的 NLP 平台。

分词相关库:jieba mmseg

  • Pattern – Python 的网络挖掘模块。他有自然语言处理工具,机器学习以及其它。
  • TextBlob – 为深入自然语言处理任务提供了一致的 API。是基于 NLTK 以及 Pattern 的巨人之肩上发展的。
  • SnowNLP – 中文文本处理库。
  • loso – 另一个中文分词库。
  • genius – 基于条件随机域的中文分词。
  • langid.py – 独立的语言识别系统。
  • Korean – 一个韩文形态库。
  • pymorphy2 – 俄语形态分析器(词性标注+词形变化引擎)。
  • PyPLN – 用 Python 编写的分布式自然语言处理通道。这个项目的目标是创建一种简单的方法使用 NLTK 通过网络接口处理大语言库。

1.1.3 CV.计算机视觉

表格 5 计算机视觉常用库

库名简介
opencv1999 年由 Intel 建立。基于 BSD 许可发行的跨平台计算机视觉库,可以运行在 LinuxWindows 和[Mac OS]( https://baike.baidu.com/item/Mac OS) 操作系统上。开源计算机视觉库。
SimpleCV用于照相机、图像处理、特征提取、格式转换的简介,可读性强的接口(基于 OpenCV)。
mahotas快速计算机图像处理算法(完全使用 C++ 实现),完全基于 numpy 的数组作为它的数据类型。

1.3 AI 主流引擎/框架

表格 6 AI 主流引擎/框架比较(深度学习)

比较项CaffeTorch/PyTorchTheano/lasagneTensorFlowMXNet
主语言C++/cudaC++/Lua/cudaPython/c++/cudaPython/C++/cudaC++/cuda
从语言Python/MatlabPython- Python/R/Julia/Go
硬件CPU/GPUCPU/GPU/FPGACPU/GPUCPU/GPU/MobileCPU/GPU/Mobile
分布式NNNYY
速度中等中等
灵活性一般
文档全面全面中等全面全面
适合模型CNNCNN/RNNCNN/RNNCNN/RNN/...CNN/RNN/...
命令式NYNNY
声明式YNYYY
接口protobufLuaPythonC++/PythonPython/R/Julia/Go
网络结构分层方法分层方法符号张量图符号张量图?
可视化   tensorboard 
厂商BAIRFacebook学术界GoogleAmazon
发布/开源时间2013.92017.120072015.112015.5

备注:CUDA(Compute Unified Device Architecture),是显卡厂商 NVIDIA 推出的运算平台。

  1. 主语言和从语言:主语言是原版开发语言(底层实现语言),从语言是基于原版用别的编程语言开发并开源(如 PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深度学习框架。而 Torch 初版是用 Lua 语言实现的,比较小众,影响力较弱。PyTorch 的影响力已超过 Torch)。
  2. 编程方法有命令式和声明式编程。

     

    • 命令式是直接告诉机器怎么做 HOW,这个容易理解,机器完全机械执行命令。程序员也很容易控制处理的过程。
    • 声明式是告诉机器 WHAT,让机器去 HOW,1)如 SQL 语句是典型声明式,写了一个 SQL 语句,然后 SQL 引擎自己去优化 SQL 操作。2)如 D3.JS 画图也是声明式。3)函数工具如 map, reduce 就是典型的声明式编程得到的函数工具。声明式编程让我们专注于软件本身 WHAT,回归需求本质。
  3. 操作系统:操作系统原先 tensorflow/pytorch 早期版本都不支持 windows,只支持 linux/osx,但 2018 年陆续都支持了,因此此比较项删除。
  4. 2018 年,Keras 作者被 google 收编。2019.1,Tensorflow 2.0 发布。
  5. Theano 在深度学习框架中是祖师级的存在。它的开发始于 2007,早期开发者包括传奇人物 Yoshua Bengio 和 Ian Goodfellow。**Theano 像是一个研究平台多过是一个深度学习库。你需要从底层开始做许多工作,来创建你需要的模型。创始者之一的 Ian Goodfellow 放弃 Theano 转去谷歌开发 Tensorflow。**2014.9,Lasagen 封装了 theano,使得 theano 使用起来更简单。。
  6. Mxnet: Mxnet 是由李沐等人领导开发的非常灵活,扩展性很强的框架,被 Amazon 定为官方框架。特点:Mxnet 同时拥有命令式编程和符号式编程的特点。在 命令式编程上 MXNet 提供张量运算,进行模型的迭代训练和更新中的控制逻辑;在声明式编程中 MXNet 支持符号表达式,用来描述神经网络,并利用系统提 供的自动求导来训练模型。Mxnet 性能非常高,推荐资源不够的同学使用。

如何学习开源框架

要掌握好一个开源框架,通常需要做到以下几点:

(1) 熟练掌握不同任务数据的准备和使用。

(2) 熟练掌握模型的定义。

(3) 熟练掌握训练过程和结果的可视化。

(4) 熟练掌握训练方法和测试方法。

一个框架,官方都会开放有若干的案例,最常见的案例就是以 MNISI 数据接口+预训练模型的形式,供大家快速获得结果。
进阶从自定义数据读取接口,自定义网络的搭建,模型的训练,模型的可视化,模型的测试与部署等全方位进行掌握。

本章参考

[1]. Pandas 中文教程 https://www.w3cschool.cn/hyspo/

[2]. 12 大深度学习开源框架(caffe,tf,pytorch,mxnet 等) 快速入门项目 https://www.jianshu.com/p/16f69668ce25

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文