Есть ли способ узнать, сколько параметров имеет модель обнаружения объекта в API обнаружения объекта tenorflow? - PullRequest
1 голос
/ 01 июля 2019

Я обучаю различные модели API-интерфейсу обнаружения тензорных объектов (TFOD), и мне хотелось бы знать, сколько параметров обучено для данной модели.

Я запускаю быстрее RCNN, SSD, RFCN, а также с другим разрешением изображения, я хотел бы узнать, сколько параметров обучено. Есть ли способ сделать это?

Я попробовал найти ответы, найденные здесь Как подсчитать общее количество обучаемых параметров в модели тензорного потока? Не повезло.

Вот код, который я добавил в строку 103 из model_main.py:

print("Training {} parameters".format(np.sum([np.prod(v.get_shape().as_list()) for v in tf.trainable_variables()]))

Я думаю, что проблема в том, что я не обращаюсь к tf.Session (), в котором работает TFOD, поэтому мой код всегда возвращает 0.0 параметров (хотя обучение работает очень хорошо и тренируется, надеюсь, миллионы параметров), и я не надеваю не знаю, как решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 07 июля 2019

При использовании export_inference_graph.py, скрипт также анализирует вашу модель и подсчитывает параметры и FLOPS (если это возможно).Если выглядит так:

_TFProfRoot (--/# total params)
  FeatureExtractor (--/# params)
  ...
  WeightSharedConvolutionalBoxPredictor (--/# params)
  ...
0 голосов
/ 03 июля 2019

API TFOD использовал tf.estimator.Estimator для обучения и оценки. Объект Estimator предоставил функцию для получения всех переменных, Estimator.get_variable_names() ( ссылка ).

Вы можете добавить эту строку print(estimator.get_variable_names()) после estimator.train_and_evaluate() ( здесь ).

Вы увидите все имена переменных, напечатанные после завершения обучения. Чтобы увидеть результаты быстрее, вы можете тренироваться всего за 1 шаг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...