【发布时间】:2017-02-28 14:02:36
【问题描述】:
我想将预训练的 caffe 模型转换为 keras,然后我需要逐层初始化图层。 我将权重和偏差保存在一个 mat 文件中,并将它们加载到 python 工作区。 我知道“权重”参数获取 numpy 数组但不知道如何? 谢谢
【问题讨论】:
-
@maz 很有用
标签: initialization keras convolution
我想将预训练的 caffe 模型转换为 keras,然后我需要逐层初始化图层。 我将权重和偏差保存在一个 mat 文件中,并将它们加载到 python 工作区。 我知道“权重”参数获取 numpy 数组但不知道如何? 谢谢
【问题讨论】:
标签: initialization keras convolution
您可以在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
【讨论】:
glorot_uniform()(shape) -> ndarray([...])