英文链接源链接 [710]
contenteditable="true"

Libraries and Frameworks 介绍

在本章中,我们将深度学习与不同的库和框架相关联。

深度学习和Theano

如果我们想开始对深度神经网络进行编码,最好了解一下Theano,TensorFlow,Keras,PyTorch等不同框架如何工作。

Theano是python库,它提供了一组功能来构建可在我们的机器上快速训练的深层网络。

Theano是由加拿大深奥网络先驱Yoshua Bengio领导在加拿大蒙特利尔大学开发的。

Theano让我们用向量和矩阵定义和评估数学表达式,向量和矩阵是数字的矩形阵列。

从技术上讲,神经网络和输入数据都可以表示为矩阵,而所有标准网络运算都可以重新定义为矩阵运算。这很重要,因为计算机可以非常快速地执行矩阵运算。

我们可以并行处理多个矩阵值,如果我们使用此基础结构构建神经网络,则可以使用带有GPU的单台机器在合理的时间范围内训练庞大的网络。

但是,如果使用Theano,则必须从头开始构建深层网络。该库不提供用于创建特定类型的深网的完整功能。

相反,我们必须对深层网络的各个方面进行编码,例如模型,层,激活,训练方法以及任何特殊方法,以防止过度拟合。

好消息是,Theano允许在矢量化函数之上构建我们的实现,从而为我们提供了高度优化的解决方案。

还有许多其他库可以扩展Theano的功能。 TensorFlow和Keras可以与Theano一起用作后端。

使用TensorFlow进行深度学习

Google的TensorFlow是一个python库。该库是构建商业级深度学习应用程序的绝佳选择。

TensorFlow源自另一个库DistBelief V2,该库是Google Brain Project的一部分。该库旨在扩展机器学习的可移植性,以便将研究模型应用于商业级应用程序。

与Theano库很像,TensorFlow基于计算图,其中一个节点表示持久数据或数学运算,而边缘表示节点之间的数据流,多维数组或张量。因此名称为TensorFlow

一个操作或一组操作的输出将作为输入馈入下一个。

即使TensorFlow是为神经网络设计的,但它也适用于其他可以将计算建模为数据流图的网络。

TensorFlow还使用了Theano的一些功能,例如公共和子表达式消除,自动区分,共享和符号变量。

使用TensorFlow可以构建不同类型的深层网络,例如卷积网络,自动编码器,RNTN,RNN,RBM,DBM/MLP等。

但是,在TensorFlow中不支持超参数配置。为此功能,我们可以使用Keras。

深度学习和Keras

Keras是一个功能强大的易于使用的Python库,用于开发和评估深度学习模型。

它具有极简设计,可让我们逐层构建网络。训练并运行它。

它包装了高效的数值计算库Theano和TensorFlow,并允许我们用几行短代码定义和训练神经网络模型。

它是高级神经网络API,有助于广泛使用深度学习和人工智能。它在TensorFlow,Theano等许多较低层的库之上运行。 Keras代码是可移植的;我们可以使用Theano或TensorFlow作为后端在Keras中实现神经网络,而无需更改代码。

点我分享笔记