【问题标题】:Keras model/layer regularization property deprecated不推荐使用 Keras 模型/层正则化属性
【发布时间】:2017-02-21 17:48:19
【问题描述】:

我正在使用 Keras 定义一个模型,然后我尝试使用分布式 Tensorflow 对其进行校准,就像 here 所做的那样。

我曾经像链接中那样处理正则化器损失

model = Sequential()
...... #build keras model
loss = tf.reduce_mean(keras.objectives.mean_squared_error(targets, preds))
# apply regularizers if any
if model.regularizers:
    total_loss = loss * 1.  # copy tensor
    for regularizer in model.regularizers:
        total_loss = regularizer(total_loss)
else:
    total_loss = loss

但现在正则化器属性已被贬低,警告建议使用model/layerlosses 属性,所以我尝试了:

 loss = tf.reduce_mean(keras.objectives.mean_squared_error(targets, preds))
 total_loss = loss * 1.  # copy tensor
 for reg_loss in model.losses:
     tf.assign_add(total_loss, reg_loss)

但这会导致崩溃。请帮忙

【问题讨论】:

  • 什么是崩溃?有什么要发的吗?

标签: tensorflow keras


【解决方案1】:

正确的做法是:

loss = tf.reduce_mean(keras.objectives.mean_squared_error(targets, preds))
total_loss = loss * 1.  # copy tensor
for reg_loss in model.losses:
total_loss = total8loss + reg_loss

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 2019-01-09
    • 2015-10-22
    • 2017-12-07
    • 2020-11-09
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多