【问题标题】:How to initialize with same weights in tensorflow?如何在张量流中使用相同的权重进行初始化?
【发布时间】:2020-07-07 19:13:35
【问题描述】:

我正在使用 tensorflow 构建 CNN 模型,我想知道是否可以以某种方式设置权重初始化种子,以便能够在任何地方都有相同的种子,以便我可以比较模型的不同架构.像这样Tensorflow weight initialization 找到关于堆栈溢出的答案,但并没有真正帮助我,所以您的帮助将不胜感激。提前致谢!

【问题讨论】:

    标签: python tensorflow neural-network conv-neural-network tensorflow2.0


    【解决方案1】:

    您可以根据需要在所有层中设置kernel_initializer。术语 kernel_initializer 是一个花哨的术语,它使用统计分布或函数来初始化权重。

    初始化器可以取不同的值。您可以将它们全部设置为零、一或一个常数值。您还可以选择带有种子值的 RandomUniform 或 RandomNormal。

    如果您将 tensorflow 用于层,那么您可以在此处找到有关不同初始化程序的详细信息 - Tensorflow Initialzer

    如果您使用 Keras 作为层,那么您可以在此处找到有关不同初始化程序的详细信息 - Keras Initializer

    【讨论】:

    • 谢谢!但无论如何,我认为这行不通?因为每次数据都被打乱所以图像的顺序被打乱并且批次改变所以我不能再次与另一个架构进行比较,我可以吗?
    • 如果您使用相同的种子来洗牌数据,您可以比较不同的架构。对于特定种子,打乱后的数据将始终相同。因此,请确保您对所有架构使用相同的数据和相同的种子。
    • @Ponx - 如果我已经回答了您的问题,请您接受答案并为答案投票。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2022-11-23
    相关资源
    最近更新 更多