Tensorflow Hub + Estimator Потенциальная ошибка: Обученные веса не используются повторно для оценки / прогнозирования - PullRequest
0 голосов
/ 29 мая 2018

В моем текущем проекте я использую модуль изображения TF Hub вместе с оценщиком для задачи классификации.В соответствии с рекомендациями TF Hub, я установил теги «тренироваться» в режиме обучения - и «Нет» в режимах Eval / Predict.Потеря / точность теста была настолько плохой, но потеря тренировки продолжала уменьшаться.После нескольких дней отладки я узнал, что каким-то образом обученные весовые коэффициенты концентратора не использовались (казалось, что только последний плотный слой за пределами концентратора использовался повторно).

Чтобы подтвердить, где проблема, я не прошел "поезд"теги даже для обучения (без других изменений) - и проблема была немедленно решена.

Благодарен за помощь - большое спасибо!

#inside model_fn
tags_val = None

if is_training:
    tags_val = {"train"}

is_training = (mode == tf.estimator.ModeKeys.TRAIN)

tf_hub_model_spec = "https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1"

img_module = hub.Module(tf_hub_model_spec, trainable=is_training, tags=tags_val)

#Add final dense layer, etc

1 Ответ

0 голосов
/ 31 мая 2018

Для https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1 разница между тегами по умолчанию (имеется в виду пустой набор) и tags={"train"} заключается в том, что последний работает с нормой партии в режиме обучения (т. Е. Использует статистику партии для нормализации).Если это приведет к катастрофической потере качества, моим первым подозрением будет то, что UPDATE_OPS выполняется с train_op?

https://github.com/tensorflow/hub/issues/24 обсуждает это на стороне других проблем с указателями кода.

...