9.1 深度学习库
基于三个指标:Github上的活跃度、Stack Overflow上的活跃度、谷歌搜索结果数量,给出23 个热门深度学习库的排名。
https://blog.csdn.net/UzV80PX5V412NE/article/details/78714380?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
9.1.1 TensorFlow
TensorFlow最初于2015年发布,是一款开源 机器学习 框架,易于在各种平台上使用和部署。它是机器学习中维护得最好和广泛使用的框架之一。

谷歌为支持其研究和生产目标而创建,目前TensorFlow已被多家公司广泛使用,包括Dropbox,eBay,Intel,Twitter和Uber等。TensorFlow可用于Python,C ++,Haskell,Java,Go,Rust以及Java等。当然,还可以找到其他编程语言的第三方软件包。该框架允许你使用流程图开发神经网络,甚至是其他计算模型。
在线学习:
安装方式:
Windows 10 + Anaconda3(Python3.7环境):pip install tensorflow
9.1.2 PyTorch
在线学习:https://mofanpy.com/tutorials/machine-learning/torch/
(1)Torch
Torch 最初于2002年发布,它是一个机器学习库,提供广泛的 深度学习 算法。开源框架在处理机器学习项目时为你提供了优化的灵活性和速度,而不会在过程中造成不必要的复杂性。

它使用脚本语言Lua编写,并附带一个底层C实现。Torch的一些主要功能包括N维数组,线性代数例程,数值优化例程,高效GPU支持以及对iOS和Android平台的支持。
(2)PyTorch
PyTorch 是一个基于Python的科学计算包,其旨在服务两类场合:
替代numpy发挥GPU潜能
一个提供了高度灵活性和效率的深度学习实验性平台
(2.1)PyTorch安装


(2.2)PyTorch主要元素
PyTorch张量
张量只是多维数组。PyTorch中的张量类似于numpy的ndarrays,另外,张量也可以在GPU上使用。PyTorch支持各种类型的张量。
数学运算
与numpy一样,科学计算库非常重要的一点是能够实现高效的数学功能。而PyTorch提供了一个类似的借口,可以使用200个以上的数学运算。
Autograd模块
PyTorch使用了一种叫做自动微分的技术。也就是说,它会有一个记录我们所有执行操作的记录器,之后再回放记录来计算我们的梯度。这一技术在构建神经网络时尤其有效,因为我们可以通过计算前路参数的微分来节省时间。

Optim模块
Torch.optim是一个实现各种优化算法的模块,用于构建神经网络。它支持大多数常用的方法,因此我们不必从头开始构建它们。
下面是使用Adam优化器的代码:
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
神经网络模块
虽然PyTorch Autograd可以很容易的定义计算图形和使用梯度,但是对于定义复杂的神经网络来说可能有点太低级了。而这就需要神经网络模块来提供帮助。
nn包定义了一组模块,我们可以把它看作是一个神经网络层,它产生输入输出,并且可能有一些可训练的权重。
你可以把nn模块看作是PyTorch的内核!

9.1.3 Keras
Keras 是一个开源软件库,最初于2015年发布,旨在简化深度学习模型的创建。它用Python编写,可以部署在其他人工智能技术之上,如TensorFlow,微软Cognitive Toolkit(CNTK)和Theano。

Keras以其用户友好性,模块化和易扩展性而闻名。如果你需要一个机器学习库,可以实现简单快速的原型设计,同时支持卷积网络和循环神经网络,并且在CPU和GPU上运行达到最佳状态,这非常合适。

中文文档:https://keras.io/zh/
9.1.4 Theano
Theano 最初于2007年发布,它是一个开源的Python库,允许你轻松地构建各种机器学习模型。由于它是最古老的库之一,它被视为一种激发深度学习发展的行业标准。

它的核心是可以简化定义,优化和评估数学表达式的过程。Theano能够将你的结构转换为与NumPy,BLAS等高效本机库以及本地代码(C ++)集成的非常高效的代码。
此外,它针对GPU进行了优化,提供了高效的符号差异化,并且具有广泛的代码测试功能。

