用于配置训练模型
compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
经常需要配置的是optimizer,loss,metrics
例如:model.compile(optimizer='adam', loss=' ', metrics=[ ])。model为搭建好的网络模型。
- optimizer: 字符串(优化器名)或者优化器实例。
- loss: 字符串(目标函数名)或目标函数。 如果模型有多个输出,可以通过传递损失函数的字典或列表,在每个输出上使用不同的损失。 模型将最小化的损失值将是所有单个损失的总和。
- metrics: 在训练和测试期间的模型评估标准。 通常会使用
metrics = ['accuracy']
。 要为多输出模型的不同输出指定不同的评估标准, 还可以传递一个字典,如metrics = {'output_a':'accuracy'}
。 - loss_weights: 可选的指定标量系数(Python 浮点数)的列表或字典, 用以衡量损失函数对不同的模型输出的贡献。 模型将最小化的误差值是由
loss_weights
系数加权的加权总和误差。 如果是列表,那么它应该是与模型输出相对应的 1:1 映射。 如果是张量,那么应该把输出的名称(字符串)映到标量系数。 - sample_weight_mode: 如果你需要执行按时间步采样权重(2D 权重),请将其设置为
temporal
。 默认为None
,为采样权重(1D)。 如果模型有多个输出,则可以通过传递 mode 的字典或列表,以在每个输出上使用不同的sample_weight_mode
。 - weighted_metrics: 在训练和测试期间,由 sample_weight 或 class_weight 评估和加权的度量标准列表。
- target_tensors: 默认情况下,Keras 将为模型的目标创建一个占位符,在训练过程中将使用目标数据。 相反,如果你想使用自己的目标张量(反过来说,Keras 在训练期间不会载入这些目标张量的外部 Numpy 数据), 您可以通过
target_tensors
参数指定它们。 它可以是单个张量(单输出模型),张量列表,或一个映射输出名称到目标张量的字典。 - **kwargs: 当使用 Theano/CNTK 后端时,这些参数被传入
K.function
。 当使用 TensorFlow 后端时,这些参数被传递到tf.Session.run
。