【问题标题】:Keras Functional API changing layer names in every APIKeras 功能 API 在每个 API 中更改层名称
【发布时间】:2018-08-18 13:37:43
【问题描述】:

当我在模型中运行函数式 API 进行 k 折交叉验证时,命名密集层的数字在每个折的返回拟合模型中都会增加。 就像在第一折中是dense_2_acc,然后在第二折中是dense_5_acc

通过我的模型摘要显示我的模型是正确的。为什么要更改每个折叠的拟合模型history 对象中的名称?

【问题讨论】:

    标签: python keras model neural-network keras-layer


    【解决方案1】:

    这是一个非常好的问题,它显示了关于keras 的一些非常重要的事情。名称以这种方式更改的原因是 keras 即使在您覆盖模型时也不会清除先前定义的变量。您可以通过调用轻松检查变量是否仍在session.graph 中:

    from keras import backend as K
    K.get_session().graph.get_collection('variables')
    

    为了清除以前的模型变量,可以调用:

    K.clear_session()
    

    但是 - 请小心 - 因为您可能会丢失现有模型。如果您想保持名称相同,您可以通过在层实例化中添加 name 参数来简单地命名您的层,例如:

    Dense(10, activation='softmax', name='output')
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2021-02-22
    • 2017-11-26
    • 2018-09-26
    • 2017-10-25
    • 1970-01-01
    • 2019-05-07
    相关资源
    最近更新 更多