设置训练流程
构建好模型后,通过调用 compile 方法配置该模型的学习流程:
model = tf.keras.Sequential([
# Adds a densely-connected layer with 64 units to the model:
layers.Dense(64, activation='relu'),
# Add another:
layers.Dense(64, activation='relu'),
# Add a softmax layer with 10 output units:
layers.Dense(10, activation='softmax')])
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
tf.keras.Model.compile
采用三个重要参数:
-
optimizer
:此对象会指定训练过程。从tf.train
模块向其传递优化器实例,例如tf.train.AdamOptimizer
、tf.train.RMSPropOptimizer
或tf.train.GradientDescentOptimizer
。 -
loss
:要在优化期间最小化的函数。常见选择包括均方误差 (mse
)、categorical_crossentropy
和binary_crossentropy
。损失函数由名称或通过从tf.keras.losses
模块传递可调用对象来指定。 -
metrics
:用于监控训练。它们是tf.keras.metrics
模块中的字符串名称或可调用对象。
以下代码展示了配置模型以进行训练的几个示例:
# Configure a model for mean-squared error regression.
model.compile(optimizer=tf.train.AdamOptimizer(0.01),
loss='mse', # mean squared error
metrics=['mae']) # mean absolute error
# Configure a model for categorical classification.
model.compile(optimizer=tf.train.RMSPropOptimizer(0.01),
loss=tf.keras.losses.categorical_crossentropy,
metrics=[tf.keras.metrics.categorical_accuracy])
网友评论