1

我正在尝试解析json 文件以在 JuliaKeras中创建模型( v1.1.0 和v0.10.4)。FluxKerasFlux

Dense层配置示例:

{
    "class_name": "Dense", 
    "config": {
        "W_constraint": null, 
        "b_constraint": null, 
        "name": "dense_1", 
        "output_dim": 512, 
        "activity_regularizer": null, 
        "trainable": true, 
        "init": "glorot_normal", 
        "bias": true, 
        "input_dtype": "float32", 
        "input_dim": 4096, 
        "b_regularizer": null, 
        "W_regularizer": {
            "l2": 0.0010000000474974513, 
            "name": "WeightRegularizer", 
            "l1": 0.0
        }, 
        "activation": "relu", 
        "batch_input_shape": [null, 4096]
    }
}

因此,我很清楚如何在Flux. 但是W_constraintW_regularizer呢?Flux我在'sDense层没有发现任何类似的东西。它存在吗?我应该自己实施吗?层的这些参数是否Dense甚至很重要,或者在创建模型时可以轻松跳过Flux而不会严重改变性能?

4

1 回答 1

2

则化值是对网络的所有参数求和并添加到损失函数中的范数;您必须“手动”执行此操作,但这很容易并在文档中进行了描述

Keras 中的参数约束显然是通过使用投影方法实现的,投影方法是优化器的一部分。这实现起来不那么简单,我建议阅读一些关于近端梯度方法的内容。您可能必须在 Flux 中实现自己的优化类型(理想情况下,包装一个现有的优化类型)。也许ProximalOperators.jl可以做一些繁重的工作。另一方面,据我所见,具有参数约束的模型不太常见,您可能会暂时不执行它们而侥幸逃脱。

于 2020-06-17T19:25:12.777 回答