TensorFlow:
TensorFlow和CNTK一样,也是Python中一个快速的数值运算类库,有Google开发并开源。同样的,TensorFlow也是深度学习的一个基础类库,可以用于直接创建深度学习的模型,或者使用TensorFlow的封装(如Keras) 来实现深度学习的模型。
CNTK和TensorFlow这两个快速数值计算类库,被广泛应用在深度学习项目的研究与开发当中。这两个类库虽然非常强大,但是在实际应用中直接使用这两个类库是非常困难的。
因此,在深度学习的项目中使用Keras(一个构建在CNTK和TensorFlow之上的,能够用来快速创建深度学习模型的Python类库),可以将更多的精力放置在如何构建模型上。
Keras
Keras是一个高层神经网络API,Keras完全由Python编写而成,使用TensorFlow、Theano及CNTK作为后端。Keras的设计遵循以下原则:
- 用户友好:提供一致而简洁的API,能够极大地减少一般应用下用户的工作量。同时,Keras提供清晰和具有实践意义的Bug反馈机制。
- 模块性:网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块。
- 易扩展性:添加新模块容易,只需仿照现有的模块编写新的类或函数。