`tf.model_to_estimator` вызывает AttributeError, когда я добавляю объект списка в модель подкласса keras - PullRequest
0 голосов
/ 30 сентября 2019

Я создал модель подкласса keras следующим образом:

class SubModel(tf.Keras.Model):

    def __init__(self, features, **kwargs):
        """Init function of Model.
        Args:
            features: A list of SparseFeature and DenseFeature.
        """
        assert len(features) > 0
        super(SubModel, self).__init__(name='SubModel', **kwargs)
        self.features = features

Обратите внимание, что в функции __init__ есть функция arrtibute, которая будет использоваться в методе call этой модели. Все работает хорошо, когда я тренируюсь и оцениваю модель в стиле керас.

Но теперь я хочу преобразовать эту модель в оценщик, используя функцию tf.keras.model_to_estimator. Это вызывает ошибку: AttributeError: '_ListWrapper' object has no attribute 'get_config'.

Согласно моей отладке, это атрибут features, который добавляется в модель и вызывает эту ошибку. При преобразовании в оценщик он рассматривает объекты как layer модели и пытается вызвать функцию get_config при клонировании модели. Кажется, что все атрибуты, добавленные в модель, будут обрабатываться как layer при клонировании модели.

Но я действительно хочу использовать features как часть модели, чтобы к ней можно было получить доступ черездругая функция этой модели, как call. Есть ли другие способы решить эту проблему?

...