Keras开发概述

作者: Nefelibatas | 来源:发表于2022-04-06 11:52 被阅读0次

什么是Keras?

Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

  • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
  • 支持CNN和RNN,或二者的结合
  • 无缝CPU和GPU切换

Keras的设计原则

  • 用户友好:Keras是为人类而不是天顶星人设计的API。用户的使用体验始终是我们考虑的首要和中心内容。Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API, 能够极大减少一般应用下用户的工作量,同时,Keras提供清晰和具有实践意义的bug反馈。
  • 模块性:模型可理解为一个层的序列或数据的运算图,完全可配置的模块可以用最少的代价自由组合在一起。具体而言,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用它们来构建自己的模型。
  • 易扩展性:添加新模块超级容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。
  • 与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由python代码描述,使其更紧凑和更易debug,并提供了扩展的便利性。

典型Keras开发流程

1.定义训练数据:输入张量和目标张量。
2.定义组成的网络或model,将输入映射到目标。
3.配置学习过程:选择损失函数、优化器和需要监控的指标。
4.调用model的fit()在训练数据集上迭代。

定义model有两种办法:

  • 使用Sequential类定义的两层model,目前最常见的通用网络架构

  • 函数式API,用于层组成的有向无环图,搭建任意形式架构

使用Sequential类定义的两层model。

from keras import models
from keras import layers

model = models.Sequential()
model.add(layers.Dense(32,activation='relu',input_shape=(784,)))
model.add(layers.Dense(10,activation='softmax'))

函数式API

input_tensor = layers.Input(shape=(784,))
x = layers.Dense(32,activation='relu')(input_tensor)
out_tensor = layers.Dense(10,activation='softmax')(x)
model = models.Model(inputs=input_tensor,outputs=out_tensor)

配置学习过程,选择损失函数、优化器和需要监控的指标。

from keras import optimizers
model.compile(optimizer='rmsprop',loss='mse',metrics=['accuracy'])

训练model

model.fit(input_tensor,target_tensor,batch_size=128,epoch=10)

相关文章

网友评论

    本文标题:Keras开发概述

    本文链接:https://www.haomeiwen.com/subject/hdyrsrtx.html