会话式AI:自然语言处理与人机交互
上QQ阅读APP看书,第一时间看更新

2.1.3 Keras

Keras是一个高层神经网络API,由纯Python编写而成并使用TensorFlow、Theano及CNTK作为后端。Keras为支持快速实验而生,能够把想法迅速转换为结果。Keras应该是深度学习框架之中最容易上手的一个,它提供了一致而简洁的API,能够极大地减少一般应用下用户的工作量,避免用户重复造轮子。

严格意义上讲,Keras并不能算是一个深度学习框架,它更像一个构建于第三方框架之上的深度学习接口。Keras的缺点很明显:过度封装导致丧失灵活性。Keras最初作为Theano的高级API,后来增加了TensorFlow和CNTK作为后端。为了屏蔽后端的差异性,提供一致的用户接口,Keras做了层层封装,导致用户在新增操作或获取底层的数据信息时过于困难。同时,过度封装也使得Keras的程序执行十分缓慢,许多Bug都隐藏于封装之中,在绝大多数场景下,Keras是本书介绍的所有框架中运行最慢的一个。

学习Keras十分容易,但是很快就会遇到瓶颈,因为它缺少灵活性。另外,在使用Keras的大多数时间里,用户主要是在调用接口,很难真正学到深度学习的内容。

总结:Keras比较适合作为深度学习框架,但是过度的封装并不适合新手学习(无法理解深度学习的真正内涵),故不推荐。