Python深度学习 库和框架

Python深度学习 库和框架

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

深度学习和Theano

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

Theano是Python库,它提供了一系列的功能,用于建立深度网络,在我们的机器上快速训练。

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

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

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

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

然而,如果我们使用Theano,我们必须从头开始构建深度网。该库没有为创建特定类型的深度网提供完整的功能。

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

然而,好消息是,Theano允许在矢量函数的基础上建立我们的实现,为我们提供了一个高度优化的解决方案。

有许多其他的库可以扩展Theano的功能。TensorFlow和Keras可以作为Theano的后端使用。

用TensorFlow进行深度学习

Googles TensorFlow是一个python库。这个库是构建商业级深度学习应用的一个伟大选择。

TensorFlow是从另一个库DistBelief V2发展而来的,它是谷歌大脑项目的一部分。这个库的目的是扩展机器学习的可移植性,使研究模型可以应用于商业级应用。

与Theano库非常相似,TensorFlow是基于计算图的,其中节点代表持久性数据或数学操作,边代表节点之间的数据流,是一个多维数组或张量;因此被称为TensorFlow

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

尽管TensorFlow是为神经网络设计的,但它也能很好地适用于其他网络,其中计算可以被模拟为数据流图。

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

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

然而,TensorFlow中不支持超参数配置。对于这个功能,我们可以使用Keras。

深度学习和Keras

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

它有一个简约的设计,允许我们逐层建立一个网;训练它,并运行它。

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

它是一个高水平的神经网络API,有助于广泛使用深度学习和人工智能。它运行在一些低级别的库之上,包括TensorFlow、Theano等。Keras的代码是可移植的;我们可以在Keras中使用Theano或TensorFlow作为后端实现一个神经网络,而无需对代码进行任何修改。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程