如何在keras中通过numpy数组初始化图层
Posted
技术标签:
【中文标题】如何在keras中通过numpy数组初始化图层【英文标题】:how to initialize layers by numpy array in keras 【发布时间】:2017-02-28 14:02:36 【问题描述】:我想将预训练的 caffe 模型转换为 keras,然后我需要逐层初始化图层。 我将权重和偏差保存在一个 mat 文件中,并将它们加载到 python 工作区。 我知道“权重”参数获取 numpy 数组但不知道如何? 谢谢
【问题讨论】:
对于卷积层检查***.com/questions/42211619/… @maz 很有用 【参考方案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 你找到解决方案了吗?似乎是个问题:***.com/questions/56190405/…以上是关于如何在keras中通过numpy数组初始化图层的主要内容,如果未能解决你的问题,请参考以下文章
如何在不启用 keras 中的 run_eagerly 标志的情况下将张量转换为 numpy 数组
在 Python 中通过线程/核心/节点并行化 for 循环
Keras 错误:无法将符号 Keras 输入/输出转换为 numpy 数组