【问题标题】:get name of loss function used in keras model获取 keras 模型中使用的损失函数的名称
【发布时间】:2020-06-15 12:08:09
【问题描述】:

我想保存我在 keras 模型中使用的损失函数的名称。我查看了documentation,但还没有找到获得这个名字的方法。如果可能的话,我还想保存这个名称,以防我使用自定义损失函数。或者至少从我使用自定义损失函数的模型中提取信息。这是我的模型的样子:

model = Sequential()
model.add(Dense(5, input_dim=4, activation='tanh'))
model.add(Dense(5, activation='tanh'))
model.add(Dense(5, activation='tanh'))
model.add(Dense(3))
model.compile(loss='mean_squared_error', optimizer='nadam', metrics=['accuracy'])

对于自定义损失:

model.compile(loss=custom_loss, optimizer='nadam', metrics=['accuracy'])

【问题讨论】:

    标签: python keras loss-function


    【解决方案1】:

    损失被保存为model对象中的一个属性。我无法在文档中找到它,我使用dir(model) 找到了它。您可以从属性中检索损失函数的名称、tf.keras.losses.Loss 实例或自定义可调用对象。

    model.compile(loss='mean_squared_error', optimizer='nadam', metrics=['accuracy'])
    model.loss
    >>> 'mean_squared_error'
    
    model.compile(loss=tf.keras.losses.MeanSquaredError(), optimizer='nadam', metrics=['accuracy'])
    model.loss
    >>> <keras.losses.MeanSquaredError at 0x7f5d47ee4710>
    
    def my_loss_fn(y_true, y_pred):
        squared_difference = tf.square(y_true - y_pred)
        return tf.reduce_mean(squared_difference, axis=-1)
    model.compile(loss=my_loss_fn, optimizer='nadam', metrics=['accuracy'])
    model.loss
    >>> <function __main__.my_loss_fn>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-03
      • 2021-09-08
      • 2021-09-08
      • 2021-05-02
      • 2020-09-08
      • 1970-01-01
      • 2020-10-07
      • 2018-06-02
      相关资源
      最近更新 更多