深度学习 | Keras 简介

深度学习 | Keras 简介

4.1Keras简介

说到深度学习,不可避免得会提及业界有哪些优秀的框架,Keras神经网络框架便是其中之一,它是一个高级神经网络APl,用Python编写,能够在TensorFlow,CNTK或Theano之上运行。它的开发重点是实现快速实验。能够以最小的延迟从理念到结果是进行良好研究的关键。接下来我们将要讲的神经网络原理与梯度求解,Keras都已经对它们有了很好的封装,在后续的学习中,大家只要学会怎么去构建网络结构就没有什么问题了,其余的问题都由神经网络框架替我们去解决。

当然,业界也有很多优秀的框架比如Pytorch,不过笔者更倾向于前者,前者的开发主要由Google支持,而且Keras API打包为tf.keras封装在TensorFlow中。

此外,Microsoft维护CNTK Keras后端。Amazon AWS正在使用MXNet支持维护Keras分支。其他贡献公司包括NVIDIA,Uber和Apple。再者,keras已经比较成熟了,有良好的社区维护,大家在开发的过程中遇到的问题也能通过社区得到答案,同时我们也可以通过图 4.1的深度学习框架热度对比看出,Keras使用人数也是非常多的,仅次于Tensorflow。

因此,为了能够用最快的速度写出最优雅的代码,笔者在这推荐大家使用Keras。本书大部分深度学习代码均基于Keras神经网络框架编写。

图 4.1 深度学习框架热度对比图(引用 官网:https://keras.io/)

4.1.1 Keras优点

1. 允许简单快速的原型设计(用户友好性,模块化和可扩展性)。

2. 支持卷积网络和循环网络,以及两者的组合。

3. 在CPU和GPU上无缝运行

4.1.2 Keras缺点

Keras比较注重网络层次,然而并非所有网络都是层层堆叠的,后面笔者的深度学习代码会涉及遗传算法与神经网络,这种网络就不是特别的规整,因此Keras在设计新的网络方面会比Tensorflow差一些。因此本书一些比较简单的实验均由keras完成,而一些高阶实验,我们则通过Tensorflow去完成。

4.1.3 Keras 安装

Keras比较注重网络层次,然而并非所有网络都是层层堆叠的,后面笔者的深度学习代码会涉及遗传算法与神经网络,这种网络就不是特别的规整,因此Keras在设计新的网络方面会比Tensorflow差一些。因此本书一些比较简单的实验均由keras完成,而一些高阶实验,我们则通过Tensorflow去完成。

  # GPU版本  
  conda install keras-gpu  
   
  # CPU版本  
  conda install keras   

下一期,我们将讲授

深度学习中的全连接神经网络

敬请期待~

喜欢请点赞~

关注我的微信公众号【阿力阿哩哩的炼丹日常】~不定期更新相关专业知识~

阿力阿哩哩的炼丹日常

编辑于 2020-02-01 13:23