Ошибка: вызов уровня при наличии регуляризатора (ов) активности еще не поддерживается

#tensorflow #tensorflow.js

#тензорный поток #tensorflow.js #tensorflow

Вопрос:

Я использую tf.loadLayersModel() для загрузки в tf.js и получите эту ошибку:

 Error: Layer invocation in the presence of activity regularizer(s) is not supported yet.
  

Я использую регуляризатор L2, и чтобы убедиться, что он работает правильно, я также включаю это:

 class L2 {

  static className = 'L2';

  constructor(config) {
     return tf.regularizers.l2(config)
  }
}
tf.serialization.registerClass(L2);
  

В чем же проблема?

ПРИМЕЧАНИЕ: Это модель тензорного потока, которая перемещается в Tf.js , но Tf.js поддерживает регуляризаторы активности.

Обновить:

Вот исходный код для нереализованной ошибки. Так разве невозможно загрузить модель Keras с регуляризаторами?

Комментарии:

1. Что произойдет, если вы используете tf.regularizers.l1l2 вместо этого?

2. Тот же результат @edkeveked

3. Не могли бы вы поделиться своей моделью и используемой версией tfjs?

Ответ №1:

Ну, на основе сообщения и ссылки на предоставленный вами репозиторий

Я просмотрел свой код на python и прокомментировал activity_regularizer параметры, tf.keras.layers.Dense() и, похоже, он работает после генерации tensorflowjs_converter (по крайней мере, javascript не показывает ошибок).

  model = tf.keras.Sequential([
        # ...
        tf.keras.layers.Dense(64, activation='relu',
                              kernel_initializer=tf.keras.initializers.HeNormal(),
                              # activity_regularizer=tf.keras.regularizers.l2(1e-04) --> 
                              # ^ Comment line above because not working on tensorflow.js
        # ...
    ])