tf.keras学习总结(一):keras的Sequential模型编写方式

参考资料:tf官方文档:https://tensorflow.google.cn/guide/keras#functional_api


图片来自:https://blog.csdn.net/zjw642337320/article/details/81204560


层的堆叠Sequential模型

在 Keras 中,我们可以通过组合层来构建模型,直接堆叠各个层。


个人总结:
整个过程可分为五步:
1创建Sequential模型,2添加所需要的神经层,3使用.compile方法确定模型训练结构,4使用.fit方法

使模型与训练数据“拟合”,5.predict方法进行预测。


首先创建一个模型结构:

model = keras.Sequential()

实例为建立一个最终输出维度为10的分类结果的全连接神经网络。使用.add()函数进行各个层的堆叠:

# Adds a densely-connected layer with 64 units to the model:
model.add(keras.layers.Dense(64, activation='relu'))
# Add another:
model.add(keras.layers.Dense(64, activation='relu'))
# Add a softmax layer with 10 output units:
model.add(keras.layers.Dense(10, activation='softmax'))

我们可以使用很多 tf.keras.layers,详见:https://tensorflow.google.cn/api_docs/python/tf/keras/layers

这些layers有相同的构造函数参数

tf.keras学习总结(一):keras的Sequential模型编写方式_第1张图片


构建好模型后,通过调用 compile 方法配置该模型的学习流程:

model.compile(optimizer=tf.train.AdamOptimizer(0.001),
              loss='categorical_crossentropy',
              metrics=['accuracy'])

 

tf.keras.Model.compile 采用三个重要参数:

  • optimizer:此对象会指定训练过程。从 tf.train 模块向其传递优化器实例,例如 AdamOptimizerRMSPropOptimizer 或 GradientDescentOptimizer
  • loss:要在优化期间最小化的函数。常见选择包括均方误差 (mse)、categorical_crossentropy 和 binary_crossentropy。损失函数由名称或通过从 tf.keras.losses 模块传递可调用对象来指定。
  • metrics:用于监控训练。它们是 tf.keras.metrics 模块中的字符串名称或可调用对象。

然后使用.fit方法进行测试数据与模型的拟合:

实例

import numpy as np

data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))

val_data = np.random.random((100, 32))
val_labels = np.random.random((100, 10))

model.fit(data, labels, epochs=10, batch_size=32,
          validation_data=(val_data, val_labels))

 

tf.keras学习总结(一):keras的Sequential模型编写方式_第2张图片

keras.models.Model.fit()函数各个参数的详解:https://tensorflow.google.cn/api_docs/python/tf/keras/models/Model#fit


 

评估和预测tf.keras.Model.evaluate 和 tf.keras.Model.predict 方法

# x , y为分别的样本与对所对应的标签,
# dataset为打包好的数据集,包含样本特征与标签

model.evaluate(x, y, batch_size=32)
# or
model.evaluate(dataset, steps=30)

model.predict(x, batch_size=32)
# or
model.predict(dataset, steps=30)

 

 

你可能感兴趣的:(tf.keras学习总结(一):keras的Sequential模型编写方式)