未知正则化器:tensorflowjs 中的 L2

我已经使用 model 在 python 中训练了一个模型


reg = 0.000001

model = Sequential()

model.add(Dense(24, activation='tanh', name='input_dense', input_shape=input_shape))

model.add(GRU(24, activation='tanh', recurrent_activation='sigmoid', return_sequences=True, kernel_regularizer=regularizers.l2(reg), recurrent_regularizer=regularizers.l2(reg), reset_after=False))

model.add(Flatten())

model.add(Dense(2, activation='softmax'))

但是当我使用“tensorflowjs_converter --input_format keras”转换这个模型并加载到浏览器中时出现错误

未处理的拒绝(错误):未知正则化器:L2。这可能是由于以下原因之一:

  1. 正则化器是用 Python 定义的,在这种情况下,需要将其移植到 TensorFlow.js 或您的 JavaScript 代码中。

  2. 自定义正则化器在 JavaScript 中定义,但未使用 tf.serialization.registerClass() 正确注册。



摇曳的蔷薇
浏览 77回答 1
1回答

繁华开满天机

选项1没有类L1和L2;它们只是接口(更多信息在这里)有一个类L1L2将采用配置并返回正确的正则化器。您可以手动替换所有出现的L2to L1L2。选项 2注册一个L2类class L2 {    static className = 'L2';    constructor(config) {       return tf.regularizers.l1l2(config)    }}tf.serialization.registerClass(L2);// now load the model
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript