【问题标题】:how to initialize layers by numpy array in keras如何在keras中通过numpy数组初始化图层
【发布时间】:2017-02-28 14:02:36
【问题描述】:

我想将预训练的 caffe 模型转换为 keras,然后我需要逐层初始化图层。 我将权重和偏差保存在一个 mat 文件中,并将它们加载到 python 工作区。 我知道“权重”参数获取 numpy 数组但不知道如何? 谢谢

【问题讨论】:

标签: initialization keras convolution


【解决方案1】:

您可以在Keras Layers Documentation 中获取有关如何设置模型权重的更多信息。基本上你使用:

layer.set_weights(weights):从 Numpy 数组列表中设置层的权重(与get_weights 的输出形状相同)。

或者您可以在创建图层时直接初始化它们。每个层都有一个参数weights,您可以使用 numpy 数组进行设置。阅读each layer's documentation 以提供正确的权重格式。例如,Dense() 层接受参数weights 的这种格式:

设置为初始权重的 Numpy 数组列表。该列表应该有 2 个元素,形状 (input_dim, output_dim) 和 (output_dim,) 分别用于权重和偏差。 source

【讨论】:

  • 有没有办法使用 keras 初始化器来构造一个 numpy 数组?例如。 glorot_uniform()(shape) -> ndarray([...])
  • @BallpointBen 你找到解决方案了吗?似乎是个问题:stackoverflow.com/questions/56190405/…
猜你喜欢
  • 2015-08-05
  • 2014-06-28
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 2011-05-30
相关资源
最近更新 更多