【深度学习】使用Keras开发的流程概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/85151287

开发流程

典型的Keras工作流程如下:

  • 定义训练数据:输入张量和目标张量
  • 定义层组成的网络(模型),将输入映射到目标
  • 配置学习过程:选择损失函数,优化器和需要监控的指标
  • 调用模型的fit方法在训练数据上迭代

定义模型的方法

有两种方法:

  • 使用Sequential类,仅仅用于层的线性堆叠,目前最常用
  • 函数式API,可以构建任意形式的架构

案例:

线性堆叠法

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)
output_tensor = layers.Dense(10, activation='softmax')(x)

model = models.Model(inputs=input_tensor, outputs=output_tensor)

函数式API,使得我们可以操纵数据张量,后面会再详细讲函数式API。

在模型架构定义好之后,接下来的步骤就是相同的了。

编译时指定:优化器,损失函数,监控指标等。

from keras import optimizers
model.compile(optimizer=optimiers.RMSprop(lr=0.001), loss='mse', metrics=['accuracy'])

学习:就是调用fit函数并将输入数据传入模型。

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

注意,这里是epochs不是epoches

既然到这里,就已经掌握了深度学习的基本流程,后续还要学什么呢?答案是,在如下几个问题上训练出可靠的直觉,也即,训练自己:

  • 哪种网络架构适合哪种类型的问题?
  • 如何选择正确的配置?
  • 如何调节模型使其给出我们需要的结果?

END.

参考:

《Deep Learning with Python》

猜你喜欢

转载自blog.csdn.net/u011240016/article/details/85151287