keras(一)

参考:

keras序贯模型:https://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/

函数式模型:https://keras-cn.readthedocs.io/en/latest/getting_started/functional_API/

回调函数:https://keras-cn.readthedocs.io/en/latest/other/callbacks/

神经网络框架:https://yq.aliyun.com/articles/567420

部分学习代码放在github:

一、序贯模型(sequential model)

序:顺序,贯:连贯,连续地走下去的模型流程就是序贯模型,另外也应该包括一个输入和一个输出这样的特点

我猜的

原文讲的很清楚了

  • 创建模型

model = Sequential()
model.add(Dense(128, activtion='relu', input_shape=(4,4)))
  • 编译模型

model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
  • 训练模型

model.fit(train_x, train_y, epochs=20, batch_size=128)

二、函数式模型

Keras函数式模型接口是用户定义多输出模型、非循环有向模型或具有共享层的模型等复杂模型的途径。一句话,只要你的模型不是类似VGG一样一条路走到黑的模型,或者你的模型需要多于一个的输出,那么你总应该选择函数式模型。函数式模型是最广泛的一类模型,序贯模型(Sequential)只是它的一种特殊情况。

与之前的不同时,这里的网络层都会接受一个张量,然后返回一个张量,而定义模型的时候只是使用Model接受了输入和输出,这里体现的特点是

  • 层对象接受张量为参数,返回一个张量。

  • 输入是张量,输出也是张量的一个框架就是一个模型,通过Model定义。

  • 这样的模型可以被像Keras的Sequential一样被训练

  • 所有的模型都可调用

利用函数式模型的接口,我们可以很容易的重用已经训练好的模型:你可以把模型当作一个层一样,通过提供一个tensor来调用它。注意当你调用一个模型时,你不仅仅重用了它的结构,也重用了它的权重。

  • 多输入和多输出模型

  • 共享层

三、callback

callback机制

回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。

回调函数在使用中一般会传入一个列表,列表中是使用keras.callbacks中调用的类生成的实例对象

Last updated

Was this helpful?