Neuromorphic-Computing-Guide

GitHub
569 80 非常简单 1 次阅读 今天语言模型其他
AI 解读 由 AI 自动生成,仅供参考

Neuromorphic-Computing-Guide 是一份专为类脑计算领域打造的开源学习指南,旨在帮助开发者系统掌握模仿生物神经架构的超大规模集成电路(VLSI)设计与工程流程。面对类脑计算这一融合神经科学、电子工程与人工智能的交叉学科,初学者往往面临知识碎片化、入门门槛高的问题,而这份指南通过结构化的资源整理,有效解决了从理论基础到工程实践的路径规划难题。

它非常适合希望深入该领域的研究人员、硬件工程师、算法开发者以及相关专业学生使用。内容不仅涵盖了开发所需的工具库、框架和算法,还详细梳理了机器学习、深度学习、强化学习、计算机视觉及机器人学等应用场景。其独特的技术亮点在于构建了完整的知识体系:从基础的电荷、电路、磁场物理原理讲起,逐步过渡到复杂的神经网络类型与生物信息学应用,并提供了丰富的在线课程、书籍和视频资源。无论是想理解底层模拟电路设计,还是探索上层智能应用,Neuromorphic-Computing-Guide 都能提供高效、权威的支持,是进入类脑计算世界的理想向导。

使用场景

某芯片设计团队的初级工程师正试图构建一款模仿生物视觉皮层的低功耗事件驱动相机传感器,但在跨学科知识整合上遭遇了巨大阻碍。

没有 Neuromorphic-Computing-Guide 时

  • 知识碎片化严重:工程师需要在学术论文、分散的论坛帖子和过时的教科书中反复搜索,难以系统理解从库仑定律到神经形态电路设计的完整工程链路。
  • 工具选型盲目:面对众多类脑计算框架和 VLSI 设计库,缺乏权威的对比指南,导致团队花费数周试错才找到适合模拟生物架构的工具。
  • 学习曲线陡峭:由于缺少结构化的在线课程推荐和核心算法解析,新人往往卡在“如何用电容电路模拟神经元放电”等基础物理实现上,项目进度严重滞后。
  • 领域壁垒难破:团队成员懂电路的不懂深度学习,懂 AI 的不懂电磁学,缺乏一份能同时涵盖生物信息学、机器人学与模拟电路设计的综合参考,协作效率极低。

使用 Neuromorphic-Computing-Guide 后

  • 构建系统化知识树:指南提供了从基础电学原理到大规模集成电路(VLSI)系统的全景路线图,工程师能快速掌握模仿神经生物架构的核心工程流程。
  • 精准匹配技术栈:通过其整理的工具、库和框架清单,团队迅速锁定了最适合事件驱动视觉开发的开源方案,将环境搭建时间从数周缩短至几天。
  • 高效技能进阶:利用推荐的专项在线课程和算法详解,新人迅速攻克了模拟电路与脉冲神经网络(SNN)结合的难点,快速进入核心代码开发阶段。
  • 打破学科孤岛:指南将计算机视觉、强化学习与底层物理电路知识融会贯通,成为团队通用的“翻译字典”,显著提升了硬件与算法工程师的协作默契。

Neuromorphic-Computing-Guide 通过提供一站式的跨学科工程指引,将原本混乱的探索过程转化为高效的标准化开发流程,极大降低了类脑芯片的研发门槛。

运行环境要求

GPU

未说明

内存

未说明

依赖
notes该项目并非一个可直接运行的软件工具或代码库,而是一份关于神经形态计算(Neuromorphic Computing)的综合指南和资源列表。它主要包含相关概念介绍、开发资源链接、在线课程、书籍推荐、视频以及涵盖算法、机器学习、机器人学等领域的知识目录。虽然目录中提到了 CUDA、Python、C/C++ 和 MATLAB 等开发环境,但并未提供具体的安装脚本、依赖包版本要求或硬件运行指标。用户需根据指南中引用的具体子项目(如 Intel Loihi、PyTorch 教程等)单独查询其运行环境需求。
python未说明
Neuromorphic-Computing-Guide hero image

快速开始


神经形态计算指南

followers

维护中 最近一次提交

本指南涵盖了神经形态计算,包括其应用、库和工具,旨在帮助您更高效地进行神经形态计算开发。

注:您可以在 VSCode 中使用便捷的扩展 Markdown PDF 轻松将此 Markdown 文件转换为 PDF。 此外,请查看 mdBook 版本 Neuromorphic Computing Guide mdBook(特别感谢 jonathanwoollett-light)



神经网络的类型

目录

  1. 开始使用神经形态计算

  2. 神经形态计算工具、库和框架

  3. 算法

  4. 机器学习

  5. 深度学习开发

  6. 强化学习开发

  7. 计算机视觉开发

  8. 自然语言处理 (NLP) 开发

  9. 生物信息学

  10. 机器人技术开发

  11. 电荷、电场和电势

    • 电荷与静电力(库仑定律):电荷、电场和电势
    • 电场:电荷、电场和电势
    • 电势能、电势和电压:电荷、电场和电势
  12. 电路

    • 欧姆定律及含电阻的电路:电路
    • 含电容器的电路:电路
  13. 磁力、磁场和法拉第定律

    • 磁铁与磁力:磁力、磁场和法拉第定律
    • 电流产生的磁场:磁力、磁场和法拉第定律
    • 电动机:磁力、磁场和法拉第定律
    • 磁通量与法拉第定律
  14. 电磁波与干涉

    • 电磁波简介:电磁波与干涉
    • 电磁波的干涉
  15. CUDA 开发

  16. MATLAB 开发

  17. Python 开发

  18. C/C++ 开发

开始使用神经形态计算

返回顶部

神经形态计算 是利用包含电子 模拟电路超大规模集成电路 (VLSI) 系统来模拟人脑和神经系统中的神经生物学架构。


英特尔 Loihi 2,其第二代神经形态研究芯片。


BrainChip 开发的 Akida 神经形态片上系统 (NSoC)。

开发者资源

返回顶部

在线培训课程

返回顶部

图书

返回顶部

YouTube 视频

返回顶部

仿生计算工具、库和框架

返回顶部

Lava 是一个开源软件框架,用于开发受神经启发的应用程序,并将其映射到仿生硬件上。Lava 为开发者提供了工具和抽象层,使他们能够开发充分利用神经计算原理的应用程序。通过这种方式进行约束,就像大脑一样,Lava 应用程序能够让仿生平台智能地处理、学习并响应真实世界的数据,同时在能源效率和速度方面相比传统计算机架构有显著提升。

Lava DLSLAYER 的增强版本。一些改进包括对循环网络结构的支持、更丰富的神经元模型和突触连接类型(完整功能列表请参见 这里)。该版本的 SLAYER 同样基于 PyTorch 深度学习框架构建,与前代版本类似。

Lava 动态神经场(DNF) 是一类神经吸引子网络,能够在相互连接的神经元群体中产生稳定的活动模式。这些活动模式构成了神经表征、决策、工作记忆和学习的基础。DNF 是 动态场理论 的基本组成单元,该理论是一种用于在闭环行为回路中建模认知过程的数学和概念框架。

神经形态约束优化 是一个利用神经形态硬件进行约束优化的求解器库。约束优化旨在寻找使给定目标函数最小化或最大化的同时满足约束条件的输入变量值。这类问题广泛存在于各个科学领域和工业部门中。约束优化是神经形态计算的一个有前景的应用领域,因为它与脉冲神经网络的动力学特性天然契合

NeuroKit2 是一个用户友好的 Python 软件包,提供了对先进生物信号处理流程的便捷访问。

神经数字信号处理(NeuroDSP)工具箱 是一系列将数字信号处理应用于神经时间序列的方法集合,其中包括专为分析神经时间序列而提出的算法。此外,它还包含用于生成合理神经时间序列模拟的工具。

Norse 是一个基于 PyTorch 的深度学习工具,支持脉冲神经网络(SNN)。它通过为受生物启发的神经组件提供原语扩展了 PyTorch,从而带来两大优势:基于 PyTorch 的现代化且成熟的基础设施,以及与深度学习兼容的脉冲神经网络组件。

JAX 是将 AutogradXLA 结合在一起的高性能数值计算和机器学习研究平台。它为 Python+NumPy 程序提供了可组合的变换功能,例如求导、向量化、并行化、即时编译至 GPU/TPU 等。

XLA(加速线性代数) 是一种面向线性代数领域的域特定编译器,能够在几乎不修改源代码的情况下加速 TensorFlow 模型。

MNE-Python 是一个开源的 Python 软件包,用于探索、可视化和分析人类神经生理数据,如脑磁图(MEG)、脑电图(EEG)、深部脑电图(sEEG)、皮层脑电图(ECoG)等。它包含用于数据输入输出、预处理、可视化、源定位、时频分析、连通性分析、机器学习和统计分析的模块。

Nengo 是一个用于构建和仿真大规模神经模型的 Python 库。只需几行代码,即可创建复杂的脉冲神经网络和非脉冲神经网络仿真,并提供合理的默认设置。

Keras 是一个用 Python 编写的高级神经网络 API,可在 TensorFlow、CNTK 或 Theano 之上运行。它专注于支持快速实验,能够运行在 TensorFlow、Microsoft Cognitive Toolkit、R、Theano 或 PlaidML 等框架之上。

ONNX Runtime 是一个跨平台、高性能的机器学习推理和训练加速器。它支持来自 PyTorch、TensorFlow/Keras 等深度学习框架以及 scikit-learn、LightGBM、XGBoost 等经典机器学习库的模型。

TorchScript 是一种将 PyTorch 代码转换为可序列化和可优化模型的方式。这使得任何 TorchScript 程序都可以从 Python 进程中保存下来,并在没有 Python 依赖的环境中加载运行。

TorchServe 是一个灵活且易于使用的工具,用于部署 PyTorch 模型的服务。

TensorFlow 模型优化工具包 是一套工具,供新手和高级用户优化机器学习模型以用于部署和执行。它提供多种支持的技术,包括量化和稀疏化权重剪枝等方法,并配有专门为 Keras 构建的 API。

DeepSpars 是一个推理运行时,可在 CPU 上实现 GPU 级别的性能,并提供将机器学习集成到应用程序中的 API。

Intel® Neural Compressor 是一款低精度优化工具,旨在为不同深度学习框架提供统一的 API,以实现低精度量化、稀疏化、剪枝、知识蒸馏等网络压缩技术,从而追求最佳的推理性能。

Kornia 是一个可微分计算机视觉库,由一系列例程和可微分模块组成,用于解决通用的计算机视觉问题。

PyTorch-NLP 是一个用于 Python 自然语言处理(NLP)的库。它紧跟最新研究进展,自设计之初便致力于支持快速原型开发。PyTorch-NLP 提供预训练的词嵌入、采样器、数据集加载器、评估指标、神经网络模块和文本编码器。

Ignite 是一个高级库,用于在 PyTorch 中灵活透明地辅助神经网络的训练和评估。

Hummingbird 是一个将训练好的传统机器学习模型编译为张量计算的库。它允许用户无缝利用神经网络框架(如 PyTorch)来加速传统机器学习模型。

深度图库(DGL) 是一个基于 PyTorch 等框架构建的 Python 软件包,旨在简化图神经网络模型族的实现。

TensorLy 是一个用于 Python 中张量方法和深层张量化神经网络的高级 API,旨在使张量学习变得简单。

GPyTorch 是一个基于 PyTorch 实现的高斯过程库,专为构建可扩展、灵活的高斯过程模型而设计。

Poutyne 是一个类似 Keras 的 PyTorch 框架,能够处理训练神经网络时所需的大量样板代码。

Forte 是一个用于构建自然语言处理流水线的工具包,具有可组合的组件、便捷的数据接口以及跨任务交互功能。

TorchMetrics 是一个面向分布式、可扩展 PyTorch 应用的机器学习指标库。

Captum 是一个开源、可扩展的模型可解释性库,基于 PyTorch 构建。

Transformer 是一个最先进的自然语言处理框架,支持 PyTorch、TensorFlow 和 JAX。

Hydra 是一个用于优雅配置复杂应用的框架。

Accelerate 提供了一种简单的方法,用于在多 GPU、TPU 或混合精度环境下训练和使用 PyTorch 模型。

Ray 是一个快速且简单的框架,用于构建和运行分布式应用。

ParlAI 是一个统一的平台,用于共享、训练和评估多种任务下的对话模型。

PyTorchVideo 是一个用于视频理解研究的深度学习库。它提供了多种专注于视频的模型、数据集、训练流水线等。

Opacus 是一个允许使用差分隐私训练 PyTorch 模型的库。

PyTorch Lightning 是一个类似 Keras 的 PyTorch 机器学习库。它将核心的训练和验证逻辑交给你,而自动完成其余部分。

PyTorch Geometric Temporal 是 PyTorch Geometric 的一个时间序列(动态)扩展库。

PyTorch Geometric 是一个用于处理图、点云和流形等不规则输入数据的深度学习库。

Raster Vision 是一个用于卫星和航空影像深度学习的开源框架。

CrypTen 是一个隐私保护机器学习框架,旨在让 ML 研究人员更容易使用安全计算技术。

Optuna 是一个开源超参数优化框架,用于自动化超参数搜索。

Pyro 是一种通用的概率编程语言 (PPL),用 Python 编写,后端由 PyTorch 支持。

Albumentations 是一个快速且可扩展的图像增强库,适用于分类、分割、目标检测和姿态估计等多种计算机视觉任务。

Skorch 是一个面向 PyTorch 的高级库,完全兼容 scikit-learn 接口。

MMF 是 Facebook AI Research (FAIR) 提供的一个用于视觉与语言多模态研究的模块化框架。

AdaptDL 是一个资源自适应的深度学习训练和调度框架。

Polyaxon 是一个用于构建、训练和监控大规模深度学习应用的平台。

TextBrewer 是一个基于 PyTorch 的知识蒸馏工具包,专用于自然语言处理。

AdverTorch 是一个用于对抗鲁棒性研究的工具箱,包含生成对抗样本和防御攻击的模块。

NeMo 是一个用于对话式 AI 的工具包。

ClinicaDL 是一个用于阿尔茨海默病可重复分类的框架。

Stable Baselines3 (SB3) 是一组可靠的强化学习算法实现,基于 PyTorch。

TorchIO 是一套工具,用于高效地读取、预处理、采样、增强和写入 3D 医学图像,适用于基于 PyTorch 的深度学习应用。

PySyft 是一个用于加密、隐私保护深度学习的 Python 库。

Flair 是一个非常简单的框架,用于实现最先进的自然语言处理 (NLP) 技术。

Glow 是一个 ML 编译器,能够在不同硬件平台上加速深度学习框架的性能。

FairScale 是一个 PyTorch 扩展库,用于在单机或多机/节点上进行高性能和大规模训练。

MONAI 是一个深度学习框架,为医疗影像训练工作流的开发提供领域优化的基础能力。

PFRL 是一个深度强化学习库,使用 PyTorch 在 Python 中实现了多种最先进的深度强化学习算法。

Einops 是一种灵活而强大的张量操作库,能够编写出清晰且可靠的代码。

PyTorch3D 是一个深度学习库,为使用 PyTorch 进行 3D 计算机视觉研究提供高效、可重用的组件。

Ensemble Pytorch 是一个面向 PyTorch 的统一集成框架,用于提升深度学习模型的性能和鲁棒性。

Lightly 是一个用于自监督学习的计算机视觉框架。

Higher 是一个库,能够以接近原生 PyTorch 的方式实现任意复杂的基于梯度的元学习算法和嵌套优化循环。

Horovod 是一个用于深度学习框架的分布式训练库。Horovod 的目标是使分布式深度学习既快速又易于使用。

PennyLane 是一个用于量子机器学习、自动微分以及混合量子-经典计算优化的库。

Detectron2 是 FAIR 的下一代目标检测和分割平台。

Fastai 是一个简化了现代最佳实践下快速、准确训练神经网络的库。

算法

返回顶部

【模糊逻辑】(Fuzzy logic) 是一种启发式方法,它允许更高级的决策树处理,并能更好地与基于规则的编程相结合。


模糊逻辑系统的架构。来源:ResearchGate

【支持向量机(SVM)】(Support Vector Machine, SVM) 是一种监督学习模型,使用分类算法解决二分类问题。


支持向量机(SVM)。来源:OpenClipArt

【神经网络】(Neural networks) 是机器学习的一个子集,也是深度学习算法的核心。其名称和结构灵感来源于人脑,模仿了生物神经元/节点之间相互传递信号的过程。


深度神经网络。来源:IBM

【卷积神经网络(R-CNN)】(Convolutional Neural Networks, R-CNN) 是一种目标检测算法,它首先对图像进行分割以找到潜在的相关边界框,然后运行检测算法来识别这些边界框中最可能的目标。


卷积神经网络。来源:CS231n

【循环神经网络(RNNs)】(Recurrent neural networks, RNNs) 是一种人工神经网络,专门用于处理序列数据或时间序列数据。


循环神经网络。来源:Slideteam

【多层感知器(MLPs)】(Multilayer Perceptrons, MLPs) 是由多层【感知器】(Perceptron) 组成的多层神经网络,每一层都带有阈值激活函数。


多层感知器。来源:DeepAI

【随机森林】(Random forest) 是一种常用的机器学习算法,它通过结合多个决策树的输出来得出最终结果。森林中的每棵决策树都不会被修剪,因此可以灵活地进行抽样和预测选择。由于其易用性和灵活性,随机森林在分类和回归问题中都得到了广泛应用。


随机森林。来源:wikimedia

【决策树】(Decision trees) 是用于分类和回归的树状结构模型。


决策树。来源:CMU

【朴素贝叶斯】(Naive Bayes) 是一种用于解决分类问题的机器学习算法。它基于【贝叶斯定理】(Bayes' theorem),并假设各个特征之间具有较强的独立性。


贝叶斯定理。来源:mathisfun

机器学习

返回顶部


机器学习学习资源

机器学习是人工智能(AI)的一个分支,专注于使用能够从数据中学习并随着时间推移不断提高准确性的算法来构建应用程序,而无需显式编程。

斯坦福大学在Coursera上的机器学习课程

AWS机器学习(ML)培训与认证课程

Udacity微软Azure机器学习奖学金项目

微软认证:Azure 数据科学家助理

微软认证:Azure AI 工程师助理

Azure 机器学习的训练与部署

谷歌云培训中的机器学习和人工智能学习

谷歌云机器学习速成课程

JupyterLab

在亚马逊 SageMaker 临时实例上调度 Jupyter 笔记本

如何在 Azure 机器学习工作区中运行 Jupyter 笔记本

Udemy在线机器学习课程

Coursera在线机器学习课程

edX在线课程与课堂学习机器学习

机器学习框架、库与工具

TensorFlow 是一个端到端的开源机器学习平台。它拥有全面且灵活的工具、库和社区资源生态系统,使研究人员能够推动机器学习领域的前沿发展,同时也让开发者能够轻松构建和部署基于机器学习的应用程序。

Keras 是一个用 Python 编写的高级神经网络 API,可运行在 TensorFlow、CNTK 或 Theano 之上。它旨在支持快速实验,目前也支持 TensorFlow、Microsoft Cognitive Toolkit、R、Theano 和 PlaidML 等后端。

PyTorch 是一个用于处理不规则输入数据(如图、点云和流形)的深度学习库,主要由 Facebook 的 AI 研究实验室开发。

亚马逊 SageMaker 是一项完全托管的服务,使每位开发者和数据科学家都能快速构建、训练和部署机器学习(ML)模型。SageMaker 简化了机器学习流程中的各个步骤,从而更容易开发高质量的模型。

Azure Databricks 是一种基于 Apache Spark 的快速协作大数据分析服务,专为数据科学和数据工程设计。Azure Databricks 可在几分钟内设置好 Apache Spark 环境,实现自动扩展,并在交互式工作区中进行共享项目协作。Azure Databricks 支持 Python、Scala、R、Java 和 SQL,以及 TensorFlow、PyTorch 和 scikit-learn 等数据科学框架和库。

微软认知工具包(CNTK) 是一个面向商业级分布式深度学习的开源工具包。它通过有向图将神经网络描述为一系列计算步骤。CNTK 允许用户轻松实现并组合流行的模型类型,如前馈 DNN、卷积神经网络(CNN)和循环神经网络(RNN/LSTM)。CNTK 实现了随机梯度下降(SGD,误差反向传播)学习,并支持自动微分及跨多个 GPU 和服务器的并行化。

苹果 CoreML 是一个帮助将机器学习模型集成到应用中的框架。Core ML 为所有模型提供统一的表示形式。您的应用可以使用 Core ML API 和用户数据来进行预测,也可以在用户设备上对模型进行训练或微调。模型是将机器学习算法应用于一组训练数据后的结果,您可以通过模型对新的输入数据做出预测。

Tensorflow_macOS 是针对 macOS 11.0 及以上版本优化的 TensorFlow 及其扩展库版本,利用苹果的 ML Compute 框架加速运行。

Apache OpenNLP 是一个基于机器学习的开源库,用于自然语言文本处理。它提供了一系列 API,适用于诸如命名实体识别句子检测词性标注分词特征提取组块分析句法分析以及指代消解等场景。

Apache Airflow 是一个由社区创建的开源工作流管理平台,用于以编程方式编写、调度和监控工作流。Airflow 具有模块化架构,使用消息队列来协调任意数量的工作节点,具备可扩展性,能够无限扩展。

开放神经网络交换格式(ONNX) 是一个开放生态系统,使 AI 开发人员能够在项目演进过程中选择合适的工具。ONNX 提供了一种面向深度学习和传统机器学习的开源模型格式,定义了一个可扩展的计算图模型,以及内置算子和标准数据类型的规范。

Apache MXNet 是一个旨在兼顾高效与灵活性的深度学习框架。它允许混合使用符号式和命令式编程,从而最大化效率和生产力。MXNet 的核心是一个动态依赖调度器,能够实时自动并行化符号式和命令式操作。在其之上还有一层图优化机制,使符号式执行既快速又节省内存。MXNet 具有良好的可移植性和轻量级特性,可以有效地扩展到多 GPU 和多台机器上。支持 Python、R、Julia、Scala、Go、JavaScript 等多种语言。

AutoGluon 是一个用于深度学习的工具包,能够自动化机器学习任务,使您在应用中轻松实现强大的预测性能。只需几行代码,即可在表格数据、图像和文本数据上训练并部署高精度的深度学习模型。

Anaconda 是一个非常流行的数据科学平台,专为机器学习和深度学习设计,帮助用户开发、训练和部署模型。

PlaidML 是一款先进且可移植的张量编译器,能够在笔记本电脑、嵌入式设备或其他计算硬件支持不足或软件栈存在令人不满的许可限制的设备上运行深度学习。

OpenCV 是一个高度优化的库,专注于实时计算机视觉应用。其 C++、Python 和 Java 接口支持 Linux、macOS、Windows、iOS 和 Android 系统。

Scikit-Learn 是一个基于 SciPy、NumPy 和 matplotlib 构建的 Python 机器学习模块,使得许多流行的机器学习算法的稳健而简单的实现变得更加容易。

Weka 是一款开源机器学习软件,可通过图形用户界面、标准终端应用程序或 Java API 访问。它广泛应用于教学、研究和工业领域,内置了大量用于标准机器学习任务的工具,并且还能透明地访问 scikit-learn、R 和 Deeplearning4j 等知名工具箱。

Caffe 是一个以表达性、速度和模块化为核心设计的深度学习框架。它由伯克利人工智能研究院 (BAIR)/伯克利视觉与学习中心 (BVLC) 以及社区贡献者共同开发。

Theano 是一个 Python 库,允许高效地定义、优化和评估涉及多维数组的数学表达式,并与 NumPy 紧密集成。

nGraph 是一个面向深度学习的开源 C++ 库、编译器和运行时。nGraph 编译器旨在加速使用任何深度学习框架开发 AI 工作负载,并将其部署到各种硬件目标上。它为 AI 开发人员提供了自由度、高性能和易用性。

NVIDIA cuDNN 是一个针对 深度神经网络 的 GPU 加速原语库。cuDNN 提供了对前向和反向卷积、池化、归一化和激活层等标准操作的高度优化实现。cuDNN 能够加速广泛使用的深度学习框架,包括 Caffe2ChainerKerasMATLABMxNetPyTorchTensorFlow 等。

Jupyter Notebook 是一个开源 Web 应用程序,允许创建和共享包含实时代码、公式、可视化内容和叙述性文本的文档。Jupyter 广泛应用于数据清洗与转换、数值模拟、统计建模、数据可视化、数据科学和机器学习等领域。

Apache Spark 是一个用于大规模数据处理的统一分析引擎。它提供 Scala、Java、Python 和 R 等高级 API,并配备优化的执行引擎,支持用于数据分析的通用计算图。此外,Spark 还支持丰富的高层工具,包括用于 SQL 和 DataFrame 的 Spark SQL、用于机器学习的 MLlib、用于图处理的 GraphX 以及用于流处理的 Structured Streaming。

Apache Spark Connector for SQL Server and Azure SQL 是一个高性能连接器,使您能够在大数据分析中使用事务型数据,并将结果持久化以供即席查询或报告使用。该连接器允许您将任何 SQL 数据库(无论是在本地还是云端)用作 Spark 作业的输入数据源或输出数据接收端。

Apache PredictionIO 是一个面向开发者、数据科学家和最终用户的开源机器学习框架。它支持事件收集、算法部署、评估以及通过 REST API 查询预测结果。该框架基于 Hadoop、HBase(以及其他数据库)、Elasticsearch 和 Spark 等可扩展的开源服务,并实现了所谓的 Lambda 架构。

Cluster Manager for Apache Kafka (CMAK) 是一个用于管理 Apache Kafka 集群的工具。

BigDL 是一个面向 Apache Spark 的分布式深度学习库。借助 BigDL,用户可以将深度学习应用编写为标准的 Spark 程序,直接在现有的 Spark 或 Hadoop 集群上运行。

Eclipse Deeplearning4J (DL4J) 是一组项目,旨在满足基于 JVM(Scala、Kotlin、Clojure 和 Groovy)的深度学习应用的所有需求。这意味着从原始数据开始,无论其来源和格式如何,都可以进行加载和预处理,进而构建和调优各种简单和复杂的深度学习网络。

Tensorman 是由 System76 开发的一款用于便捷管理 TensorFlow 容器的实用工具。Tensorman 可以让 TensorFlow 在一个与系统其他部分隔离的环境中运行。这种虚拟环境可以独立于基础系统运行,从而使您能够在任何支持 Docker 运行时的 Linux 发行版上使用任意版本的 TensorFlow。

Numba 是由 Anaconda, Inc. 赞助的一个开源、支持 NumPy 的 Python 优化编译器。它利用 LLVM 编译器项目,将 Python 语法转换为机器码。Numba 可以编译大量以数值计算为主的 Python 代码,包括许多 NumPy 函数。此外,Numba 还支持循环的自动并行化、生成 GPU 加速代码,以及创建 ufunc 和 C 回调函数。

Chainer 是一个基于 Python 的深度学习框架,旨在提供灵活性。它提供了基于“定义即运行”方法(动态计算图)的自动微分 API,以及面向对象的高级 API,用于构建和训练神经网络。Chainer 还通过 CuPy 支持 CUDA/cuDNN,从而实现高性能的训练和推理。

XGBoost 是一个经过优化的分布式梯度提升库,设计目标是高效、灵活且可移植。它在梯度提升框架下实现了多种机器学习算法。XGBoost 提供了一种并行树提升技术(也称为 GBDT 或 GBM),能够快速而准确地解决许多数据科学问题。它支持在多台机器上进行分布式训练,包括 AWS、GCE、Azure 和 Yarn 集群。此外,它还可以与 Flink、Spark 等云数据流系统集成。

cuML 是一套库的集合,实现了机器学习算法和数学基础函数,并与其他 RAPIDS 项目共享兼容的 API。cuML 使数据科学家、研究人员和软件工程师能够在 GPU 上运行传统的表格型机器学习任务,而无需深入了解 CUDA 编程细节。在大多数情况下,cuML 的 Python API 与 scikit-learn 的 API 完全一致。

深度学习开发

返回顶部


深度学习学习资源

深度学习 是机器学习的一个子集,本质上是一种具有三个或更多层的神经网络。这些神经网络试图模拟人脑的行为,尽管远未达到人脑的能力水平。这使得神经网络能够从大量数据中“学习”。学习可以是监督式半监督式无监督式

深度学习在线课程 | NVIDIA

顶级深度学习在线课程 | Coursera

顶级深度学习在线课程 | Udemy

通过在线课程和教程学习深度学习 | edX

深度学习在线课程纳米学位 | Udacity

Andrew Ng 的机器学习课程 | Coursera

Andrew Ng 的生产级机器学习工程(MLOps)课程 | Coursera

数据科学:Python 中的深度学习与神经网络 | Udemy

使用 Python 理解机器学习 | Pluralsight

如何思考机器学习算法 | Pluralsight

深度学习课程 | 斯坦福大学在线

深度学习 - UW 职业与继续教育

深度学习在线课程 | 哈佛大学

面向所有人的机器学习课程 | DataCamp

人工智能专家课程:白金版 | Udemy

顶级人工智能在线课程 | Coursera

通过在线课程和教程学习人工智能 | edX

人工智能计算机科学专业证书 | edX

人工智能纳米学位项目

人工智能(AI)在线课程 | Udacity

人工智能入门课程 | Udacity

面向物联网开发者的边缘 AI 课程 | Udacity

推理:目标树与基于规则的专家系统 | MIT 开放课程

专家系统与应用人工智能

自主系统 - 微软人工智能

Microsoft Project Bonsai 入门

使用微软自主系统平台进行机器教学

自主海事系统培训 | AMC Search

顶级自动驾驶汽车在线课程 | Udemy

应用控制系统 1:自动驾驶汽车:数学 + PID + MPC | Udemy

通过在线课程和教程学习自主机器人技术 | edX

人工智能纳米学位项目

自主系统在线课程与项目 | Udacity

面向物联网开发者的边缘 AI 课程 | Udacity

自主系统 MOOC 及免费在线课程 | MOOC List

机器人与自主系统研究生项目 | 斯坦福大学在线

移动自主系统实验室 | MIT 开放课程

深度学习工具、库与框架

NVIDIA cuDNN 是一个用于深度神经网络的 GPU 加速原语库。cuDNN 提供了针对标准操作的高度优化实现,例如前向和反向卷积、池化、归一化以及激活层。cuDNN 可以加速广泛使用的深度学习框架,包括 Caffe2ChainerKerasMATLABMxNetPyTorchTensorFlow

NVIDIA DLSS(深度学习超级采样) 是一种基于时间的图像超分辨率 AI 渲染技术,它利用 GeForce RTX™ GPU 上专用的 Tensor Core AI 处理器来提升图形性能。DLSS 利用深度学习神经网络的强大功能来提高帧率,并为您的游戏生成清晰、精美的图像。

AMD FidelityFX 超分辨率(FSR) 是一种开源、高质量的解决方案,能够从低分辨率输入生成高分辨率帧。它采用了一系列前沿的深度学习算法,尤其注重边缘质量的提升,相比直接以原生分辨率渲染,性能可大幅提升。FSR 为一些计算成本较高的渲染任务(如 AMD RDNA™ 和 AMD RDNA™ 2 架构上的硬件光线追踪)带来了“实用的性能提升”。

Intel Xe 超采样(XeSS) 是一种基于时间的图像超分辨率 AI 渲染技术,能够显著提升图形性能,类似于 NVIDIA 的 DLSS(深度学习超级采样)。Intel 的 Arc GPU 架构(2022 年初发布)将配备专门用于运行 XeSS 的 Xe 核心。这些 GPU 还拥有 Xe Matrix eXtenstions 矩阵(XMX)引擎,用于硬件加速的 AI 处理。尽管 XeSS 也可以在没有 XMX 的设备上运行,包括集成显卡,但非 Intel 显卡上的性能会较低,因为其依赖于 DP4a 指令

Jupyter Notebook 是一款开源 Web 应用程序,允许用户创建和共享包含实时代码、公式、可视化内容及叙述性文本的文档。Jupyter 广泛应用于数据清洗与转换、数值模拟、统计建模、数据可视化、数据科学和机器学习等领域。

Apache Spark 是一个用于大规模数据处理的统一分析引擎。它提供了 Scala、Java、Python 和 R 等高级 API,并配备了优化的执行引擎,支持通用计算图进行数据分析。此外,Spark 还提供丰富的高级工具集,包括用于 SQL 和 DataFrame 的 Spark SQL、用于机器学习的 MLlib、用于图处理的 GraphX 以及用于流式处理的 Structured Streaming。

Apache Spark Connector for SQL Server and Azure SQL 是一款高性能连接器,使您能够在大数据分析中使用事务型数据,并将结果持久化以供即席查询或报告使用。该连接器允许您将任何 SQL 数据库(无论是本地部署还是云端)用作 Spark 作业的输入数据源或输出数据接收端。

Apache PredictionIO 是一个面向开发者、数据科学家和最终用户的开源机器学习框架。它支持事件收集、算法部署、模型评估以及通过 REST API 查询预测结果。该框架基于 Hadoop、HBase(以及其他数据库)、Elasticsearch 和 Spark 等可扩展的开源服务,并实现了所谓的 Lambda 架构。

Cluster Manager for Apache Kafka (CMAK) 是一款用于管理 Apache Kafka 集群的工具。

BigDL 是一个适用于 Apache Spark 的分布式深度学习库。借助 BigDL,用户可以将深度学习应用程序编写为标准的 Spark 程序,这些程序可以直接在现有的 Spark 或 Hadoop 集群上运行。

Eclipse Deeplearning4J (DL4J) 是一组旨在满足基于 JVM(Scala、Kotlin、Clojure 和 Groovy)的深度学习应用所有需求的项目。这意味着从原始数据开始,无论其来源和格式如何,都可以对其进行加载和预处理,进而构建和调优各种简单或复杂的深度学习网络。

Deep Learning Toolbox™ 是一个提供框架的工具,可用于设计和实现深度神经网络,包含算法、预训练模型和应用程序。您可以使用卷积神经网络(ConvNets、CNNs)和长短期记忆网络(LSTM),对图像、时间序列和文本数据进行分类和回归分析。借助自动微分、自定义训练循环和共享权重,还可以构建生成对抗网络(GANs)和暹罗网络等架构。通过 Deep Network Designer 应用程序,您可以以图形化方式设计、分析和训练网络。该工具可通过 ONNX 格式与 TensorFlow™ 和 PyTorch 交换模型,并可导入来自 TensorFlow-Keras 和 Caffe 的模型。该工具箱还支持使用 DarkNet-53、ResNet-50、NASNet、SqueezeNet 等众多预训练模型进行迁移学习。

Reinforcement Learning Toolbox™ 是一个提供应用程序、函数和 Simulink® 块的工具,用于利用强化学习算法(包括 DQN、PPO、SAC 和 DDPG)训练策略。您可以使用这些策略来实现控制器和决策算法,应用于资源分配、机器人技术和自主系统等复杂场景。

Deep Learning HDL Toolbox™ 是一个提供函数和工具的工具,用于在 FPGA 和 SoC 上原型化并实现深度学习网络。它提供了预构建的比特流,可在受支持的 Xilinx® 和 Intel® FPGA 以及 SoC 设备上运行多种深度学习网络。同时,剖析和估算工具可以帮助您通过权衡设计、性能和资源利用率之间的关系,定制深度学习网络。

Parallel Computing Toolbox™ 是一个允许您使用多核处理器、GPU 和计算机集群解决计算密集型及数据密集型问题的工具。诸如并行 for 循环、特殊数组类型和并行化数值算法等高层结构,使您无需 CUDA 或 MPI 编程即可并行化 MATLAB® 应用程序。该工具箱允许您在 MATLAB 及其他工具箱中使用支持并行计算的函数。结合 Simulink® 使用时,您可以在同一时间并行运行多个模型仿真。程序和模型既可以在交互模式下运行,也可以以批处理模式运行。

XGBoost 是一个经过优化的分布式梯度提升库,具有高效、灵活和可移植的特点。它在梯度提升框架下实现了机器学习算法。XGBoost 提供了一种并行树提升方法(也称为 GBDT 或 GBM),能够快速且准确地解决许多数据科学问题。它支持在多台机器上进行分布式训练,包括 AWS、GCE、Azure 和 Yarn 集群。此外,它还可以与 Flink、Spark 和其他云数据流系统集成。

LIBSVM 是一个用于支持向量分类(C-SVC、nu-SVC)、回归(epsilon-SVR、nu-SVR)以及分布估计(一类 SVM)的集成软件。它支持多类分类任务。

Scikit-Learn 是一款简单高效的用于数据挖掘和数据分析的工具。它基于 NumPy、SciPy 和 Matplotlib 构建。

TensorFlow 是一个端到端的开源机器学习平台。它拥有全面且灵活的工具、库和社区资源生态系统,使研究人员能够推动机器学习领域的前沿发展,同时也让开发者能够轻松构建和部署基于机器学习的应用程序。

Keras 是一个用 Python 编写的高级神经网络 API,可运行在 TensorFlow、CNTK 或 Theano 之上。它专注于支持快速实验,目前也支持在 TensorFlow、Microsoft Cognitive Toolkit、R、Theano 或 PlaidML 等框架上运行。

PyTorch 是一个针对不规则输入数据(如图、点云和流形)的深度学习库,主要由 Facebook 的 AI 研究实验室开发。

Azure Databricks 是一种基于 Apache Spark 的快速、协作式大数据分析服务,专为数据科学和数据工程设计。Azure Databricks 可在几分钟内搭建 Apache Spark 环境,支持自动扩展,并允许用户在交互式工作区中协作完成共享项目。该服务支持 Python、Scala、R、Java 和 SQL,以及 TensorFlow、PyTorch 和 scikit-learn 等数据科学框架和库。

Microsoft Cognitive Toolkit (CNTK) 是一个面向商业级分布式深度学习的开源工具包。它通过有向图将神经网络描述为一系列计算步骤。CNTK 允许用户轻松实现并组合常用的模型类型,如前馈 DNN、卷积神经网络(CNN)和循环神经网络(RNN/LSTM)。CNTK 实现了随机梯度下降(SGD,误差反向传播)的学习方法,并支持自动微分及跨多个 GPU 和服务器的并行化。

Tensorflow_macOS 是针对 macOS 11.0 及以上版本优化的 TensorFlow 及其扩展库版本,利用 Apple 的 ML Compute 框架进行加速。

Apache Airflow 是一个由社区创建的开源工作流管理平台,用于以编程方式编写、调度和监控工作流。安装简便、原则清晰、可扩展性强。Airflow 采用模块化架构,使用消息队列来协调任意数量的工作节点,能够无限扩展。

Open Neural Network Exchange (ONNX) 是一个开放的生态系统,旨在帮助 AI 开发者根据项目进展选择合适的工具。ONNX 提供了一种适用于深度学习和传统机器学习模型的开源格式,定义了一个可扩展的计算图模型,以及内置算子和标准数据类型的规范。

Apache MXNet 是一个兼顾效率与灵活性的深度学习框架。它允许混合使用符号式和命令式编程,从而最大化效率和生产力。MXNet 的核心是一个动态依赖调度器,能够实时对符号式和命令式操作进行自动并行化。在其之上还有一层图优化层,使得符号式执行既快速又节省内存。MXNet 具有良好的移植性和轻量化特性,能够高效地扩展到多 GPU 和多台机器上。支持 Python、R、Julia、Scala、Go、JavaScript 等多种语言。

AutoGluon 是一个自动化机器学习工具包,能够自动完成机器学习任务,帮助用户轻松在应用中获得强大的预测性能。只需几行代码,即可训练和部署高精度的深度学习模型,用于表格数据、图像和文本数据的处理。

Anaconda 是一个非常流行的数据科学平台,特别适用于机器学习和深度学习领域,支持用户从模型开发、训练到部署的全流程工作。

PlaidML 是一个先进且可移植的张量编译器,旨在支持在笔记本电脑、嵌入式设备或其他计算硬件支持不足或软件许可限制较多的设备上进行深度学习。

OpenCV 是一个高度优化的库,专注于实时计算机视觉应用。其 C++、Python 和 Java 接口支持 Linux、macOS、Windows、iOS 和 Android 系统。

Scikit-Learn 是一个基于 SciPy、NumPy 和 Matplotlib 构建的 Python 机器学习模块,使得许多流行的机器学习算法能够以稳健而简单的形式被轻松应用。

Weka 是一款开源的机器学习软件,可通过图形用户界面、标准终端应用程序或 Java API 进行访问。它广泛应用于教学、科研和工业领域,内置了丰富的工具用于常规的机器学习任务,并且还能透明地访问 scikit-learn、R 和 Deeplearning4j 等知名工具箱。

Caffe 是一个以表达性、速度和模块化为核心设计的深度学习框架。它由伯克利人工智能研究实验室(BAIR)、伯克利视觉与学习中心(BVLC)以及社区贡献者共同开发。

Theano 是一个 Python 库,允许用户高效地定义、优化和评估涉及多维数组的数学表达式,并与 NumPy 实现紧密集成。

Microsoft Project Bonsai 是一个低代码 AI 平台,用于加速基于 AI 的自动化开发,属于 Microsoft 自主导航系统套件的一部分。Bonsai 用于构建能够提供操作指导或自主决策的 AI 组件,以优化工艺参数、提高生产效率并减少停机时间。

Microsoft AirSim 是一款基于虚幻引擎(并提供实验性 Unity 版本)的无人机、汽车等模拟器。AirSim 是开源且跨平台的,支持与 PX4 和 ArduPilot 等主流飞行控制器进行【软件在环仿真】(SIL),以及与 PX4 进行【硬件在环】(HIL),从而实现物理和视觉上高度逼真的仿真效果。它以虚幻引擎插件的形式开发,可轻松集成到任何虚幻引擎场景中。AirSim 正在被打造为一个用于人工智能研究的平台,旨在试验深度学习、计算机视觉和强化学习算法在自动驾驶车辆中的应用。

CARLA 是一款面向自动驾驶研究的开源模拟器。CARLA 从零开始设计,专门用于支持自动驾驶系统的开发、训练和验证。除了开源代码和通信协议外,CARLA 还提供了专为此目的创建的开放数字资产(城市布局、建筑物、车辆),用户可以自由使用这些资源。

CARLA 的 ROS/ROS2 桥接包 是一个实现 ROS 与 CARLA 之间双向通信的桥梁。CARLA 服务器中的信息会被转换为 ROS 主题;同样地,ROS 节点之间发送的消息也会被翻译成可在 CARLA 中执行的命令。

ROS 工具箱 是一种将 MATLAB® 和 Simulink® 与机器人操作系统(ROS 和 ROS 2)连接起来的工具,允许用户构建 ROS 节点网络。该工具箱包含 MATLAB 函数和 Simulink 模块,可用于导入、分析和回放以 rosbag 文件格式记录的 ROS 数据。此外,用户还可以连接到实时 ROS 网络,以访问 ROS 消息。

机器人技术工具箱™ 提供了一系列专为机器人技术设计的功能(如机械臂、移动机器人和人形机器人的设计、仿真和测试),充分利用了 MATLAB 的原生能力(线性代数、跨平台性和图形化功能)。该工具箱还特别支持移动机器人,提供了自行车模型等运动学模型、路径规划算法(如虫子算法、距离变换、D*、PRM)、动力学规划(如格网法、RRT)、定位(EKF、粒子滤波器)、地图构建(EKF)及同时定位与建图(EKF)等功能,并包含一个非完整约束车辆的 Simulink 模型。此外,该工具箱还提供了一款详细的四旋翼飞行机器人 Simulink 模型。

图像处理工具箱™ 提供了一套全面的标准算法和工作流应用程序,用于图像处理、分析、可视化以及算法开发。用户可以进行图像分割、图像增强、去噪、几何变换、图像配准以及三维图像处理等操作。

计算机视觉工具箱™ 提供用于设计和测试计算机视觉、三维视觉和视频处理系统的算法、函数和应用程序。用户可以执行目标检测与跟踪、特征检测、提取及匹配等任务。此外,还可以自动化单目、双目和鱼眼相机的标定流程。对于三维视觉,该工具箱支持视觉 SLAM 和点云 SLAM、立体视觉、运动恢复结构以及点云处理等功能。

机器人技术工具箱™ 是一种将机器人技术相关功能(如机械臂、移动机器人和人形机器人的设计、仿真和测试)引入 MATLAB 的工具箱,充分利用了 MATLAB 的原生能力(线性代数、跨平台性和图形化功能)。该工具箱还特别支持移动机器人,提供了自行车模型等运动学模型、路径规划算法(如虫子算法、距离变换、D*、PRM)、动力学规划(如格网法、RRT)、定位(EKF、粒子滤波器)、地图构建(EKF)及同时定位与建图(EKF)等功能,并包含一个非完整约束车辆的 Simulink 模型。此外,该工具箱还提供了一款详细的四旋翼飞行机器人 Simulink 模型。

模型预测控制工具箱™ 提供用于设计和仿真线性和非线性模型预测控制器(MPC)的函数、应用程序和 Simulink® 模块。该工具箱允许用户指定被控对象和干扰模型、预测时域、约束条件以及权重。通过运行闭环仿真,用户可以评估控制器的性能。

预测性维护工具箱™ 允许用户管理传感器数据、设计状态指标,并估算设备的剩余使用寿命(RUL)。该工具箱提供了函数和交互式应用程序,用于基于数据和基于模型的技术(包括统计分析、频谱分析和时间序列分析)来探索、提取和排序特征。

Vision HDL 工具箱™ 提供用于在 FPGA 和 ASIC 上设计与实现视觉系统的像素流算法。它提供了一个设计框架,支持多种接口类型、帧尺寸和帧率。该工具箱中的图像处理、视频和计算机视觉算法采用了适合 HDL 实现的架构。

自动驾驶工具箱™ 是一种 MATLAB 工具箱,提供用于设计、仿真和测试 ADAS 及自动驾驶系统的算法和工具。用户可以设计和测试视觉与激光雷达感知系统,以及传感器融合、路径规划和车辆控制器等功能。可视化工具包括鸟瞰图、传感器覆盖范围、检测结果和轨迹的示意图,以及用于显示视频、激光雷达数据和地图的界面。该工具箱支持导入并使用 HERE HD Live Map 数据和 OpenDRIVE® 道路网络。此外,它还提供了常见 ADAS 和自动驾驶功能的参考应用示例,包括前向碰撞预警(FCW)、自动紧急制动(AEB)、自适应巡航控制(ACC)、车道保持辅助(LKA)以及代客泊车等功能。该工具箱支持 C/C++ 代码生成,以实现快速原型开发和 HIL 测试,并对传感器融合、跟踪、路径规划和车辆控制器算法提供支持。

UAV工具箱 是一款应用程序,提供用于设计、仿真、测试和部署无人机(UAV)及无人飞行器应用的工具和参考应用。您可以设计自主飞行算法、无人机任务以及飞行控制器。飞行日志分析器应用程序允许您以交互方式分析常见飞行日志格式中的三维飞行轨迹、遥测信息和传感器读数。

导航工具箱™ 是一种工具,提供用于运动规划、同时定位与地图构建(SLAM)以及惯性导航的算法和分析工具。该工具箱包含可自定义的基于搜索和采样的路径规划器,以及用于验证和比较路径的度量标准。您可以创建二维和三维地图表示,使用 SLAM 算法生成地图,并通过 SLAM 地图构建器应用程序交互式地可视化和调试地图生成过程。

Lidar工具箱™ 是一种工具,提供用于设计、分析和测试激光雷达处理系统的算法、函数和应用程序。您可以执行目标检测与跟踪、语义分割、形状拟合、激光雷达配准以及障碍物检测等任务。Lidar 工具箱支持激光雷达与相机的交叉标定,适用于结合计算机视觉和激光雷达处理的工作流程。

制图工具箱™ 是一种工具,提供用于转换地理数据和创建地图显示的算法和函数。您可以在地理背景下可视化数据,利用超过 60 种地图投影构建地图显示,并将来自各种来源的数据转换为一致的地理坐标系统。

强化学习开发

返回顶部


强化学习学习资源

强化学习是机器学习的一个子领域,属于具有三层或更多层的神经网络。这些神经网络试图模拟人脑的行为,尽管与人脑的能力相比仍有很大差距。通过这一过程,神经网络能够“学习”:模型根据反馈在环境中执行动作时不断优化自身表现,以最大化奖励。学习方式可以是监督学习半监督学习无监督学习

顶级强化学习课程 | Coursera

顶级强化学习课程 | Udemy

顶级强化学习课程 | Udacity

强化学习课程 | 斯坦福在线

深度学习在线课程 | NVIDIA

顶级深度学习课程在线 | Coursera

顶级深度学习课程在线 | Udemy

通过在线课程和教程学习深度学习 | edX

深度学习在线课程纳米学位 | Udacity

吴恩达的机器学习课程 | Coursera

吴恩达的生产级机器学习工程(MLOps)课程 | Coursera

数据科学:Python中的深度学习与神经网络 | Udemy

用Python理解机器学习 | Pluralsight

如何思考机器学习算法 | Pluralsight

深度学习课程 | 斯坦福在线

深度学习——华盛顿大学专业与继续教育项目

深度学习在线课程 | 哈佛大学

面向所有人的机器学习课程 | DataCamp

人工智能专家课程:白金版 | Udemy

顶级人工智能课程在线 | Coursera

通过在线课程和教程学习人工智能 | edX

人工智能计算机科学专业证书 | edX

人工智能纳米学位项目

人工智能(AI)在线课程 | Udacity

Intro to Artificial Intelligence Course | Udacity

面向物联网开发者的边缘AI课程 | Udacity

推理:目标树与基于规则的专家系统 | MIT开放课程资源

专家系统与应用型人工智能

自主系统——微软人工智能

Microsoft Project Bonsai简介

使用微软自主系统平台进行机器教学

自主海事系统培训 | AMC Search

顶级自动驾驶汽车课程在线 | Udemy

应用控制系统1:自动驾驶汽车:数学+PID+MPC | Udemy

通过在线课程和教程学习自主机器人技术 | edX

人工智能纳米学位项目

自主系统在线课程与项目 | Udacity

面向物联网开发者的边缘AI课程 | Udacity

自主系统MOOC及免费在线课程 | MOOC List

机器人与自主系统研究生项目 | 斯坦福在线

移动自主系统实验室 | MIT开放课程资源

强化学习工具、库和框架

OpenAI 是一个开源的Python库,用于开发和比较强化学习算法。它提供了一个标准API,用于在学习算法和环境之间进行通信,并包含一组符合该API标准的环境。

ReinforcementLearning.jl 是一套用于在Julia语言中进行强化学习研究的工具。

强化学习工具箱™ 是一款工具,提供应用程序、函数以及Simulink®模块,用于利用强化学习算法(包括DQN、PPO、SAC和DDPG)训练策略。您可以使用这些策略来实现控制器和决策算法,应用于资源分配、机器人技术和自主系统等复杂场景。

Amazon SageMaker 是一项完全托管的服务,使每位开发者和数据科学家都能快速构建、训练和部署机器学习(ML)模型。

AWS RoboMaker 是一项服务,为客户提供完全托管且可扩展的仿真基础设施,用于多机器人仿真以及与仿真中的回归测试相结合的持续集成/持续交付(CI/CD)流程。

TensorFlow 是一个端到端的开源机器学习平台。它拥有全面而灵活的工具、库和社区资源生态系统,使研究人员能够推动机器学习领域的前沿发展,同时也让开发者能够轻松构建和部署基于机器学习的应用程序。

Keras 是一个用 Python 编写的高级神经网络 API,可在 TensorFlow、CNTK 或 Theano 之上运行。它专注于支持快速实验,目前也支持在 TensorFlow、Microsoft Cognitive Toolkit、R、Theano 或 PlaidML 等框架之上运行。

PyTorch 是一个用于处理不规则输入数据(如图、点云和流形)的深度学习库,主要由 Facebook 的 AI 研究实验室开发。

Scikit-Learn 是一款简单高效的用于数据挖掘和数据分析的工具。它基于 NumPy、SciPy 和 Matplotlib 构建。

NVIDIA cuDNN 是一个针对 深度神经网络 的 GPU 加速原语库。cuDNN 提供了高度优化的标准实现,例如前向和反向卷积、池化、归一化以及激活层等操作。cuDNN 能够加速广泛使用的深度学习框架,包括 Caffe2ChainerKerasMATLABMxNetPyTorchTensorFlow 等。

Jupyter Notebook 是一个开源 Web 应用程序,允许用户创建和共享包含实时代码、公式、可视化内容及叙述性文本的文档。Jupyter 广泛应用于数据清洗与转换、数值模拟、统计建模、数据可视化、数据科学和机器学习等领域。

Apache Spark 是一个用于大规模数据处理的统一分析引擎。它提供 Scala、Java、Python 和 R 等高级 API,并配备优化的执行引擎,支持用于数据分析的通用计算图。此外,Spark 还提供丰富的高级工具集,包括用于 SQL 和 DataFrame 的 Spark SQL、用于机器学习的 MLlib、用于图处理的 GraphX 以及用于流式处理的 Structured Streaming。

Apache Spark Connector for SQL Server and Azure SQL 是一种高性能连接器,使您能够在大数据分析中使用事务型数据,并将结果持久化以供即席查询或报告使用。该连接器允许您将任何 SQL 数据库——无论是在本地还是云端——用作 Spark 作业的输入数据源或输出数据接收端。

Apache PredictionIO 是一个面向开发者、数据科学家和最终用户的开源机器学习框架。它支持事件收集、算法部署、评估以及通过 REST API 查询预测结果。该框架基于 Hadoop、HBase(以及其他数据库)、Elasticsearch 和 Spark 等可扩展的开源服务,并实现了所谓的 Lambda 架构。

Cluster Manager for Apache Kafka (CMAK) 是一个用于管理 Apache Kafka 集群的工具。

BigDL 是一个适用于 Apache Spark 的分布式深度学习库。借助 BigDL,用户可以将深度学习应用程序编写为标准的 Spark 程序,这些程序可以直接在现有的 Spark 或 Hadoop 集群上运行。

Eclipse Deeplearning4J (DL4J) 是一组项目,旨在满足基于 JVM(Scala、Kotlin、Clojure 和 Groovy)的深度学习应用程序的所有需求。这意味着从原始数据开始,无论其来源和格式如何,都可以对其进行加载和预处理,进而构建和调优各种简单或复杂的深度学习网络。

Deep Learning Toolbox™ 是一个工具,提供用于设计和实现深度神经网络的框架,其中包括算法、预训练模型和应用程序。您可以使用卷积神经网络(ConvNets、CNNs)和长短期记忆网络(LSTM),对图像、时间序列和文本数据进行分类和回归分析。还可以利用自动微分、自定义训练循环和共享权重,构建生成对抗网络(GANs)和暹罗网络等网络架构。借助 Deep Network Designer 应用程序,您可以以图形化方式设计、分析和训练网络。该工具可通过 ONNX 格式与 TensorFlow™ 和 PyTorch 交换模型,并可导入来自 TensorFlow-Keras 和 Caffe 的模型。该工具箱还支持迁移学习,可与 DarkNet-53、ResNet-50、NASNet、SqueezeNet 等多种预训练模型配合使用。

Deep Learning HDL Toolbox™ 是一个工具,提供用于在 FPGA 和 SoC 上原型化和实现深度学习网络的功能与工具。它提供了预构建的比特流,可在受支持的 Xilinx® 和 Intel® FPGA 及 SoC 设备上运行各种深度学习网络。同时,性能剖析和估算工具可以帮助您在设计、性能和资源利用率之间进行权衡,从而定制深度学习网络。

Parallel Computing Toolbox™ 是一个工具,使您能够利用多核处理器、GPU 和计算机集群来解决计算密集型和数据密集型问题。高级构造,如并行 for 循环、特殊数组类型和并行化的数值算法,使您无需使用 CUDA 或 MPI 编程即可实现 MATLAB® 应用程序的并行化。该工具箱允许您在 MATLAB 及其他工具箱中使用支持并行计算的函数。您还可以结合 Simulink® 使用该工具箱,以并行方式运行同一模型的多个仿真。程序和模型既可以在交互模式下运行,也可以以批处理模式运行。

XGBoost 是一个优化的分布式梯度提升库,设计高效、灵活且易于移植。它在梯度提升框架下实现了多种机器学习算法。XGBoost 提供并行树提升(也称为 GBDT 或 GBM),能够快速而准确地解决许多数据科学问题。它支持在多台机器上进行分布式训练,包括 AWS、GCE、Azure 和 Yarn 集群。此外,它还可以与 Flink、Spark 等云数据流系统集成。

LIBSVM 是一个用于支持向量分类(C-SVC、nu-SVC)、回归(epsilon-SVR、nu-SVR)和分布估计(一类 SVM)的综合软件。它支持多类分类。

Azure Databricks 是一种基于 Apache Spark 的快速协作式大数据分析服务,专为数据科学和数据工程设计。Azure Databricks 可以在几分钟内搭建 Apache Spark 环境,自动扩展规模,并在交互式工作区中协同处理共享项目。Azure Databricks 支持 Python、Scala、R、Java 和 SQL,以及 TensorFlow、PyTorch 和 scikit-learn 等数据科学框架和库。

Microsoft Cognitive Toolkit (CNTK) 是一个面向商业级分布式深度学习的开源工具包。它通过有向图将神经网络描述为一系列计算步骤。CNTK 允许用户轻松实现和组合流行的模型类型,如前馈 DNN、卷积神经网络(CNN)和循环神经网络(RNN/LSTM)。CNTK 实现了随机梯度下降(SGD,误差反向传播)学习,并支持自动微分及跨多个 GPU 和服务器的并行化。

Tensorflow_macOS 是针对 macOS 11.0 及以上版本优化的 TensorFlow 及 TensorFlow Addons 版本,利用 Apple 的 ML Compute 框架加速运行。

Apache Airflow 是一个由社区创建的开源工作流管理平台,用于以编程方式编写、调度和监控工作流。安装简便、原则清晰、可扩展性强。Airflow 具有模块化架构,使用消息队列来编排任意数量的工作节点。Airflow 能够无限扩展。

Open Neural Network Exchange(ONNX) 是一个开放生态系统,使 AI 开发者能够根据项目的发展选择合适的工具。ONNX 提供了一种开源的 AI 模型格式,适用于深度学习和传统机器学习。它定义了一个可扩展的计算图模型,以及内置算子和标准数据类型的规范。

Apache MXNet 是一个兼顾效率和灵活性的深度学习框架。它允许混合符号式和命令式编程,以最大化效率和生产力。MXNet 的核心是一个动态依赖调度器,能够实时自动并行化符号式和命令式操作。在其之上还有一层图优化层,使得符号式执行既快速又节省内存。MXNet 具有良好的可移植性和轻量化特性,能够有效扩展到多 GPU 和多台机器。支持 Python、R、Julia、Scala、Go、JavaScript 等多种语言。

AutoGluon 是一个自动化深度学习工具包,能够自动完成机器学习任务,帮助用户轻松在应用中获得强大的预测性能。只需几行代码,即可在表格数据、图像和文本数据上训练并部署高精度的深度学习模型。

Anaconda 是一个非常流行的数据科学平台,适用于机器学习和深度学习,使用户能够开发、训练和部署模型。

PlaidML 是一个先进且可移植的张量编译器,旨在让深度学习能够在笔记本电脑、嵌入式设备或其他计算硬件支持不足或软件栈存在不友好许可限制的设备上运行。

OpenCV 是一个高度优化的库,专注于实时计算机视觉应用。其 C++、Python 和 Java 接口支持 Linux、MacOS、Windows、iOS 和 Android。

Scikit-Learn 是一个基于 SciPy、NumPy 和 matplotlib 构建的 Python 机器学习模块,使得应用多种流行机器学习算法的稳健且简单实现变得更加容易。

Weka 是一款开源机器学习软件,可通过图形用户界面、标准终端应用程序或 Java API 访问。它广泛应用于教学、研究和工业领域,内置了大量用于标准机器学习任务的工具,并且还能透明地访问 scikit-learn、R 和 Deeplearning4j 等知名工具箱。

Caffe 是一个以表达力、速度和模块化为核心设计的深度学习框架。它由伯克利人工智能研究中心(BAIR)、伯克利视觉与学习中心(BVLC)以及社区贡献者共同开发。

Theano 是一个 Python 库,允许高效地定义、优化和评估涉及多维数组的数学表达式,并与 NumPy 紧密集成。

Microsoft Project Bonsai 是一个低代码 AI 平台,可加速基于 AI 的自动化开发,是微软自主系统套件的一部分。Bonsai 用于构建能够提供操作指导或自主决策的 AI 组件,以优化工艺变量、提高生产效率并减少停机时间。

Microsoft AirSim 是一个基于 Unreal Engine 构建的无人机、汽车等模拟器(同时也有实验性的 Unity 版本)。AirSim 是开源、跨平台的,支持与 PX4 和 ArduPilot 等主流飞行控制器结合的“软件在环”仿真,以及与 PX4 结合的“硬件在环”仿真,从而实现物理和视觉上高度逼真的模拟效果。它被开发为一个 Unreal 插件,可以轻松集成到任何 Unreal 场景中。AirSim 正在发展成为一个 AI 研究平台,用于试验自动驾驶车辆相关的深度学习、计算机视觉和强化学习算法。

CARLA 是一款用于自动驾驶研究的开源模拟器。CARLA 从零开始开发,旨在支持自动驾驶系统的开发、训练和验证。除了开源代码和通信协议外,CARLA 还提供了专为此目的创建的开放数字资产(城市布局、建筑物、车辆),用户可以免费使用。

CARLA 的 ROS/ROS2 桥接包 是一个实现 ROS 与 CARLA 之间双向通信的桥梁。CARLA 服务器中的信息会被转换为 ROS 主题;同样地,ROS 节点之间发送的消息也会被转换为可在 CARLA 中执行的命令。

ROS 工具箱 是一种将 MATLAB® 和 Simulink® 与机器人操作系统(ROS 和 ROS 2)连接起来的工具,允许用户构建 ROS 节点网络。该工具箱包含 MATLAB 函数和 Simulink 模块,用于导入、分析和回放以 rosbag 文件格式记录的 ROS 数据。此外,还可以连接到实时 ROS 网络以访问 ROS 消息。

机器人学工具箱™ 提供了一套专门针对机器人技术的功能(设计、仿真和测试机械臂、移动机器人和人形机器人),充分利用了 MATLAB 的原生能力(线性代数、跨平台性和图形功能)。该工具箱还特别支持移动机器人,提供机器人运动模型(自行车模型)、路径规划算法(虫子算法、距离变换、D*、PRM)、动力学规划(晶格规划、RRT)、定位(EKF、粒子滤波器)、地图构建(EKF)以及同时定位与地图构建(EKF)等功能,并包含一个非完整约束车辆的 Simulink 模型。此外,该工具箱还提供了一个详细的四旋翼飞行机器人的 Simulink 模型。

图像处理工具箱™ 是一种工具,提供了一整套符合行业标准的算法和工作流应用程序,用于图像处理、分析、可视化及算法开发。用户可以进行图像分割、图像增强、降噪、几何变换、图像配准以及三维图像处理等操作。

计算机视觉工具箱™ 提供用于设计和测试计算机视觉、三维视觉和视频处理系统的算法、函数和应用程序。用户可以执行目标检测与跟踪,以及特征检测、提取和匹配。此外,还可以自动化单目、双目和鱼眼相机的标定流程。对于三维视觉,该工具箱支持视觉 SLAM 和点云 SLAM、立体视觉、运动恢复结构以及点云处理等功能。

机器人学工具箱™ 是一种工具,它将机器人技术相关的功能(设计、仿真和测试机械臂、移动机器人和人形机器人)引入 MATLAB,充分利用了 MATLAB 的原生能力(线性代数、跨平台性和图形功能)。该工具箱还特别支持移动机器人,提供机器人运动模型(自行车模型)、路径规划算法(虫子算法、距离变换、D*、PRM)、动力学规划(晶格规划、RRT)、定位(EKF、粒子滤波器)、地图构建(EKF)以及同时定位与地图构建(EKF)等功能,并包含一个非完整约束车辆的 Simulink 模型。此外,该工具箱还提供了一个详细的四旋翼飞行机器人的 Simulink 模型。

模型预测控制工具箱™ 提供用于设计和仿真线性和非线性模型预测控制器(MPC)的函数、应用程序和 Simulink® 模块。该工具箱允许用户指定被控对象和扰动模型、预测时域、约束条件以及权重。通过运行闭环仿真,用户可以评估控制器的性能。

预测性维护工具箱™ 允许用户管理传感器数据、设计状态指标,并估算设备的剩余使用寿命(RUL)。该工具箱提供基于数据和基于模型的技术函数及交互式应用程序,用于探索、提取和排序特征,包括统计分析、频谱分析和时间序列分析等方法。

视觉 HDL 工具箱™ 是一种工具,提供用于在 FPGA 和 ASIC 上设计和实现视觉系统的像素流算法。它提供一个设计框架,支持多种接口类型、帧尺寸和帧率。该工具箱中的图像处理、视频和计算机视觉算法采用适合 HDL 实现的架构。

自动驾驶工具箱™ 是一种 MATLAB 工具,提供用于设计、仿真和测试 ADAS 及自动驾驶系统的算法和工具。用户可以设计和测试视觉与激光雷达感知系统,以及传感器融合、路径规划和车辆控制器。可视化工具包括鸟瞰图、传感器覆盖范围、检测结果与轨迹的示意图,以及视频、激光雷达和地图的显示界面。该工具箱支持导入并使用 HERE HD Live Map 数据和 OpenDRIVE® 道路网络。此外,还提供了常见 ADAS 和自动驾驶功能的参考应用示例,包括前方碰撞预警(FCW)、自动紧急制动(AEB)、自适应巡航控制(ACC)、车道保持辅助(LKA)以及自动泊车等。该工具箱支持 C/C++ 代码生成,用于快速原型开发和 HIL 测试,并对传感器融合、跟踪、路径规划和车辆控制器算法提供支持。

导航工具箱™ 提供用于运动规划、同时定位与地图构建(SLAM)以及惯性导航的算法和分析工具。该工具箱包含可定制的搜索和采样型路径规划器,以及用于验证和比较路径的度量指标。用户可以创建二维和三维地图表示,利用 SLAM 算法生成地图,并通过 SLAM 地图构建应用程序交互式地可视化和调试地图生成过程。

UAV 工具箱 是一种应用程序,提供用于设计、仿真、测试和部署无人机及无人飞行器应用的工具和参考应用。用户可以设计自主飞行算法、无人机任务和飞行控制器。飞行日志分析器应用程序允许用户交互式地分析常见飞行日志格式中的三维飞行轨迹、遥测信息和传感器读数。

Lidar 工具箱™ 是一款提供算法、函数和应用程序的工具,用于设计、分析和测试激光雷达处理系统。您可以执行目标检测与跟踪、语义分割、形状拟合、激光雷达配准以及障碍物检测。Lidar 工具箱支持激光雷达与相机的交叉标定,适用于结合计算机视觉和激光雷达处理的工作流程。

Mapping 工具箱™ 是一款提供地理数据转换算法和函数、并用于创建地图显示的工具。您可以在地理背景下可视化数据,基于超过60种地图投影构建地图显示,并将来自各种来源的数据转换为一致的地理坐标系。

计算机视觉开发

返回顶部


计算机视觉学习资源

计算机视觉 是人工智能(AI)的一个领域,专注于使计算机能够识别和理解图像和视频中的物体和人物。

OpenCV 课程

在 Microsoft Azure 中探索计算机视觉

在线顶级计算机视觉课程 | Coursera

在线顶级计算机视觉课程 | Udemy

通过在线课程和教程学习计算机视觉 | edX

计算机视觉与图像处理基础 | edX

计算机视觉入门课程 | Udacity

计算机视觉纳米学位项目 | Udacity

机器视觉课程 | MIT 开放课程

计算机视觉培训课程 | NobleProg

视觉计算研究生项目 | 斯坦福大学在线

计算机视觉工具、库和框架

OpenCV 是一个高度优化的库,专注于实时计算机视觉应用。其 C++、Python 和 Java 接口支持 Linux、MacOS、Windows、iOS 和 Android。

Microsoft Cognitive Toolkit (CNTK) 是一个面向商业级分布式深度学习的开源工具包。它通过有向图将神经网络描述为一系列计算步骤。CNTK 允许用户轻松实现并组合流行的模型类型,如前馈 DNN、卷积神经网络(CNN)和循环神经网络(RNN/LSTM)。CNTK 实现了随机梯度下降(SGD,误差反向传播)学习,并支持自动微分以及在多个 GPU 和服务器上的并行化。

Scikit-Learn 是一个基于 SciPy、NumPy 和 matplotlib 构建的 Python 机器学习模块,使得许多流行机器学习算法的稳健且简单的实现更加容易。

NVIDIA cuDNN 是一个针对 深度神经网络 的 GPU 加速原语库。cuDNN 提供了对标准操作的高度优化实现,例如前向和反向卷积、池化、归一化和激活层。cuDNN 可以加速广泛使用的深度学习框架,包括 Caffe2ChainerKerasMATLABMxNetPyTorchTensorFlow

自动驾驶工具箱™ 是一个 MATLAB 工具,提供用于设计、仿真和测试 ADAS 及自动驾驶系统的算法和工具。您可以设计和测试视觉及激光雷达感知系统,以及传感器融合、路径规划和车辆控制器。可视化工具包括鸟瞰图和用于显示传感器覆盖范围、检测结果和轨迹的示波器,以及用于显示视频、激光雷达和地图的界面。该工具箱允许您导入并使用 HERE HD Live Map 数据和 OpenDRIVE® 道路网络。它还提供了常见 ADAS 和自动驾驶功能的参考应用示例,包括 FCW、AEB、ACC、LKA 和代客泊车。该工具箱支持 C/C++ 代码生成,用于快速原型开发和 HIL 测试,并支持传感器融合、跟踪、路径规划和车辆控制器算法。

LRSLibrary 是一个用于视频中背景建模与减除的低秩稀疏工具库。该库最初设计用于视频中的运动目标检测,但也可用于其他计算机视觉和机器学习问题。

图像处理工具箱™ 是一款提供全面的参考标准算法和工作流应用程序的工具,用于图像处理、分析、可视化和算法开发。您可以执行图像分割、图像增强、降噪、几何变换、图像配准以及三维图像处理。

计算机视觉工具箱™ 是一款提供算法、函数和应用程序的工具,用于设计和测试计算机视觉、三维视觉和视频处理系统。您可以执行目标检测和跟踪,以及特征检测、提取和匹配。您可以自动化单目、立体和鱼眼相机的标定流程。对于三维视觉,该工具箱支持视觉和点云 SLAM、立体视觉、运动恢复结构以及点云处理。

统计与机器学习工具箱™ 是一种提供函数和应用程序的工具,用于描述、分析和建模数据。您可以使用描述性统计、可视化工具和聚类方法进行探索性数据分析;拟合概率分布到数据;生成用于蒙特卡洛模拟的随机数,并执行假设检验。回归和分类算法使您能够从数据中得出推论,并通过交互式方式(使用分类与回归学习器应用程序)或编程方式(使用 AutoML)构建预测模型。

LiDAR 工具箱™ 是一种提供算法、函数和应用程序的工具,用于设计、分析和测试 LiDAR 处理系统。您可以执行目标检测与跟踪、语义分割、形状拟合、LiDAR 数据配准以及障碍物检测。LiDAR 工具箱支持 LiDAR 与相机的交叉标定,以满足结合计算机视觉和 LiDAR 处理的工作流需求。

地图工具箱™ 是一种提供算法和函数的工具,用于转换地理数据并创建地图显示。您可以在地理背景下可视化数据,基于超过 60 种地图投影构建地图显示,并将来自各种来源的数据转换为一致的地理坐标系。

UAV 工具箱 是一种应用程序,提供用于设计、仿真、测试和部署无人机及无人驾驶飞行器应用的工具和参考应用。您可以设计自主飞行算法、无人机任务和飞行控制器。飞行日志分析器应用程序允许您交互式地分析常见飞行日志格式中的三维飞行轨迹、遥测信息和传感器读数。

并行计算工具箱™ 是一种工具,使您能够利用多核处理器、GPU 和计算机集群来解决计算密集型和数据密集型问题。诸如并行 for 循环、特殊数组类型和并行化数值算法等高级构造,使您无需 CUDA 或 MPI 编程即可并行化 MATLAB® 应用程序。该工具箱允许您在 MATLAB 及其他工具箱中使用支持并行计算的函数。您还可以将其与 Simulink® 结合使用,以并行运行模型的多个仿真。程序和模型既可以在交互模式下运行,也可以在批处理模式下运行。

偏微分方程工具箱™ 是一种提供函数的工具,用于通过有限元分析求解结构力学、传热以及一般偏微分方程 (PDE)。

ROS 工具箱 是一种提供接口的工具,可将 MATLAB® 和 Simulink® 与机器人操作系统 (ROS 和 ROS 2) 连接起来,从而帮助您创建 ROS 节点网络。该工具箱包含 MATLAB 函数和 Simulink 模块,用于导入、分析和回放以 rosbag 文件格式记录的 ROS 数据。您还可以连接到实时 ROS 网络,以访问 ROS 消息。

机器人技术工具箱™ 提供了一套工具,将机器人技术相关的功能(如机械臂、移动机器人和人形机器人的设计、仿真和测试)引入 MATLAB,并充分利用 MATLAB 的原生能力(线性代数、可移植性和图形功能)。该工具箱还为移动机器人提供了机器人运动模型(自行车模型)、路径规划算法(bug 算法、距离变换、D*、PRM)、动力学规划(格子规划、RRT)、定位(EKF、粒子滤波器)、地图构建(EKF)以及同时定位与地图构建(EKF)等功能,并包含一个非完整约束车辆的 Simulink 模型。此外,该工具箱还包括一个详细的四旋翼飞行机器人 Simulink 模型。

深度学习工具箱™ 是一种提供框架的工具,用于借助算法、预训练模型和应用程序设计及实现深度神经网络。您可以使用卷积神经网络 (ConvNets, CNNs) 和长短期记忆网络 (LSTM) 对图像、时间序列和文本数据进行分类和回归。借助自动微分、自定义训练循环和共享权重,您可以构建生成对抗网络 (GANs) 和暹罗网络等网络架构。通过深度网络设计器应用程序,您可以以图形化方式设计、分析和训练网络。它可以通过 ONNX 格式与 TensorFlow™ 和 PyTorch 交换模型,并可导入来自 TensorFlow-Keras 和 Caffe 的模型。该工具箱支持迁移学习,兼容 DarkNet-53、ResNet-50、NASNet、SqueezeNet 等多种预训练模型。

强化学习工具箱™ 是一种提供应用程序、函数和 Simulink® 块的工具,用于使用强化学习算法(包括 DQN、PPO、SAC 和 DDPG)训练策略。您可以利用这些策略为资源分配、机器人技术和自主系统等复杂应用实现控制器和决策算法。

深度学习 HDL 工具箱™ 是一种提供函数和工具的工具,用于在 FPGA 和 SoC 上原型化和实现深度学习网络。它提供了预构建的比特流,可在受支持的 Xilinx® 和 Intel® FPGA 以及 SoC 设备上运行多种深度学习网络。性能分析和估算工具使您能够通过权衡设计、性能和资源利用率之间的关系来定制深度学习网络。

模型预测控制工具箱™ 是一种提供函数、应用程序和 Simulink® 块的工具,用于使用线性和非线性模型预测控制 (MPC) 设计和仿真控制器。该工具箱允许您指定被控对象和扰动模型、预测时域、约束条件和权重。通过运行闭环仿真,您可以评估控制器的性能。

视觉 HDL 工具箱™ 是一种提供像素流算法的工具,用于在 FPGA 和 ASIC 上设计和实现视觉系统。它提供了一个设计框架,支持多种接口类型、帧尺寸和帧率。该工具箱中的图像处理、视频和计算机视觉算法采用适合 HDL 实现的架构。

数据采集工具箱™ 是一种工具,提供用于配置数据采集硬件、将数据读入 MATLAB® 和 Simulink® 以及将数据写入 DAQ 模拟和数字输出通道的应用程序和函数。该工具箱支持多种 DAQ 硬件,包括来自 National Instruments® 及其他供应商的 USB、PCI、PCI Express®、PXI® 和 PXI Express® 设备。

Microsoft AirSim 是一款基于虚幻引擎(并有实验性的 Unity 版本)开发的无人机、汽车等模拟器。AirSim 是开源且跨平台的,支持与流行的飞行控制器(如 PX4 和 ArduPilot)进行 软件在环仿真,同时也支持与 PX4 进行 硬件在环仿真,以实现物理和视觉上高度逼真的模拟。它被开发为一个虚幻插件,可以轻松集成到任何虚幻环境中。AirSim 正在被打造成为一个用于人工智能研究的平台,供研究人员试验深度学习、计算机视觉和强化学习算法,以应用于自动驾驶车辆。

自然语言处理开发

返回顶部


自然语言处理学习资源

自然语言处理(NLP) 是人工智能(AI)的一个分支,专注于赋予计算机像人类一样理解文本和口语的能力。NLP 结合了基于规则的人类语言计算语言学建模,以及统计学、机器学习和深度学习模型。

使用 Python 的 NLTK 包进行自然语言处理

认知服务——面向 AI 开发者的 API | Microsoft Azure

人工智能服务 - 亚马逊网络服务(AWS)

Google Cloud 自然语言 API

在线顶级自然语言处理课程 | Udemy

自然语言处理(NLP)入门 | Udemy

顶级自然语言处理课程 | Coursera

自然语言处理 | Coursera

TensorFlow 中的自然语言处理 | Coursera

通过在线课程和教程学习自然语言处理 | edX

使用 Microsoft Azure 构建自然语言处理解决方案 | Pluralsight

自然语言处理(NLP)培训课程 | NobleProg

斯坦福在线深度学习自然语言处理课程

麻省理工学院开放课程:高级自然语言处理

认证自然语言处理专家认证 | IABAC

英特尔自然语言处理课程

自然语言处理工具、库和框架

自然语言工具包(NLTK) 是构建用于处理人类语言数据的 Python 程序的领先平台。它提供了易于使用的接口,可访问超过 50 个语料库和词汇资源,例如 WordNet,同时还包含一套用于分类、分词、词干提取、词性标注、句法分析和语义推理的文本处理库,以及针对工业级 NLP 库的封装。

spaCy 是一个用于 Python 和 Cython 的高级自然语言处理库。它基于最新的研究成果构建,从一开始就被设计用于实际产品中。spaCy 带有预训练的管道,目前支持 60 多种语言的分词和训练。它还具备用于词性标注、句法分析、命名实体识别、文本分类等任务的神经网络模型,并支持与 BERT 等预训练转换器进行多任务学习。

CoreNLP 是一组用 Java 编写的自然语言分析工具。CoreNLP 使用户能够为文本生成语言学注释,包括词和句子边界、词性、命名实体、数值和时间值、依存关系和结构关系分析、指代消解、情感分析、引文归属及各种关系。

NLPnet 是一个基于神经网络的 Python 库,用于自然语言处理任务。它可以执行词性标注、语义角色标注和依存关系分析。

Flair 是一个简单的框架,可用于将最先进的自然语言处理(NLP)模型应用于您的文本,例如命名实体识别(NER)、词性标注(PoS),以及对生物医学数据的特殊支持、语义消歧和分类等功能,并且支持的语言数量正在迅速增加。

Catalyst 是一个用 C# 编写的高速自然语言处理库。它受到 spaCy 的设计 启发,带来了预训练模型、开箱即用的单词和文档嵌入训练支持,以及灵活的实体识别模型。

Apache OpenNLP 是一个开源的基于机器学习的工具包库,用于处理自然语言文本。它提供了一个 API,适用于诸如 命名实体识别句子检测词性标注分词特征提取块切分句法分析指代消解 等应用场景。

Microsoft Cognitive Toolkit (CNTK) 是一个面向商业级分布式深度学习的开源工具包。它通过有向图将神经网络描述为一系列计算步骤。CNTK 允许用户轻松实现并组合诸如前馈 DNN、卷积神经网络 (CNN) 和循环神经网络 (RNN/LSTM) 等流行模型类型。CNTK 实现了带有自动微分功能的随机梯度下降法 (SGD,即误差反向传播),并且可以在多块 GPU 和多台服务器上进行并行化训练。

NVIDIA cuDNN 是一个针对 深度神经网络 的 GPU 加速原语库。cuDNN 提供了高度优化的标准操作实现,例如前向和反向卷积、池化、归一化以及激活层等。cuDNN 能够加速广泛使用的深度学习框架,包括 Caffe2ChainerKerasMATLABMxNetPyTorchTensorFlow 等。

TensorFlow 是一个端到端的开源机器学习平台。它拥有全面而灵活的工具、库和社区资源生态系统,使研究人员能够推动机器学习领域的前沿发展,也让开发者可以轻松构建和部署基于机器学习的应用程序。

Tensorflow_macOS 是 TensorFlow 及其扩展库在 macOS 11.0 及以上版本上的优化版本,并利用 Apple 的 ML Compute 框架进行加速。

Keras 是一个用 Python 编写的高级神经网络 API,可运行在 TensorFlow、CNTK 或 Theano 等后端之上。它专注于支持快速实验,能够与 TensorFlow、Microsoft Cognitive Toolkit、R 语言、Theano 或 PlaidML 等框架协同工作。

PyTorch 是一个用于处理不规则输入数据(如图、点云和流形)的深度学习库。主要由 Facebook 的 AI 研究实验室开发。

Eclipse Deeplearning4J (DL4J) 是一组旨在支持基于 JVM(Scala、Kotlin、Clojure 和 Groovy)的深度学习应用所有需求的项目。这意味着从原始数据开始,无论数据来自何处、采用何种格式,都能对其进行加载和预处理,进而构建和调优各种简单或复杂的深度学习网络。

Chainer 是一个以灵活性为目标的基于 Python 的深度学习框架。它提供了基于“定义即运行”方法的自动微分 API(动态计算图),以及面向对象的高级 API,用于构建和训练神经网络。此外,它还通过 CuPy 支持 CUDA/cuDNN,从而实现高性能的训练和推理。

Anaconda 是一个非常流行的用于机器学习和深度学习的数据科学平台,使用户能够开发、训练和部署模型。

PlaidML 是一种先进且可移植的张量编译器,能够在笔记本电脑、嵌入式设备或其他计算硬件支持不足或软件栈存在令人不满的许可限制的设备上运行深度学习。

Scikit-Learn 是一个基于 SciPy、NumPy 和 matplotlib 构建的 Python 机器学习模块,使得许多流行的机器学习算法的稳健而简单的实现更加容易应用。

Caffe 是一个以表达性、速度和模块化为核心设计思想的深度学习框架。它由伯克利人工智能研究实验室 (BAIR)/伯克利视觉与学习中心 (BVLC) 以及社区贡献者共同开发。

Theano 是一个 Python 库,允许高效地定义、优化和评估涉及多维数组的数学表达式,并与 NumPy 紧密集成。

Apache Spark 是一个用于大规模数据处理的统一分析引擎。它提供 Scala、Java、Python 和 R 等高级 API,以及一个优化的执行引擎,支持通用计算图来进行数据分析。此外,它还包含丰富的高层工具集,包括用于 SQL 和 DataFrame 的 Spark SQL、用于机器学习的 MLlib、用于图处理的 GraphX 以及用于流式处理的 Structured Streaming。

Apache Spark Connector for SQL Server and Azure SQL 是一个高性能连接器,使您能够在大数据分析中使用事务型数据,并将结果持久化以供即席查询或报告使用。该连接器允许您将任何 SQL 数据库——无论是本地部署还是云端——用作 Spark 作业的输入数据源或输出数据接收端。

Apache PredictionIO 是一个面向开发者、数据科学家和最终用户的开源机器学习框架。它支持事件收集、算法部署、评估以及通过 REST API 查询预测结果。该框架基于 Hadoop、HBase(以及其他数据库)、Elasticsearch 和 Spark 等可扩展的开源服务,并实现了所谓的 Lambda 架构。

Apache Airflow 是一个由社区创建的开源工作流管理平台,用于以编程方式编写、调度和监控工作流。Airflow 具有模块化架构,并使用消息队列来协调任意数量的工作节点。Airflow 可以无限扩展。

Open Neural Network Exchange (ONNX) 是一个开放的生态系统,使 AI 开发人员能够根据项目的发展阶段选择合适的工具。ONNX 提供了一种适用于深度学习和传统机器学习模型的开源格式,定义了一个可扩展的计算图模型,以及内置算子和标准数据类型的规范。

BigDL 是一个专为 Apache Spark 设计的分布式深度学习库。借助 BigDL,用户可以将他们的深度学习应用程序编写成标准的 Spark 程序,这些程序可以直接在现有的 Spark 或 Hadoop 集群上运行。

Numba 是一个由 Anaconda, Inc. 赞助的开源、感知 NumPy 的 Python 优化编译器。它利用 LLVM 编译器项目,将 Python 语法转换为机器代码。Numba 可以编译大量以数值计算为主的 Python 代码,包括许多 NumPy 函数。此外,Numba 还支持循环的自动并行化、生成 GPU 加速代码,以及创建 ufunc 和 C 回调函数等功能。

生物信息学

返回顶部


生物信息学学习资源

生物信息学(Bioinformatics)是一门与生物分子序列分析相关的计算科学领域。它通常涉及基因、DNA、RNA或蛋白质等生物大分子的序列研究,尤其适用于比较同一生物体内部或不同生物体之间的基因及其他序列,探讨生物间的进化关系,并通过DNA和蛋白质序列中的模式来推断其功能。

欧洲生物信息学研究所

美国国家生物技术信息中心

生物信息学在线课程 | ISCB - 国际计算生物学学会

生物信息学 | Coursera

顶级生物信息学课程 | Udemy

生物特征识别课程 | Udemy

通过在线课程和教程学习生物信息学 | edX

哈佛大学扩展学院生物信息学研究生证书项目

加州大学圣地亚哥分校扩展学院生物信息学与生物统计学课程

生物信息学与蛋白质组学——麻省理工学院免费在线课程资料

生物特征识别导论课程 - 生物特征识别协会

生物信息学工具、库和框架

Bioconductor 是一个开源项目,提供用于分析和理解高通量基因组数据的工具。Bioconductor 使用 R 统计编程语言,采用开源和开放开发模式。它每年发布两次版本,并拥有活跃的用户社区。Bioconductor 还以 AMI(Amazon Machine Image)Docker 镜像 的形式提供。

Bioconda 是 conda 包管理器的一个专门针对生物信息学软件的频道。它拥有一个包含 7000 多个生物信息学软件包的仓库,可以直接通过 conda install 命令安装使用。

UniProt 是一个免费开放的数据库,为用户提供全面、高质量且可自由访问的蛋白质序列集合,并附有功能注释信息。

Bowtie 2 是一款超快速且内存高效的比对工具,用于将测序读段比对到长参考序列上。它特别擅长比对长度约为 50 到数百或上千碱基的读段,尤其适用于比对较长的哺乳动物基因组。

Biopython 是由国际开发者团队用 Python 编写的、可用于生物计算的一系列免费工具。这是一项分布式协作项目,旨在开发满足当前及未来生物信息学需求的 Python 库和应用程序。

BioRuby 是一个工具包,包含用于序列分析、通路分析、蛋白质建模和系统发育分析的组件;它支持多种广泛使用的数据格式,并能方便地访问数据库、外部程序和公共网络服务,包括 BLAST、KEGG、GenBank、MEDLINE 和 GO 等。

BioJava 是一个工具包,提供 API 来维护本地 PDB 数据库、加载和操作结构、执行序列和结构比对等标准分析,并以 3D 方式进行可视化。

BioPHP 是一个开源项目,提供一组 PHP 开源代码,包含用于 DNA 和蛋白质序列分析、比对、数据库解析以及其他生物信息学工具的类。

Avogadro 是一款先进的分子编辑器和可视化工具,专为跨平台使用而设计,适用于计算化学、分子建模、生物信息学、材料科学及相关领域。它提供灵活的高质量渲染和强大的插件架构。

Ascalaph Designer 是一款用于分子动力学模拟的程序。在单一图形界面下,既实现了自己的分子动力学算法,也集成了主流软件中的经典力学和量子力学方法。

Anduril 是一个用于分析大型数据集的工作流平台。Anduril 提供了在生物医学研究中分析高通量数据的设施,并且该平台可由第三方完全扩展。现成的工具支持数据可视化、DNA/RNA/ChIP 测序、DNA/RNA 微阵列、细胞计数和图像分析。

Galaxy 是一个基于 Web 的开源平台,用于开展可访问、可重复且透明的计算生物医学研究。它允许没有编程经验的用户轻松指定参数并运行单个工具以及更复杂的工作流。同时,它会记录运行信息,以便任何用户都能重复并理解完整的计算分析过程。

PathVisio 是一款免费的开源通路分析与绘图软件,可用于绘制、编辑和分析生物通路。它基于 Java 开发,可通过插件进行扩展。

Orange 是一个功能强大的数据挖掘和机器学习工具包,能够进行数据分析和可视化。

Basic Local Alignment Search Tool 是一种用于寻找生物序列之间相似区域的工具。该程序会将核酸或蛋白质序列与序列数据库进行比较,并计算其统计显著性。

OSIRIS 是一款面向临床、法医和科研用途的公有领域、免费且开源的 STR 分析软件,已被验证可用作单来源样本的专家系统。

NCBI BioSystems 是一个数据库,提供对生物系统的集成访问,包括其组成基因、蛋白质和小分子,以及描述这些生物系统的文献和其他相关数据,所有内容均整合在 Entrez 系统中。

机器人开发

返回顶部


机器人手臂与开发套件

Eva 是一款具有6个自由度且易于使用的实验室机器人手臂,可轻松实现样品在实验室设备、精密天平等之间的自动装卸。Eva 能够处理多种常见的实验室物品,包括微孔板、PCR 管条、离心管、培养皿和载玻片等,从而自动化重复性高、劳动强度大的样品处理流程。使用 Eva 的常见制造设备辅助应用包括在生产线的起始端和结束端对数控机床、三坐标测量机、金属冲压机以及化学蚀刻机等设备进行自动上下料。


来自 Automata 的 Eva 实验室机器人手臂。来源:Automata

AWS DeepRacer 自动驾驶小车套件

查看 AWS DeepRacer 自动驾驶小车套件

AWS DeepRacer 自动驾驶小车套件硬件规格

  • 车辆:18 分之一比例四驱怪物卡车底盘
  • CPU:英特尔 Atom™ 处理器
  • 内存:4GB RAM
  • 存储:32GB(可扩展)
  • 无线网络:802.11ac
  • 摄像头:400万像素 MJPEG 摄像头
  • 软件:Ubuntu OS 16.04 LTS、Intel® OpenVINO™ 工具包、ROS Kinetic
  • 驱动电池:7.4V/1100mAh 锂聚合物电池
  • 计算电池:13600mAh USB-C PD
  • 接口:4个USB-A接口、1个USB-C接口、1个Micro-USB接口、1个HDMI接口
  • 传感器:集成加速度计和陀螺仪

查看 SunFounder PiCar-V 套件 V2.0,适用于树莓派

机器人学习资源

Coursera 的机器人学课程

通过 edX 的在线课程学习机器人学

Udemy 上的顶级机器人学在线课程

免费的在线人工智能与机器人学课程

REC 基金会机器人行业认证

卡内基梅隆大学机器人学院

RIA 机器人集成商认证计划

AWS RoboMaker – 开发、测试、部署和管理智能机器人应用程序

微软 AI 学校

用于 Azure 认知服务的语言理解 (LUIS)

Windows 10 上的 ROS

Windows ML ROS 节点

用于启动 ROS 和 ROS 2 环境的 Azure VM 模板

谷歌机器人研究

机器人工具与框架

Robot Framework 是一个通用的开源自动化框架。它可以用于测试自动化和机器人流程自动化。它采用易于理解的语法,使用人类可读的关键字。其功能可以通过用 Python 或 Java 实现的库来扩展。

机器人库 (RL) 是一个独立的 C++ 库,用于机器人运动学、路径规划和控制。它涵盖了数学、运动学和动力学、硬件抽象、路径规划、碰撞检测和可视化等功能。RL 可以在多种系统上运行,包括 Linux、macOS 和 Windows。它使用 CMake 作为构建系统,并可以使用 Clang、GCC 和 Visual Studio 进行编译。

Robot Structural Analysis Professional 是由 Autodesk 开发的结构荷载分析软件,用于验证规范符合性,并利用 BIM 集成的工作流程与 Revit 交换数据。它可以帮助您创建更具韧性、可施工性、准确、协调且与 BIM 相连的设计。

PowerMill 是 Autodesk 开发的一款软件,为机器人的离线编程提供强大、灵活且易于使用的工具。借助这些工具,您可以优化机器人路径并模拟制造单元和系统的虚拟样机。

ROS 是一种机器人中间件。尽管 ROS 并非操作系统,但它为异构计算机集群提供了服务,例如硬件抽象、低层设备控制、常用功能的实现、进程间消息传递以及软件包管理等。

ROS2 是一组 软件库和工具,可帮助您构建机器人应用程序。从驱动程序到最先进的算法,再到强大的开发者工具,ROS 拥有您下一个机器人项目所需的一切。而且全部是开源的。

MoveIt 是最广泛使用的操作软件,已被应用于超过 100 台机器人。它提供了一个易于使用的机器人平台,用于开发高级应用、评估新设计以及为工业、商业、研发等领域构建集成产品。

AutoGluon 是一个用于 深度学习 的工具包,可自动化机器学习任务,使您能够轻松地在应用程序中实现强大的预测性能。只需几行代码,您就可以针对表格数据、图像和文本数据训练并部署高精度的深度学习模型。 Gazebo 能够准确高效地模拟室内和室外机器人。它配备了强大的物理引擎、高质量的图形以及程序化和图形化界面。

机器人系统工具箱 提供用于设计、仿真和测试机械臂、移动机器人和人形机器人的工具与算法。对于机械臂和人形机器人,该工具箱包含基于刚体树表示的碰撞检测、轨迹生成、正逆运动学以及动力学算法。 对于移动机器人,它则包括地图构建、定位、路径规划、路径跟踪和运动控制等算法。该工具箱还提供了常见工业机器人应用的参考示例,并包含一个可导入、可视化和仿真的商用工业机器人模型库。

Intel 机器人开发套件 是一款用于生成机器人软件开发套件(RDK)的工具,专为自主设备设计,其中包括 ROS2 核心以及感知、规划、控制驱动等能力包。它提供灵活的构建/运行时配置,在多样化的硬件选择基础上满足不同的自主需求,例如使用不同的硬件引擎(CPU/GPU/VPU)来加速人工智能相关功能。

Arduino 是一个用于构建电子项目的开源平台。Arduino 包括一块可编程的物理电路板(通常称为微控制器)以及运行在计算机上的软件或 IDE(集成开发环境),用于编写并将代码上传到物理电路板上。

ArduPilot 旨在创建并使用值得信赖的自主无人飞行器系统,以造福全人类。ArduPilot 提供一套全面的工具,适用于几乎任何类型的飞行器和应用场景。

AirSim 是一款基于虚幻引擎的无人机、汽车等模拟器(我们现在也有实验性的 Unity 版本)。它是开源、跨平台的,并支持与主流飞控系统(如 PX4)的硬件在环仿真,从而实现物理和视觉上高度逼真的模拟效果。

JPL 开源火星车 是 JPL 用来探索火星表面的六轮火星车设计的开源、可自行组装缩小版。这款开源火星车几乎完全由市售的现成部件(COTS)组成。该项目旨在为希望涉足机械工程、软件、电子或机器人技术的人们提供教学和学习体验。

激光雷达(LiDAR) 是一种遥感技术,它向目标发射脉冲激光,并根据反射光束的时间和波长来估算距离;在某些应用中(如激光扫描),还可用于创建物体及其表面特征的三维模型。该技术常用于飞机和自动驾驶车辆。

AliceVision 是一个摄影测量计算机视觉框架,提供三维重建和相机跟踪算法。AliceVision 的目标是提供强大的软件基础,搭载最先进的计算机视觉算法,这些算法可以被测试、分析和重复使用。该项目是学术界与工业界合作的成果,旨在提供具有生产级所需鲁棒性和质量的前沿算法。

CARLA 是一个用于自动驾驶研究的开源模拟器。CARLA 从零开始开发,旨在支持自动驾驶系统的开发、训练和验证。除了开源代码和协议外,CARLA 还提供了专门为此目的创建的开放数字资产(城市布局、建筑物、车辆),可供自由使用。该仿真平台支持灵活配置传感器套件和环境条件。

ROS 桥接插件 是一个用于将 ROS 与 CARLA 模拟器连接的软件包。

ROS-Industrial 是一个开源项目,旨在将 ROS 软件的先进功能扩展到制造业领域。

AWS RoboMaker 是机器人开发者进行大规模仿真、测试和安全部署机器人应用的最完整云解决方案。RoboMaker 提供完全托管且可扩展的仿真基础设施,客户可用于多机器人仿真以及结合回归测试的 CI/CD 集成。

Microsoft 机器人开发工作室 是一个免费的基于 .NET 的编程环境,用于构建机器人应用程序。

Visual Studio Code 的 ROS 扩展 是一个为 Robot Operating System (ROS) 开发提供支持的扩展。

Azure Kinect ROS 驱动程序 是一个节点,它将来自 Azure Kinect 开发者套件 的传感器数据发布到 Robot Operating System (ROS) 上。使用 ROS 的开发者可以通过此节点将 Azure Kinect 开发者套件连接到现有的 ROS 系统。

Azure IoT Hub for ROS 是一个 ROS 软件包,它与 Microsoft Azure IoT Hub 服务协同工作,用于将机器人发送的遥测信息中继到 Azure IoT Hub,或者利用动态重新配置功能将数字孪生中的属性反映到机器人上。

ROS 2 结合 ONNX Runtime 是一个程序,它利用 ROS 2 在不同硬件平台上运行各自的 AI 加速库,以优化 ONNX 模型的执行效率。

Azure 认知服务 LUIS ROS 节点 是一个 ROS 节点,用于连接 ROS 和 Azure 语言理解服务。它可以被配置为直接处理来自麦克风的音频,也可以订阅 ROS 音频话题,然后对语音进行处理并生成“意图”ROS 消息,这些消息可被另一个 ROS 节点进一步处理,以生成 ROS 命令。

电荷、电场与电势

返回顶部

 - 电荷与静电力(库仑定律):电荷、电场与电势
 - 电场:电荷、电场与电势
 - 电势能、电势与电压:电荷、电场与电势


电势能。来源:sparkfun


电路

返回顶部

- 欧姆定律及含电阻的电路:电路
- 含电容器的电路:电路


电路图。来源:sdsu-physics


电路符号。来源:andrewpover.co.uk

磁力、磁场与法拉第定律

返回顶部

- 磁体与磁力:磁力、磁场与法拉第定律
- 电流产生的磁场:磁力、磁场与法拉第定律
- 电动机:磁力、磁场与法拉第定律
- 磁通量与法拉第定律


磁场。来源:vecteezy


安培定律。来源:sdsu-physics


法拉第定律。来源:sdsu-physics

电磁波与干涉

返回顶部

- 电磁波简介:电磁波与干涉
- 电磁波的干涉


电磁波。来源:differencebetween


EMI频谱。来源:electrical4u

CUDA 开发

返回顶部



CUDA 工具包。来源:NVIDIA Developer CUDA

CUDA 学习资源

CUDA 是由 NVIDIA 开发的并行计算平台和编程模型,用于在图形处理器(GPU)上进行通用计算。借助 CUDA,开发者能够通过利用 GPU 的强大算力显著加速计算应用。在 GPU 加速的应用中,工作负载中的串行部分在 CPU 上运行,而 CPU 则针对单线程优化;计算密集型部分则在数千个 GPU 核心上并行执行。使用 CUDA 时,开发者可以采用 C、C++、Fortran、Python 和 MATLAB 等常用语言进行编程。

CUDA 工具包文档

CUDA 快速入门指南

CUDA 在 WSL 上的使用

TensorFlow 的 GPU 支持

NVIDIA 深度学习 cuDNN 文档

NVIDIA GPU 云文档

NVIDIA NGC 是一个面向深度学习、机器学习和高性能计算(HPC)工作loads的 GPU 优化软件中心。

NVIDIA NGC 容器 是一个注册表,为研究人员、数据科学家和开发者提供对 AI、机器学习和 HPC 领域 GPU 加速软件的全面目录的便捷访问。这些容器充分利用了本地和云端的 NVIDIA GPU。

CUDA 工具、库和框架

CUDA 工具包 是一套工具和库的集合,为开发高性能 GPU 加速应用提供了完整的开发环境。通过 CUDA 工具包,您可以在 GPU 加速的嵌入式系统、桌面工作站、企业数据中心、云平台以及 HPC 超级计算机上开发、优化和部署您的应用程序。该工具包包含 GPU 加速的库、调试和优化工具、C/C++ 编译器以及运行时库,支持在 x86、Arm 和 POWER 等主流架构上构建和部署应用。

NVIDIA cuDNN 是一个针对 深度神经网络 的 GPU 加速原语库。cuDNN 提供了高度优化的标准实现,例如前向和反向卷积、池化、归一化和激活层等操作。cuDNN 可以加速广泛使用的深度学习框架,包括 Caffe2ChainerKerasMATLABMxNetPyTorchTensorFlow

CUDA-X HPC 是一系列库、工具、编译器和 API 的集合,旨在帮助开发者解决世界上最具挑战性的科学计算问题。CUDA-X HPC 包含专为高性能计算(HPC)设计的高度优化的核心算法。

NVIDIA 容器工具包 是一组工具和库,使用户能够构建和运行 GPU 加速的 Docker 容器。该工具包包括一个容器运行时 以及用于自动配置容器以充分利用 NVIDIA GPU 的实用工具。

Minkowski Engine 是一个用于稀疏张量的自动微分库。它支持所有标准的神经网络层,如卷积、池化、反池化以及稀疏张量上的广播操作。

CUTLASS 是一组 CUDA C++ 模板抽象,用于在 CUDA 中实现各个层次和规模的高性能矩阵乘法(GEMM)。它采用了与 cuBLAS 类似的分层分解和数据移动策略。

CUB 是为 CUDA C++ 内核开发者提供的协作式原语库。

Tensorman 是由 System76 开发的用于轻松管理 TensorFlow 容器的工具。Tensorman 允许 TensorFlow 在一个与系统其他部分隔离的环境中运行。这个虚拟环境可以独立于基础系统运行,从而让您在任何支持 Docker 运行时的 Linux 发行版上使用任意版本的 TensorFlow。

Numba 是由 Anaconda, Inc. 赞助的一个开源、兼容 NumPy 的 Python 优化编译器。它利用 LLVM 编译器项目将 Python 语法转换为机器代码。Numba 可以编译大量以数值计算为主的 Python 代码,包括许多 NumPy 函数。此外,Numba 还支持循环的自动并行化、生成 GPU 加速代码以及创建 ufunc 和 C 回调函数。

Chainer 是一个基于 Python 的深度学习框架,旨在提供灵活性。它提供了基于“定义即运行”方法(动态计算图)的自动微分 API,以及面向对象的高级 API 来构建和训练神经网络。此外,它还通过 CuPy 支持 CUDA/cuDNN,以实现高性能的训练和推理。

CuPy 是一个在 CUDA 上实现的与 NumPy 兼容的多维数组库。CuPy 由核心的多维数组类 cupy.ndarray 及其上的众多函数组成。它支持一部分 numpy.ndarray 接口。

CatBoost 是一个快速、可扩展且高性能的基于决策树的 梯度提升 库,适用于排名、分类、回归及其他机器学习任务,支持 Python、R、Java 和 C++。它同时支持 CPU 和 GPU 上的计算。

cuDF 是一个 GPU DataFrame 库,用于加载、连接、聚合、过滤及对数据进行其他操作。cuDF 提供了一个类似 pandas 的 API,数据工程师和数据科学家会感到非常熟悉,因此他们可以轻松地加速工作流程,而无需深入了解 CUDA 编程。

cuML 是一组库,实现了机器学习算法和数学原语函数,这些库与其他 RAPIDS 项目具有兼容的 API。cuML 使数据科学家、研究人员和软件工程师能够在 GPU 上运行传统的表格型机器学习任务,而无需深入 CUDA 编程细节。在大多数情况下,cuML 的 Python API 与 scikit-learn 的 API 相匹配。

ArrayFire 是一个通用库,简化了针对并行和大规模并行架构(包括 CPU、GPU 和其他硬件加速设备)开发软件的过程。

Thrust 是一个 C++ 并行编程库,其接口类似于 C++ 标准库。Thrust 的高层接口极大地提高了程序员的生产力,同时实现了 GPU 和多核 CPU 之间的性能可移植性。

AresDB 是一个基于 GPU 的实时分析存储和查询引擎。它具有查询延迟低、数据新鲜度高以及高效的内存和磁盘存储管理等特点。

Arraymancer 是 Nim 语言中的一个张量(N 维数组)项目。其主要目标是提供一个快速且易用的 CPU、CUDA 和 OpenCL ndarray 库,以此为基础构建科学计算生态系统。

Kintinuous 是一个实时稠密视觉 SLAM 系统,仅需一个低成本的 RGB-D 传感器,即可在数百米范围内实时生成高质量、全局一致的点云和网格重建结果。

GraphVite 是一个通用的图嵌入引擎,专注于在各种应用中实现高速、大规模的嵌入学习。

MATLAB 开发

返回顶部


MATLAB 学习资源

MATLAB 是一种编程语言,能够直接进行矩阵和数组数学运算等数值计算。

MATLAB 文档

MATLAB 入门

MATLAB Academy 提供的 MATLAB 和 Simulink 培训

MathWorks 认证项目

Apache Spark 基础 | MATLAB & Simulink

MATLAB Hadoop 和 Spark | MATLAB & Simulink

Udemy 上的 MATLAB 在线课程

Coursera 上的 MATLAB 在线课程

edX 上的 MATLAB 在线课程

构建 MATLAB GUI

MATLAB 风格指南 2.0

使用 MATLAB 和 Simulink 设置 Git 源代码管理

使用 MATLAB 和 Simulink 通过 Git 拉取、推送和获取文件

使用 MATLAB 和 Simulink 创建新仓库

PRMLT 是用于 PRML 教材中机器学习算法的 MATLAB 代码。

MATLAB 工具、库和框架

MATLAB 和 Simulink 服务与应用列表

MATLAB 云 是一项服务,允许您在从 MathWorks Cloud 到包括 AWSAzure 在内的 公共云 的各种云环境中运行。

MATLAB Online™ 是一项服务,允许用户通过 Google Chrome 等网页浏览器使用 MATLAB 和 Simulink。

Simulink 是一个基于模型的设计的框图环境。它支持嵌入式系统的仿真、自动代码生成和持续测试。

Simulink Online™ 是一项通过您的网页浏览器提供 Simulink 访问的服务。

MATLAB Drive™ 是一项服务,使您能够随时随地存储、访问和处理文件。

MATLAB 并行服务器™ 是一种工具,可将 MATLAB® 程序和 Simulink® 仿真扩展到集群和云环境中。您可以在桌面端对程序和仿真进行原型设计,然后无需重新编码即可在集群和云上运行。MATLAB 并行服务器支持批处理作业、交互式并行计算以及大型矩阵的分布式计算。

MATLAB Schemer 是一个 MATLAB 软件包,可以轻松更改 MATLAB 显示界面和 GUI 的颜色方案(主题)。

LRSLibrary 是一套用于视频背景建模与减除的低秩与稀疏工具。该库最初设计用于视频中的运动目标检测,但也可用于其他计算机视觉和机器学习问题。

图像处理工具箱™ 是一种工具,提供了一整套符合行业标准的算法和工作流应用程序,用于图像处理、分析、可视化及算法开发。您可以执行图像分割、图像增强、降噪、几何变换、图像配准以及三维图像处理。

计算机视觉工具箱™ 是一种工具,提供用于设计和测试计算机视觉、3D 视觉和视频处理系统的算法、函数和应用程序。您可以进行目标检测与跟踪,以及特征检测、提取和匹配。您还可以自动化单目、双目和鱼眼相机的标定流程。对于 3D 视觉,该工具箱支持视觉和点云 SLAM、立体视觉、运动恢复结构以及点云处理。

统计与机器学习工具箱™ 是一种工具,提供用于描述、分析和建模数据的函数和应用程序。您可以使用描述性统计、可视化和聚类进行探索性数据分析;为数据拟合概率分布;生成蒙特卡洛模拟所需的随机数,并进行假设检验。回归和分类算法使您能够从数据中得出推论,并以交互方式使用分类与回归学习器应用程序,或以编程方式使用 AutoML 构建预测模型。

Lidar 工具箱™ 是一种工具,提供用于设计、分析和测试激光雷达处理系统的算法、函数和应用程序。您可以执行目标检测与跟踪、语义分割、形状拟合、激光雷达配准以及障碍物检测。Lidar 工具箱支持激光雷达与摄像头的交叉标定,适用于结合计算机视觉和激光雷达处理的工作流程。

地图工具箱™ 是一种工具,提供用于转换地理数据和创建地图显示的算法和函数。您可以将数据置于地理背景下进行可视化,利用超过 60 种地图投影创建地图显示,并将来自不同来源的数据转换为一致的地理坐标系。

UAV 工具箱 是一款应用程序,提供用于设计、仿真、测试和部署无人机(UAV)及无人飞行器应用的工具和参考应用。您可以设计自主飞行算法、无人机任务和飞行控制器。飞行日志分析器应用程序允许您以交互方式分析常见飞行日志格式中的三维飞行路径、遥测信息和传感器读数。

并行计算工具箱™ 是一种工具,使您能够利用多核处理器、GPU 和计算机集群来解决计算密集型和数据密集型问题。并行 for 循环、特殊数组类型以及并行化的数值算法等高级构造,使您无需进行 CUDA 或 MPI 编程即可实现 MATLAB® 应用程序的并行化。该工具箱允许您在 MATLAB 及其他工具箱中使用支持并行计算的函数。您还可以将该工具箱与 Simulink® 结合使用,以并行方式运行模型的多个仿真。程序和模型既可以在交互模式下运行,也可以在批处理模式下运行。

偏微分方程工具箱™ 是一种提供用于通过有限元分析求解结构力学、传热以及一般偏微分方程 (PDE) 的函数的工具。

ROS 工具箱 是一种提供 MATLAB® 和 Simulink® 与机器人操作系统 (ROS 和 ROS 2) 之间接口的工具,使您能够创建 ROS 节点网络。该工具箱包含 MATLAB 函数和 Simulink 模块,用于导入、分析和回放以 rosbag 文件格式记录的 ROS 数据。您还可以连接到实时 ROS 网络以访问 ROS 消息。

机器人技术工具箱™ 提供了一个将机器人技术特定功能(设计、仿真和测试机械臂、移动机器人和人形机器人)引入 MATLAB 的工具箱,充分利用了 MATLAB 的原生能力(线性代数、可移植性、图形)。该工具箱还为移动机器人提供了机器人运动模型(自行车模型)、路径规划算法(虫子算法、距离变换、D*、PRM)、运动学动力学规划(格网法、RRT)、定位(EKF、粒子滤波器)、地图构建(EKF)以及同时定位与地图构建(EKF)等功能,并包含一个非完整约束车辆的 Simulink 模型。此外,该工具箱还包括一个详细的四旋翼飞行机器人的 Simulink 模型。

深度学习工具箱™ 是一种提供框架的工具,用于借助算法、预训练模型和应用程序来设计和实现深度神经网络。您可以使用卷积神经网络 (ConvNets, CNNs) 和长短期记忆 (LSTM) 网络对图像、时间序列和文本数据进行分类和回归。借助自动微分、自定义训练循环和共享权重,您可以构建生成对抗网络 (GANs) 和暹罗网络等网络架构。通过 Deep Network Designer 应用程序,您可以以图形化方式设计、分析和训练网络。它可以通过 ONNX 格式与 TensorFlow™ 和 PyTorch 进行模型交换,并可从 TensorFlow-Keras 和 Caffe 导入模型。该工具箱支持迁移学习,提供 DarkNet-53、ResNet-50、NASNet、SqueezeNet 等多种预训练模型。

强化学习工具箱™ 是一种提供应用程序、函数和 Simulink® 块的工具,用于使用强化学习算法(包括 DQN、PPO、SAC 和 DDPG)训练策略。您可以使用这些策略为资源分配、机器人技术和自主系统等复杂应用实现控制器和决策算法。

深度学习 HDL 工具箱™ 是一种提供函数和工具的工具,用于在 FPGA 和 SoC 上原型化和实现深度学习网络。它为在受支持的 Xilinx® 和 Intel® FPGA 以及 SoC 设备上运行各种深度学习网络提供了预构建的比特流。性能分析和估算工具使您能够通过探索设计、性能和资源利用率之间的权衡来定制深度学习网络。

模型预测控制工具箱™ 是一种提供函数、应用程序和 Simulink® 块的工具,用于使用线性和非线性模型预测控制 (MPC) 设计和仿真控制器。该工具箱允许您指定被控对象和扰动模型、预测时域、约束条件和权重。通过运行闭环仿真,您可以评估控制器的性能。

Vision HDL 工具箱™ 是一种提供像素流算法的工具,用于在 FPGA 和 ASIC 上设计和实现视觉系统。它提供一个设计框架,支持多种接口类型、帧尺寸和帧率。该工具箱中的图像处理、视频和计算机视觉算法采用适合 HDL 实现的架构。

SoC 块集™ 是一种提供 Simulink® 块和可视化工具的工具,用于建模、仿真和分析 ASIC、FPGA 和片上系统 (SoC) 的硬件和软件架构。您可以通过内存模型、总线模型和 I/O 模型构建系统架构,并将架构与算法一起进行仿真。

无线 HDL 工具箱™ 是一种提供经过预先验证、可直接用于硬件的 Simulink® 块和子系统的工具,用于开发 5G、LTE 以及基于 OFDM 的自定义无线通信应用。它包括参考应用、IP 模块以及帧级与样本级处理之间的网关。

ThingSpeak™ 是一种物联网分析服务,使您能够在云端聚合、可视化和分析实时数据流。ThingSpeak 提供您设备发布到 ThingSpeak 的数据的即时可视化。借助 ThingSpeak 中执行 MATLAB® 代码的功能,您可以在数据流入时对其进行在线分析和处理。ThingSpeak 经常用于需要分析功能的物联网系统原型设计和概念验证。

SEA-MAT 是一项协作项目,旨在为海洋学界组织和分发 MATLAB 工具。

Gramm 是一个完整的 MATLAB 数据可视化工具箱。它提供易于使用且高层次的界面,可用于生成具有多种统计可视化效果的高出版质量图表,以展示复杂数据。Gramm 的灵感来源于 R 语言的 ggplot2 库。

hctsa 是一个使用 MATLAB 运行高度比较性时间序列分析的软件包。

Plotly 是 MATLAB 的绘图库。

YALMIP 是一个用于优化建模的 MATLAB 工具箱。

GNU Octave 是一种高级解释型语言,主要用于数值计算。它提供了求解线性和非线性问题的数值方法,并可用于进行其他数值实验。此外,Octave 还具备强大的绘图功能,可用于数据可视化和处理。

Python 开发

返回顶部


Python 学习资源

Python 是一种解释型、高级编程语言。Python 在数据科学和机器学习领域得到了广泛应用。

Python 开发者指南 是一份全面的资源,面向新老贡献者,帮助大家参与 Python 的开发。该指南由维护 Python 的同一社区负责更新和维护。

Azure Functions Python 开发者指南 是关于使用 Python 开发 Azure Functions 的入门教程。以下内容假定您已经阅读过 Azure Functions 开发者指南

CheckiO 是一个编程学习平台兼游戏化网站,通过解决代码挑战并争夺最优雅、最具创意的解决方案来教授 Python。

Python Institute

PCEP – 认证初级 Python 程序员资格认证

PCAP – Python 编程助理认证

PCPP – Python 编程专业级认证 1

PCPP – Python 编程专业级认证 2

MTA:使用 Python 进行编程入门认证

在 Visual Studio Code 中开始使用 Python

Google 的 Python 风格指南

Google 的 Python 教育课程

Real Python

Forrest Knight 的开源 Python 计算机科学学位课程

数据科学中的 Python 入门课程

W3schools 的 Python 入门课程

Codecademy 的 Python 3 课程

通过 edX 的在线课程和班级学习 Python

Coursera 上的 Python 在线课程

Python 框架与工具

Python 包索引 (PyPI) 是 Python 编程语言的软件仓库。PyPI 帮助你查找和安装由 Python 社区开发并共享的软件。

PyCharm 是我用过的最好的 IDE。借助 PyCharm,你可以在一个地方访问命令行、连接数据库、创建虚拟环境以及管理版本控制系统,从而避免在不同窗口之间频繁切换,节省时间。

Python Tools for Visual Studio (PTVS) 是一款免费的开源插件,可将 Visual Studio 转变为 Python IDE。它支持编辑、浏览、IntelliSense、Python/C++ 混合调试、远程 Linux/MacOS 调试、性能分析、IPython 以及使用 Django 等框架进行 Web 开发。

Pylance 是一个扩展,与 Visual Studio Code 中的 Python 配合使用,提供高效的语言支持。Pylance 的底层由 Microsoft 的静态类型检查工具 Pyright 提供支持。

Pyright 是一款针对大型 Python 代码库的快速类型检查器。它可以运行在“监视”模式下,并在文件修改时执行快速的增量更新。

Django 是一个高级 Python Web 框架,鼓励快速开发和简洁、实用的设计。

Flask 是一个用 Python 编写的微型 Web 框架。它被归类为微型框架,因为它不需要特定的工具或库。

Web2py 是一个用 Python 编写的开源 Web 应用程序框架,允许 Web 开发人员编写动态 Web 内容。单个 Web2py 实例可以运行多个使用不同数据库的网站。

AWS Chalice 是一个用于用 Python 编写无服务器应用程序的框架。它使你能够快速创建和部署使用 AWS Lambda 的应用程序。

Tornado 是一个 Python Web 框架和异步网络库。Tornado 使用非阻塞网络 I/O,能够扩展到数以万计的开放连接。

HTTPie 是一个命令行 HTTP 客户端,旨在尽可能简化与 Web 服务的 CLI 交互。HTTPie 专为测试、调试以及与 API 和 HTTP 服务器的一般交互而设计。

Scrapy 是一个快速、高阶的 Web 爬取和数据抓取框架,用于爬取网站并从其页面中提取结构化数据。它可以用于广泛的目的,从数据挖掘到监控和自动化测试。

Sentry 是一项服务,可帮助你实时监控和修复崩溃问题。其服务器端使用 Python 编写,但包含完整的 API,可用于从任何语言、任何应用程序发送事件。

Pipenv 是一种工具,旨在将各个包管理领域的最佳实践(如 Bundler、Composer、npm、Cargo、Yarn 等)引入 Python 生态系统。

Python Fire 是一个库,可以从任何 Python 对象自动生成命令行界面 (CLI)。

Bottle 是一个快速、简单且轻量级的 WSGI 微型 Web 框架,专为 Python 设计。它以单个文件模块的形式分发,除 Python 标准库 外没有任何依赖。

CherryPy 是一个极简主义的面向对象 Python HTTP Web 框架。

Sanic 是一个基于 Python 3.6+ 的 Web 服务器和 Web 框架,专为高性能而设计。

Pyramid 是一个小型且快速的开源 Python Web 框架。它使实际的 Web 应用开发和部署变得更加有趣和高效。

TurboGears 是一个混合型 Web 框架,既可以作为全栈框架,也可以作为微型框架使用。

Falcon 是一个可靠、高性能的 Python Web 框架,适用于构建大规模应用程序后端和微服务,支持 MongoDB、可插拔应用以及自动生成的管理员界面。

神经网络智能 (NNI) 是一个开源的 AutoML 工具包,用于自动化机器学习生命周期,包括 特征工程神经架构搜索模型压缩超参数调优

Dash 是一个流行的 Python 框架,用于构建 ML 和数据科学相关的 Web 应用程序,支持 Python、R、Julia 和 Jupyter。

Luigi 是一个 Python 模块,可以帮助你构建复杂的批处理作业管道。它负责处理依赖关系解析、工作流管理、可视化等功能,并内置了对 Hadoop 的支持。

Locust 是一个易于使用、可脚本化且可扩展的性能测试工具。

spaCy 是一个用于 Python 和 Cython 的高级自然语言处理库。

NumPy 是使用 Python 进行科学计算所必需的基础包。

Pillow 是 PIL(Python 图像库)的一个友好分支。

IPython 是一种多语言交互式计算的命令行外壳,最初为 Python 编程语言开发,提供了增强的内省功能、富媒体支持、额外的 shell 语法、Tab 补全以及丰富的历史记录。

GraphLab Create 是一个基于 C++ 引擎的 Python 库,可用于快速构建大规模、高性能的机器学习模型。

Pandas 是一个快速、强大且易于使用的开源数据结构、数据分析和操作工具,构建于 Python 编程语言之上。

PuLP 是一个用 Python 编写的线性规划建模工具。PuLP 可以生成 LP 文件,并调用高度优化的求解器(如 GLPK、COIN CLP/CBC、CPLEX 和 GUROBI)来解决这些线性问题。

Matplotlib 是一个用于在 Python 中创建静态、动画和交互式可视化的 2D 绘图库。Matplotlib 可以在各种打印格式和跨平台的交互式环境中生成出版质量的图表。

Scikit-Learn 是一个简单而高效的工具,用于数据挖掘和数据分析。它构建于 NumPy、SciPy 和 Matplotlib 之上。

C/C++ 开发

返回顶部


C/C++ 学习资源

C++ 是一种跨平台语言,由 Bjarne Stroustrup 在 C 语言的基础上扩展而来,可用于构建高性能应用程序。

C 是一种通用的高级编程语言,最初由 Dennis M. Ritchie 在贝尔实验室开发 UNIX 操作系统时创建。它支持结构化编程、词法作用域和递归,并具有静态类型系统。C 语言还提供了能够高效映射到典型机器指令的构造,这使其成为当今使用最广泛的编程语言之一。

嵌入式 C 是由 C 标准委员会 为 C 语言定义的一组扩展,旨在解决不同 嵌入式系统 中 C 语言扩展存在的差异问题。这些扩展有助于增强微处理器的功能,例如定点运算、多个独立的内存区以及基本的 I/O 操作。因此,嵌入式 C 成为全球最受欢迎的嵌入式软件编程语言。

JetBrains 的 C 和 C++ 开发工具

cppreference.com 上的开源 C++ 库

C++ 图形库

MATLAB 中的 C++ 库

C++ 工具和库相关文章

Google C++ 风格指南

Google Developers 上的 C++ 入门课程

Fuchsia 的 C++ 风格指南

OpenTitan 的 C 和 C++ 编码风格指南

Chromium 的 C++ 风格指南

C++ 核心指南

ROS 的 C++ 风格指南

学习 C++

学习 C:交互式 C 教程

C++ 学院

LinkedIn Learning 上的 C++ 在线培训课程

W3Schools 上的 C++ 教程

edX 上的 C 语言在线课程

edX 上的 C++ 在线课程

Codecademy 上的 C++ 学习课程

Coursera 上的“人人编程”课程:C 和 C++

Coursera 上的“面向程序员的 C++”课程

Coursera 上的顶级 C 课程

Udemy 上的 C++ 在线课程

Udemy 上的顶级 C 课程

Udemy 上针对初学者的嵌入式 C 编程基础课程

Udacity 上的“面向程序员的 C++”课程

Pluralsight 上的 C++ 基础课程

MIT 免费在线课程材料中的 C++ 入门

哈佛大学“面向程序员的 C++ 入门”课程

哈佛大学的 C 语言在线课程

C/C++ 工具与框架

AWS SDK for C++

Azure SDK for C++

Azure SDK for C

Google Cloud 服务的 C++ 客户端库

Visual Studio 是微软推出的一款集成开发环境(IDE),功能强大,适用于软件开发的各个方面。Visual Studio 可以轻松地编辑、调试、构建和发布应用程序,尤其适合使用 Windows API、Windows Forms、Windows Presentation Foundation 和 Windows Store 等微软开发平台的项目。

Visual Studio Code 是一款专为构建和调试现代 Web 和云应用而重新设计和优化的代码编辑器。

Vcpkg 是一个适用于 Windows、Linux 和 macOS 的 C++ 库管理器。

ReSharper C++ 是 JetBrains 为 C++ 开发者开发的 Visual Studio 扩展。

AppCode 会持续监控代码质量,及时提醒错误和潜在问题,并自动提供快速修复建议。AppCode 提供大量针对 Objective-C、Swift、C/C++ 的代码检查,同时也支持其他多种语言的代码检查,所有检查均实时进行。

CLion 是 JetBrains 推出的一款跨平台 C 和 C++ 开发 IDE。

Code::Blocks 是一款免费的 C/C++ 和 Fortran IDE,旨在满足用户最苛刻的需求。它具有高度可扩展性和完全可配置性,基于插件框架设计,可通过安装插件进行扩展。

CppSharp 是一种工具及库集合,用于简化原生 C/C++ 代码与 .NET 生态系统的集成。它能够读取 C/C++ 头文件和库文件,并生成必要的胶水代码,将原生 API 封装为托管 API。通过这种方式,可以在托管代码中调用现有的原生库,或为原生代码库添加托管脚本支持。

Conan 是一个开源包管理器,专为 C++ 开发及依赖项管理而设计,使其能够与现代开发生态系统相媲比拟。

高性能计算(HPC)SDK 是一套全面的工具箱,用于加速 GPU 上的 HPC 建模和仿真应用。它包含在 NVIDIA 平台上开发 HPC 应用所需的 C、C++ 和 Fortran 编译器、库以及分析工具。

Thrust 是一个 C++ 并行编程库,其接口与 C++ 标准库类似。Thrust 的高级别接口极大地提高了程序员的生产力,同时实现了 GPU 和多核 CPU 之间的性能可移植性。它与 CUDA、TBB 和 OpenMP 等成熟技术的互操作性使其能够轻松集成到现有软件中。

Boost 是一项专注于前沿 C++ 技术的教育活动。自 2007 年以来,Boost 一直参与每年一度的 Google 夏季代码大赛,学生们通过参与 Boost 库的开发来提升自己的技能。

Automake 是一个用于自动生成符合 GNU 编码标准的 Makefile.in 文件的工具。Automake 需要与 GNU Autoconf 配合使用。

Cmake 是一个开源的跨平台工具集,用于构建、测试和打包软件。CMake 通过简单且与平台和编译器无关的配置文件来控制软件的编译过程,并生成可在您选择的编译环境中使用的原生 makefile 和工作区。

GDB 是一个调试器,它允许您在程序运行时查看其内部状态,或在程序崩溃时了解当时的情况。

GCC 是一个编译器集合,包含针对 C、C++、Objective-C、Fortran、Ada、Go 和 D 的前端,以及这些语言的库。

GSL 是一个面向 C 和 C++ 程序员的数值库。它是根据 GNU 通用公共许可证发布的自由软件。该库提供了广泛的数学例程,如随机数生成器、特殊函数和最小二乘拟合等。整个库共有超过 1000 个函数,并附带一个庞大的测试套件。

OpenGL 扩展加载库(GLEW) 是一个跨平台的开源 C/C++ 扩展加载库。GLEW 提供高效的运行时机制,用于确定目标平台上支持哪些 OpenGL 扩展。

Libtool 是一个通用的库支持脚本,它通过一致且可移植的接口隐藏了使用共享库的复杂性。要使用 Libtool,只需将新的通用库构建命令添加到您的 Makefile、Makefile.in 或 Makefile.am 中即可。

Maven 是一个用于软件项目管理和理解的工具。基于项目对象模型(POM)的概念,Maven 可以从一个中心化的信息源管理项目的构建、报告和文档。

TAU(调优与分析工具) 能够通过插桩函数、方法、基本块和语句,以及基于事件的采样来收集性能信息。它支持所有 C++ 语言特性,包括模板和命名空间。

Clang 是一个生产级的 C、Objective-C、C++ 和 Objective-C++ 编译器,适用于 X86-32、X86-64 和 ARM 架构(其他目标可能存在一些限制,但通常容易解决)。Clang 已被广泛应用于生产环境,用于构建性能关键型软件,如 Google Chrome 或 Firefox。

OpenCV 是一个高度优化的库,专注于实时应用。跨平台的 C++、Python 和 Java 接口支持 Linux、MacOS、Windows、iOS 和 Android 系统。

Libcu++ 是 NVIDIA 为整个系统提供的 C++ 标准库。它提供了 C++ 标准库的异构实现,可以在 CPU 和 GPU 代码之间无缝使用。

ANTLR(另一种语言识别工具) 是一个功能强大的解析器生成器,可用于读取、处理、执行或转换结构化文本或二进制文件。它被广泛用于构建语言、工具和框架。ANTLR 根据文法生成解析器,不仅可以构建语法树,还可以生成监听器接口,方便对感兴趣的短语进行响应。

Oat++ 是一个轻量级且功能强大的 C++ Web 框架,适用于高度可扩展且资源高效的应用。它没有依赖项,易于移植。

JavaCPP 是一个程序,它能够在 Java 中高效地访问原生 C++ 代码,类似于某些 C/C++ 编译器与汇编语言交互的方式。

Cython 是一种语言,它使得为 Python 编写 C 扩展变得像编写 Python 代码一样简单。Cython 基于 Pyrex,但支持更先进的功能和优化,例如调用 C 函数以及在变量和类属性上声明 C 类型。

Spdlog 是一个非常快速、仅包含头文件或已编译的 C++ 日志库。

Infer 是一个用于 Java、C++、Objective-C 和 C 的静态分析工具。Infer 使用 OCaml 编写。

贡献

  • 如果您希望为本指南做出贡献,只需提交一个 Pull Request 即可。

许可证

返回顶部

本作品采用 知识共享署名 4.0 国际许可协议(CC BY 4.0) 发布。

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

149.5k|★★☆☆☆|今天
开发框架Agent语言模型

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|4天前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|5天前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|今天
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|2天前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|2天前
其他图像数据工具