почему torchsummary и torchinfo дают разное количество общих параметров?

Я тестирую этот код, чтобы сравнить параметры модели, что поможет мне изменить модели/слои, но я не знаю, какой метод дает мне фактическое количество параметров.

      from torchsummary import summary
import torchinfo
from ultralytics.nn.tasks import DetectionModel
yolo_model = DetectionModel(cfg, nc=80 )
summary(yolo_model,(3, 640, 640))
torchinfo.summary( yolo_model, (3, 640, 640), batch_dim = 0)

Результат изtorchinfo:

      =======================================
Total params: 5,257,936
Trainable params: 5,257,920
Non-trainable params: 16
Total mult-adds (G): 4.37
====================================================================================================
Input size (MB): 4.92
Forward/backward pass size (MB): 232.15
Params size (MB): 12.63
Estimated Total Size (MB): 249.70
====================================================================================================

Результат изtorchsummary:

      ==========================================================================================
Total params: 1,312,416
Trainable params: 1,312,400
Non-trainable params: 16
Total mult-adds (G): 1.39
==========================================================================================
Input size (MB): 4.69
Forward/backward pass size (MB): 128.38
Params size (MB): 5.01
Estimated Total Size (MB): 138.08
==========================================================================================

Кроме того, количество параметров, выводимыхyolov8сам по себе другой. Пожалуйста, дайте мне знать, как лучше всего получить фактическое количество параметров.

1 ответ

Различия в количестве параметров в разных методах анализа могут возникнуть из-за сложности самой модели. Я сталкивался с подобными ситуациями в своих проектах.

Вы использовали три различных метода для оценки количества параметров, дающих разные результаты: , , и собственный отчет yolov8. Первые два метода являются хорошим выбором для получения информации об архитектуре и даже подсчета параметров. Однако различия, которые вы наблюдаете, могут быть связаны с тем, как они обрабатывают пользовательские слои в yolov8.

Кроме того, на количество внутренних параметров модели yolov8 могут влиять такие факторы, как методы инициализации, которые могут способствовать наблюдаемым различиям по сравнению с методами внешнего анализа.

Исходя из предыдущего опыта, я бы посоветовал вам тщательно изучить архитектуру, уделив особое внимание пользовательским или внешним слоям, которые могут повлиять на расчет параметров. Затем совместите имеющиеся в модели слои с теми, которыеиоптимизированы для обработки. Я даже обнаружил, что изучение исходного кода модели помогает понять, как она рассчитывает и представляет количество параметров.

Другие вопросы по тегам