Keras实例教程(3)

我们在之前的Keras教程中介绍了用Sequential model的形式来搭建神经网络模型的基本方法。然而,Keras中还提供了另外一种基于函数式编程思想的神经网络组建方法,我们称其为functional API。如果你对类似Haskell这样的函数式编程语言比较熟悉的话,那么上手Keras中的functional API是非常容易的。更重要的是,functional API允许你在Keras中以极其简便且直观的方法实现相当复杂的、定制化的神经网络结构。

 

作为开始,我们用functional API来搭建一个densely-connected network(或称为全连接网络fully-connected network)。当然,根据本系列教程中【1~2】中所介绍的内容,搭建全连接网络,使用Sequential model才应该是最简单的方法。但我们从这个大家已经掌握了的模型切入,更容易通过对比来揭示functional API方法的一些特点。

 

考虑到读者可能未必熟悉Haskell,这里试图从另外一种对函数式编程提供了一定支持的语言——R中提取一些可以借鉴的东西。粗略来说,R中所有的操作都是函数化的,即使是那些在别的语言(例如C或Java)中通常被视为运算符的加号“+”在R中也是一个函数。所以在R中如果想计算3+4的值,除了在控制台的命令提示符后面直接输入表达式3+4以外,你还可以使用`+`(1, 2)这样的语法。此处,`+`是函数名,而后面括号中给出的则是参数列表。

 

在Keras中,每个layer instance 都可以被看成是一个函数,其输入是一个tensor,输出也是一个tensor。例如在下面这个实现全连接网络的例子中,你可以看到第一个Dense层的输入是inputs,其输出是x,而且这个x又被当做是第二个Dense层的输入。最初的输入tensor和最后的输出tensor共同定义了模型。而模型的训练方法则跟Sequential model中的情况一致。

from keras.layers import Input, Dense
from 

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览