Python深度学习库和框架


在本章中,我们将深度学习与不同的图书馆和框架联系起来。

深度学习和Theano

如果我们想开始编码一个深度神经网络,最好我们有一个想法,不同的框架如Theano,TensorFlow,Keras,PyTorch等是如何工作的。

Theano是一个python库,它提供了一套用于构建在我们的机器上快速培训的深层网络的功能。

Theano由加拿大蒙特利尔大学在Yoshua Bengio领导下发展成为一位深度网络先锋。

Theano让我们定义和评估数学表达式,其中矩阵是矩形数组。

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

我们可以并行处理多个矩阵值,如果我们用这个底层结构构建一个神经网络,我们可以使用一台带有GPU的机器在合理的时间窗口内训练巨大的网络。

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

相反,我们必须编码深层网络的每个方面,如模型,图层,激活,训练方法和任何特殊的方法来停止过度拟合。

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

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

用TensorFlow深入学习

谷歌TensorFlow是一个Python库。这个库是构建商业级深度学习应用程序的绝佳选择。

TensorFlow从另一个图书馆DistBelief V2诞生,它是Google Brain Project的一部分。该库旨在扩展机器学习的可移植性,使研究模型可以应用于商业级应用。

与Theano库非常相似,TensorFlow基于计算图,其中节点表示持久数据或数学运算,边表示节点之间的数据流,即多维数组或张量; 因此得名TensorFlow

一个操作或一组操作的输出作为输入被馈送到下一个。

尽管TensorFlow是为神经网络设计的,但对于可以将计算模型化为数据流图的其他网络来说,它非常适用。

TensorFlow还使用了Theano的几个特性,如常见和子表达式消除,自动分化,共享和符号变量。

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

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

与凯拉斯深度学习

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

它具有简约的设计,可以让我们逐层建立网络; 训练它,并运行它。

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

它是一个高级神经网络API,有助于广泛使用深度学习和人工智能。它运行在包括TensorFlow,Theano等许多底层库上面。Keras码是便携式的; 我们可以在Keras中使用Theano或TensorFlow作为后端而不需要对代码进行任何更改来实现神经网络。