代码之家  ›  专栏  ›  技术社区  ›  KIC

如何得到keras损失函数(张量)的误差值

  •  1
  • KIC  · 技术社区  · 6 年前

    import numpy as np
    import pandas as pd
    from keras import losses
    
    points = 100
    df = pd.DataFrame({"error": np.linspace(-3,3,points)})
    df["mean_squared_error"] = losses.mean_squared_error(np.zeros(points), df["error"])
    df.plot(x="error")
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   today    6 年前

    Keras中的损失函数返回一个张量对象。你需要用 eval() 函数从后端获取其实际值。此外,如果你看一下Keras中损失函数的定义 mean_squared_error() ,你会意识到 K.mean() 取最后一个轴(即输出轴)的平均值的操作(不要将此与批处理或样本轴混淆)。因此,您可能需要以 (n_samples, n_outputs)

    import numpy as np
    import pandas as pd
    from keras import losses
    from keras import backend as K
    
    points = 100
    df = pd.DataFrame({"error": np.linspace(-3,3,points)})
    mse_loss = losses.mean_squared_error(np.zeros((points,1)), df["error"].values.reshape(-1,1))
    df["mean_squared_error"] = K.eval(mse_loss)
    df.plot(x="error")
    

    enter image description here