0%

深度学习概念

概念

深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)的子集,机器学习的目标是实现人工智能(AI,Artificial Intelligence)。

  • 深度学习 是机器学习的子集,它基于人工神经网络。 学习过程之所以是深度性的,是因为人工神经网络的结构由多个输入、输出和隐藏层构成。 每个层包含的单元可将输入数据转换为信息,供下一层用于特定的预测任务。 得益于这种结构,机器可以通过自身的数据处理进行学习。
  • 机器学习 是人工智能的子集,它采用可让机器凭借经验在任务中做出改善的技术(例如深度学习)。 学习过程基于以下步骤:
    1. 将数据馈送到算法中。 (在此步骤中,可向模型提供更多信息,例如,通过执行特征提取。)
    2. 使用此数据训练模型。
    3. 测试并部署模型。
    4. 使用部署的模型执行自动化预测任务。 (换言之,调用并使用部署的模型来接收模型返回的预测。)
  • 人工智能 是使机器能够模拟人类智能的技术。 其中包括机器学习。

逻辑关系

名词解析

框架

名称 描述 文档
Caffe Caffe(全称Convolutional Architecture for Fast Feature Embedding)是一个兼具表达性、速度和思维模块化的深度学习框架,由伯克利人工智能研究小组和伯克利视觉和学习中心开发。 https://caffe.berkeleyvision.org/
https://github.com/BVLC/caffe
Torch Torch 是一个基于 Lua 编程语言的科学计算框架,主要用于深度学习研究。 http://torch.ch/
https://github.com/torch/torch7
PyTorch PyTorch 是一个开源的 Python 机器学习库,基于 Torch,用于自然语言处理等应用程序。PyTorch 既可以看作加入了 GPU 支持的 numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。 https://pytorch.org/
https://github.com/pytorch/pytorch
Sklearn Sklearn 是一个 Python 第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。 https://scikit-learn.org/stable/
https://github.com/scikit-learn/scikit-learn
TensorFlow TensorFlow 是由 Google 团队开发的深度学习框架。TensorFlow 可以训练和运行深度神经网络,适用于图像识别、自然语言处理、视频检测等多个场景。 https://tensorflow.google.org/?hl=zh-cn
https://github.com/tensorflow/tensorflow
TensorFlow Lite TensorFlow 是由 Google 团队开发的设备端推理的开源、跨平台深度学习框架,旨在为包括 Android 和 iOS 设备、嵌入式 Linux 和微控制器在内的多个平台提供支持。它可以将 TensorFlow 预训练模型转换为可以针对速度或存储进行优化的特殊格式,帮助开发人员在移动、嵌入式和物联网设备上运行 TensorFlow 模型。 https://www.tensorflow.org/lite/?hl=zh-cn
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite
Keras Keras 是一个由 Python 编写的开源人工神经网络库,可以作为 Tensorflow、Microsoft-CNTK 和 Theano 的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。 https://www.tensorflow.org/lite/?hl=zh-cn
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite
Theano Theano 是一个开源的数值计算库,用于 Python。它由蒙特利尔大学的机器学习算法研究所(MILA)开发。尽管 Theano 在过去曾非常流行,但在 TensorFlow 和 PyTorch 等其他深度学习库的崛起下,Theano 的发展已经停滞。 https://www.tensorflow.org/lite/?hl=zh-cn
https://github.com/Theano/Theano
CoreML Core ML是苹果公司开发的一种不需要互联网连接即可进行机器学习的框架。Core ML 旨在优化在移动设备上训练机器学习的功效,且不需要互联网连接即可进行机器学习。 https://developer.apple.com/documentation/coreml
https://apple.github.io/coremltools/docs-guides/
Darknet Darknet 是一个用 C 和 CUDA 编写的开源神经网络框架。它快速,易于安装,并支持 CPU 和 GPU 计算。 http://pjreddie.com/darknet/
https://github.com/pjreddie/darknet
MXNet MXNet 是亚马逊(Amazon)选择的深度学习库,并且也许是最优秀的库之一。 https://mxnet.apache.org/
https://github.com/apache/mxnet
Jittor 清华大学开发的一个名为计图(Jittor)的深度学习框架。 https://cg.cs.tsinghua.edu.cn/jittor/
https://github.com/Jittor/jittor
NCNN 由腾讯优图实验室开发的一款深度学习框架,这是一个为手机端极致优化的高性能神经网络前向计算框架,无第三方依赖,跨平台,手机端 cpu的速度快于目前所有已知的开源框架。 https://github.com/Tencent/ncnn
TNN 由腾讯优图实验室基于 NCNN 开发的高性能、轻量级神经网络推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。 https://tnn.readthedocs.io/zh-cn/stable/cn/front_page.html
https://github.com/Tencent/TNN
MNN MNN 是阿里巴巴淘系技术开源的深度学习框架,支持了阿里巴巴70+场景下的AI应用。 https://www.mnn.zone/
https://github.com/alibaba/MNN
PaddlePaddle PaddlePaddle 是百度开源的深度学习平台,英文名为 PaddlePaddle,中文名为飞桨。 https://www.paddlepaddle.org.cn/
https://github.com/PaddlePaddle/Paddle
Paddle Lite Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及边缘端在内的多种硬件平台。 https://www.paddlepaddle.org.cn/lite
https://github.com/PaddlePaddle/Paddle-Lite
X-DeepLearning X-Deep Learning(下文简称XDL)由阿里巴巴旗下大数据营销平台阿里妈妈基于自身广告业务自主研发的业界首个面向广告、推荐、搜索等高维稀疏数据场景的深度学习开源框架。 https://github.com/alibaba/x-deeplearning
Tengine Tengine 由 OPEN AI LAB 主导开发,该项目实现了深度学习神经网络模型在嵌入式设备上的快速、高效部署需求。 http://www.openailab.com/int/ability/list2.html
https://github.com/OAID/Tengine
MACE MACE是小米针对移动异构计算平台优化的深度学习推理框架。 https://mace.readthedocs.io/en/latest/
https://github.com/XiaoMi/mace

算法

名称 分类 描述 文档
ONNX 标准 ONNX(开放神经网络交换)是一个用于表示深度学习模型的开放标准。它的主要目的是促进不同框架之间的互操作性,使得在训练完毕后,无论你使用何种训练框架(如TensorFlow、PyTorch、OneFlow、Paddle等),都可以将这些框架的模型统一转换为ONNX这种标准格式进行存储。 https://onnx.ai/
https://github.com/onnx/onnx
YOLO 算法 YOLO(You Only Look Once)是一种目标检测算法,由 Joseph Redmon 等人在 2016 年提出。 https://www.ultralytics.com/zh/yolo
https://github.com/ultralytics
YOLO-Fastest 算法 YOLO-Fastest 是一种超轻量级、高速的目标检测算法,基于 YOLO(You Only Look Once)框架。它旨在在各种平台上实现实时性能,包括移动手机、嵌入式设备和基于 ARM 的终端。 https://github.com/dog-qiuqiu/Yolo-FastestV2
NANODet 算法 NANODet 是一种超轻量级、高速的目标检测算法,基于 YOLO(You Only Look Once)框架。它旨在在各种平台上实现实时性能,包括移动手机、嵌入式设备和基于 ARM 的终端。 https://github.com/RangiLyu/nanodet

硬件

名称 描述 文档
MKL Intel MKL(Intel Math Kernel Library)是一个针对科学、工程和金融应用进行优化的数学函数库。它包含了高度优化的核心数学函数,如BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅里叶变换和向量数学等。Intel MKL 旨在提高计算性能,适用于 Intel CPU 架构。 https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/onemkl-documentation.html
CUDA CUDA(Compute Unified Device Architecture)是 NVIDIA 在 2007 年推出的 GPU 通用计算编程框架,允许开发者利用 GPU 的并行计算能力来解决复杂的计算问题。 https://developer.nvidia.cn/cuda-zone
https://developer.nvidia.cn/cuda-toolkit
cuDNN cuDNN(CUDA Deep Neural Network library)是由 NVIDIA 开发的一个深度学习 GPU 加速库。它旨在提供高效、标准化的原语,以加速深度学习框架(例如TensorFlow、PyTorch)在 NVIDIA GPU 上的运算。 https://developer.nvidia.cn/cudnn
ROCm ROCm(Radeon Open Compute)是一个用于 GPU 计算的开源堆栈,主要由开源软件组成。AMD 是其主要的发起者。 https://rocmdocs.amd.com/en/latest/index.html
RKNN RKNPU 是Rockchip(瑞芯微)推出的一款针对神经网络处理单元(NPU)的开源软件框架,旨在为开发者提供一个灵活且高效的工具集,用于在基于Rockchip芯片的设备上进行深度学习和人工智能应用开发。 https://github.com/airockchip/rknn-toolkit2

软件

名称 分类 描述 文档
Anaconda 开发环境 Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。 https://www.anaconda.com/download
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
Miniconda 开发环境 Miniconda 是一个 Anaconda 的轻量级替代,默认只包含了 python 和 conda,但是可以通过 pip 和 conda 来安装所需要的包。 https://docs.anaconda.com/free/miniconda/index.html
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
Conda 开发环境 Conda 是一个跨平台的软件包和环境管理工具,支持多种语言(包括 Python、C、R 等),不仅限于 Python 包的管理;而Python的 pip 包管理器,专注于Python包的管理。 -
PyCharm 开发环境 PyCharm 是由 JetBrains 公司开发的一款强大的 Python 集成开发环境(IDE)。它提供了丰富的功能,帮助开发者在使用Python语言进行开发时提高效率。 https://www.jetbrains.com/pycharm/?var=1
NumPy 工具库类 NumPy(Numerical Python) 是一个功能强大的 Python 库,用于处理和操作多维数组和矩阵。它提供了许多高效的数值计算和数据操作功能。 https://numpy.org/
https://github.com/numpy/numpy
Streamlit 工具库类 Streamlit 是一个用于机器学习、数据可视化的 Python 库,它能几行代码就构建出一个精美的在线应用。 https://streamlit.io/
https://github.com/streamlit/streamlit
Netron 辅助工具 用于神经网络、深度学习和机器学习模型的可视化工具。 https://netron.app/
https://github.com/lutzroeder/netron
OpenCV 辅助工具 OpenCV(Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软件库。它旨在为计算机视觉应用提供通用基础设施,并加速商业产品中机器感知的使用。OpenCV 包含超过 2500 个优化过的算法,包括经典和最先进的计算机视觉和机器学习算法。 https://opencv.org/
https://github.com/opencv/opencv

资料

  • 本文作者: 6x
  • 本文链接: https://6xyun.cn/article/204
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!