我正在尝试解析Keras
json文件以Flux
在Julia(Keras
v1.1.0和Flux
v0.10.4)中创建模型。
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_constraint
并W_regularizer
?我尚未在Flux
的Dense
图层中找到任何类似的内容。是否存在?我应该自己实施吗?Dense
图层的那些参数是否根本很重要,或者在创建Flux
模型时可以轻松跳过而又不严重改变性能?
的正规化值是求和为网络的所有参数,并加入到损失函数规范; 您必须“手动”执行此操作,但这非常简单,并在docs中进行了描述。
Keras中的参数约束似乎是通过使用投影方法实现的,该方法是优化程序的一部分。实施起来不太容易,我建议阅读一些有关近端梯度法的知识。您可能必须实现自己的优化类型,以便在Flux中执行此操作(理想情况下,包装现有的一种)。也许ProximalOperators.jl可以完成一些繁重的工作。另一方面,据我所知,带有参数约束的模型不那么常见,您可能会暂时不使用它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句