TFF: TypeError при сохранении модели - PullRequest
1 голос
/ 29 мая 2020

Пожалуйста, мне нужна помощь! После написания кода TFF я хотел бы сохранить свою модель. Поэтому я добавляю эту строку в конец кода

ckpt_manager = checkpoint_manager.FileCheckpointManager("model.h5")
ckpt_manager.save_checkpoint(state, round_num=1)

Ошибка была:

TypeError: To be compatible with tf.contrib.eager.defun, Python functions must return zero or more Tensors; in compilation of <function FileCheckpointManager.save_checkpoint.<locals>.<lambda> at 0x7f06b40de730>, found return value of type <class 'tensorflow_federated.python.common_libs.anonymous_tuple.AnonymousTuple'>, which is not a Tensor.

1 Ответ

0 голосов
/ 30 мая 2020

FileCheckpointManager использует чистый TensorFlow API под капотом и, следовательно, не понимает тип TFF AnonymousTuple, используемый для структурированных данных.

Будет необходимо преобразовать AnonymousTuple обратно в Python структура, из которой он был создан. Иногда это можно сделать с помощью метода _asdict() на AnonymousTuple, но это не удастся, если в кортеже есть какие-либо безымянные поля. В противном случае потребуется выполнить что-то вроде from_tff_result здесь метод .

...