1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lwgaoxin-Siamese-pytorch

Клонировать/Скачать
常见问题汇总.md 51 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 07.06.2025 03:21 d77d745

Данная markdown-документация содержит множество вопросов, на которые можно найти ответы, прежде чем обращаться на Bilibili. Если в markdown-документе информация нечеткая, можно перейти на блог, где есть https://blog.csdn.net/weixin_44791964/article/details/107517428, а также есть оглавление.

Сборник вопросов

1. Вопросы по загрузке

Вопрос: up主, можно ли мне отправить код? Где его скачать? Ответ: Ссылка на Github находится в описании видео. Просто скопируйте и перейдите для загрузки.

Вопрос: up主, почему в скачанном коде нет файлов .pth или .h5 в папке model_data? Ответ: Обычно я загружаю веса на Baidu Netdisk, а ссылка на Github находится в README.

Вопрос: up主, почему при скачивании кода появляется сообщение о поврежденном архиве? Ответ: Скачайте код заново с Github.

2. Вопросы по наборам данных

Вопрос: up主, где можно скачать набор данных XXXX? Ответ: Обычно ссылка на скачивание набора данных находится в README. Для наборов данных для обнаружения объектов ссылка находится в посте с ресурсами. https://blog.csdn.net/weixin_44791964/article/details/105123842## 3. Вопросы по использованию GPU Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Перевод:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Перевод:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

Вопрос: up主, кажется, что я не использую GPU для обучения. Как проверить, используется ли GPU? Ответ: Для проверки использования GPU обычно используют команды NVIDIA в командной строке. Также можно проверить использование GPU в разделе производительности в задачах управления или в разделе CUDA в задачах управления, а не в разделе Copy.

Теперь текст будет:

3. Вопросы по использованию GPU

**Вопрос: up主, кажется, что я не использую GPUЗдесь вставить изображение

4. Вопросы по настройке окружения

Вопрос: Какой версии PyTorch должен быть код PyTorch? Ответ: Версия PyTorch должна быть 1.2. Ссылка на блог: https://blog.csdn.net/weixin_44791964/article/details/106037141.

Вопрос: Какой версии TensorFlow и Keras должен быть код Keras? Ответ: Версия TensorFlow должна быть 1.13.2, а версия Keras должна быть 2.1.5. Ссылка на блог: https://blog.csdn.net/weixin_44791964/article/details/104702142.

Вопрос: Какой версии TensorFlow должен быть код TF2? Ответ: Версия TensorFlow должна быть 2.2.0, а установка Keras не требуется. Ссылка на блог: https://blog.csdn.net/weixin_44791964/article/details/109161493.

Вопрос: Почему я установил tensorflow-gpu, но GPU не используется для обучения? Ответ: Убедитесь, что tensorflow-gpu установлен правильно, используйте pip list для проверки версии tensorflow, а затем проверьте использование GPU с помощью задачи управления или командами nvidia. В задаче управления обратите внимание на использование видеопамяти.

**Вопрос: Твой код работает с такими-то версиями TensorFlow и PyTorch? Ответ: Лучше использовать рекомендованную конфигурацию, инструкции по настройке также есть! Другие версии я не проверял!**Вопрос: Создатель, почему я не могу использовать твою конфигурацию окружения? Ответ: Пожалуйста, сообщи мне в личном сообщении информацию о твоем GPU, CUDA, CUDNN, версии TF и PYTORCH.

Вопрос: Возникла следующая ошибка

Traceback (most recent call last):
   File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
  from tensorflow.python.pywrap_tensorflow_internal import *
 File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
 pywrap_tensorflow_internal = swig_import_helper()
   File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
     _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
 File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 243, in load_module
     return load_dynamic(name, filename, file)
 File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 343, in load_dynamic
     return _load(spec)
 ImportError: DLL load failed: Не удается найти указанный модуль.

Ответ: Если не перезапускали, перезапустите, иначе повторите установку по шагам. Если проблема не решена, сообщите мне в личном сообщении информацию о твоем GPU, CUDA, CUDNN, версии TF и PYTORCH.

5. Проблемы с несоответствием формы

a. Проблемы с несоответствием формы во время обучения

Вопрос: Создатель, почему при запуске train.py появляется сообщение о несоответствии формы? Ответ: Потому что типы данных, которые вы обучаете, отличаются от исходных, и структура сети изменяется, поэтому форма на последнем слое может немного не совпадать.### b. Проблемы с несоответствием формы во время предсказания Вопрос: Почему при запуске predict.py появляется сообщение о несоответствии формы? В Pytorch это выглядит так: В Keras это выглядит так: **Ответ: Основные причины следующие:

  1. В ssd и FasterRCNN возможно не было изменено значение num_classes в файле train.py.
  2. Не было изменено значение model_path.
  3. Не было изменено значение classes_path. Пожалуйста, проверьте все эти параметры. Убедитесь, что используемый model_path и classes_path соответствуют друг другу. Также проверьте значение num_classes или classes_path, используемые во время обучения.**

6. Проблема "No module"

Вопрос: Почему появляется сообщение "No module name utils.utils" (или "No module name nets.yolo", "No module name nets.ssd" и т.д.)? Ответ: Вероятно, проблема с корневым каталогом. Проверьте концепцию относительных путей.

Вопрос: Почему появляется сообщение "No module name matplotlib" (или "No module name PIL")? Ответ: Откройте командную строку и установите библиотеку. pip install matplotlib

**Вопрос: Почему появляется сообщение "No module named 'torch'"? Ответ: Я тоже не знаю, почему возникает эта проблема... Возможно, PyTorch не установлен или установлен в другом окружении. Обычно это означает, что PyTorch не установлен или установлен в другом окружении, которое не активировано в данный момент.**Вопрос: Почему появляется сообщение "No module named 'tensorflow'"? Ответ: То же самое.

7. Проблема с видеопамятью

Вопрос: Почему при запуске команды train.py происходит моментальное закрытие окна и появляется сообщение OOM? Ответ: Видеопамять переполнена. Уменьшите значение batch_size. Если при batch_size=1 команда работает, возможно, стоит заменить сеть. SSD требует наименьшее количество видеопамяти. 2 ГБ видеопамяти: SSD 4 ГБ видеопамяти: YOLOV3, Faster RCNN 6 ГБ видеопамяти: YOLOV4, Retinanet, M2det, Efficientdet и т. д. 8 ГБ и более видеопамяти: выбирайте любую сеть

Вопрос: Почему появляется сообщение RuntimeError: CUDA out of memory. Tried to allocate 52.00 MiB (GPU 0; 15.90 GiB total capacity; 14.85 GiB already allocated; 51.88 MiB free; 15.07 GiB reserved in total by PyTorch)? Ответ: То же самое.

8. Проблемы обучения (замороженное обучение, проблемы с LOSS и т. д.)

**Вопрос: Почему используются замороженное и размороженное обучение? Ответ: Это идея переносного обучения. Основные характеристики, извлеченные из нейронной сети, являются универсальными. Замораживание этих характеристик позволяет ускорить процесс обучения и предотвратить их разрушение.**Вопрос: Почему моя сеть не сходится, LOSS равен XXXX. Ответ: Разные сети имеют разные значения LOSS, LOSS — это всего лишь показательный индикатор, который используется для проверки сходимости сети, а не для оценки качества сети. В моем коде YOLO нормализации нет, поэтому значения LOSS кажутся выше. Важно не значение LOSS, а то, уменьшается ли оно и эффективно ли работает предсказание!Вопрос: Почему моя модель плохо обучается? Предсказания не содержат рамок (рамки неаккуратны).

Ответ:

  1. Количество данных слишком мало, меньше 500. В таком случае рекомендуется увеличить объем данных.
  2. Проверьте, используется ли режим unfreezed training.
  3. Если используется YOLOV4, можно попробовать отключить mosaic, так как mosaic не подходит для всех случаев.
  4. Сетка может не подходить для задачи. Например, SSD не подходит для маленьких объектов из-за фиксированных предварительных рамок.
  5. Разные сети имеют разные значения LOSS, LOSS — это всего лишь показательный индикатор, который используется для проверки сходимости сети, а не для оценки качества сети. В моем коде YOLO нормализации нет, поэтому значения LOSS кажутся выше. Важно не значение LOSS, а то, уменьшается ли оно!
  6. Проверьте разные модели, чтобы убедиться, что данные хорошие.
  7. Убедитесь, что вы выполнили все шаги. Например, проверьте, были ли изменены классы в файле voc_annotation.py.

Вопрос: Почему я получаю ошибку с кодировкой gbk?

Ответ: Не используйте китайские символы в метках и путях. Если это необходимо, убедитесь, что вы правильно обрабатываете кодировку. Например, измените кодировку при открытии файла на utf-8.

Вопрос: Могу ли я использовать изображения с разрешением xxx*xxx?

Ответ: Да, можно. Код автоматически изменяет размер изображений или применяет аугментацию данных.Вопрос: Почему моя модель YOLO имеет значение LOSS около 0.0, но ничего не предсказывает?

Ответ: Значение LOSS для моделей YOLO не может быть таким низким. Проверьте файл 2007_train.txt на наличие целевых данных.

Вопрос: Как я могу использовать несколько GPU для обучения?

Ответ: Это можно легко найти на сайте Baidu. Реализация не сложная.

9. Вопросы с использованием изображений в оттенках серого

Вопрос: Могу ли я обучать с использованием изображений в оттенках серого (и предсказывать изображения в оттенках серого)?

Ответ: Большинство моих библиотек преобразуют изображения в оттенках серого в RGB для обучения и предсказания. Если вы столкнулись с проблемой обучения или предсказания изображений в оттенках серого, попробуйте преобразовать результат Image.open в RGB в функции get_random_data. Это может помочь (это только рекомендация).

10. Вопросы о продолжении обучения после прерывания

Вопрос: Я уже обучил несколько поколений, могу ли я продолжить обучение на основе этих весов?

Ответ: Да, вы можете. Перед обучением загрузите веса, которые вы уже обучили, как вы загружаете предварительно обученные веса. Обычно обученные веса сохраняются в папке logs, вам нужно изменить model_path на путь к весам, которые вы хотите использовать.## 11. Проблемы с предобученными весами Вопрос: Если я хочу обучить модель на другом наборе данных, что мне делать с предобученными весами? Ответ: Лучше изучить переносное обучение, это та же идея, просто используйте предобученные веса.Вопрос: Подниму руку, я изменил сеть, могу ли я использовать предобученные веса? Ответ: Если вы изменили основную сеть, то, скорее всего, предобученные веса не подойдут. Либо вы должны сами определить форму ядра свертки и подогнать веса под неё, либо вам придётся предобучить модель заново. Если вы изменили только вторую часть сети, то предобученные веса для первой части сети всё ещё могут использоваться. Если вы используете PyTorch, вам нужно будет изменить способ загрузки весов, определить форму и загрузить их. Если вы используете Keras, просто установите by_name=True и skip_mismatch=True.

Способ подгонки весов можно посмотреть ниже:

# Ускорение загрузки весов
print('Загрузка весов в состояние модели...')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model_dict = model.state_dict()
pretrained_dict = torch.load(model_path, map_location=device)
a = {}
for k, v in pretrained_dict.items():
    try:
        if np.shape(model_dict[k]) == np.shape(v):
            a[k] = v
    except:
        pass
model_dict.update(a)
model.load_state_dict(model_dict)
print('Завершено!')

Вопрос: Как мне не использовать предобученные веса? Ответ: Просто закомментируйте код загрузки предобученных весов.

Вопрос: Почему, когда я не использую предобученные веса, результаты так плохи? Ответ: Потому что случайная инициализация весов плоха, и из-за этого качество извлекаемых признаков тоже плохое, что приводит к плохим результатам обучения. Веса предобученной модели очень важны.## 12. Вопросы о группах общения Вопрос: Подниму руку, есть ли QQ-группы? Ответ: Нет, нет времени управлять QQ-группами...

13. Вопросы о видео-детекции и детекции с помощью веб-камеры

Вопрос: Как использовать веб-камеру для детекции? Ответ: Большинство библиотек для детекции объектов имеют модуль video.py для работы с веб-камерой, а также есть видео, которое объясняет идею детекции с помощью веб-камеры.

Вопрос: Как использовать видео для детекции? Ответ: То же самое.

14. Вопросы о сохранении

Вопрос: Как сохранить изображения после детекции? Ответ: Обычно для работы с изображениями используется библиотека Image, поэтому посмотрите документацию PIL для того, как сохранять изображения.

15. Путаница с перебором

Вопрос: Как перебрать все изображения в папке? Ответ: Обычно используется os.listdir, чтобы найти все изображения в папке, а затем, используя логику выполнения из файла predict.py, проверить изображения.Вопрос: Как перебрать все изображения в папке и сохранить их? Ответ: Для перебора обычно используется os.listdir, чтобы найти все изображения в папке, а затем, используя логику выполнения из файла predict.py, проверить изображения. Для сохранения обычно используется библиотека Image из PIL, поэтому следует посмотреть, как сохранять изображения с помощью PIL.Image. Если некоторые библиотеки используют cv2, то следует посмотреть, как сохранять изображения с помощью cv2.## 16. Проблемы с путями

Вопрос: Почему у меня возникает такая ошибка:

FileNotFoundError: [Errno 2] No such file or directory
………………………………………
………………………………………

Ответ: Проверьте путь к папке и наличие соответствующих файлов. Также проверьте файл 2007_train.txt на наличие ошибок в путях к файлам.

Важные моменты по путям: Не используйте пробелы в названиях папок. Обратите внимание на относительные и абсолютные пути. Проведите дополнительные исследования по теме путей.

Все проблемы с путями обычно связаны с корневыми директориями, поэтому внимательно изучите концепцию относительных путей!

17. Сравнение с оригинальной версией

Вопрос: Какой уровень качества у вашего кода по сравнению с оригинальной версией? Может ли он достигнуть такого же уровня? Ответ: В основном он может достигнуть такого же уровня, так как я тестировал его на данных VOC. У меня нет мощного графического процессора, поэтому я не могу тестировать и тренировать его на данных COCO.Вопрос: Вы реализовали все хитрости YOLOv4? Каковы различия между вашей версией и оригинальной? Ответ: Не все улучшения были реализованы, так как в YOLOv4 используется слишком много улучшений, которые сложно полностью реализовать и перечислить. В данном случае я реализовал только те улучшения, которые мне интересны и которые действительно эффективны. В частности, модуль SAM (механизм внимания), который упоминается в статье, не был использован в исходном коде автора. Также есть другие улучшения, которые не всегда приводят к улучшению, поэтому я не смог реализовать все улучшения. Что касается сравнения с оригинальной версией, у меня нет возможности обучить данные COCO, но по отзывам пользователей, различия незначительны.## 18. Проблемы с FPS (скоростью обработки)

Вопрос: Какой FPS может достичь ваша реализация? Может ли он достичь XX FPS? Ответ: FPS зависит от конфигурации оборудования, поэтому на мощных устройствах он будет выше, а на слабых — ниже.

19. Проблема с отображением предсказанных изображений

Вопрос: Почему ваш код после предсказания не отображает изображения? Он только сообщает в командной строке, какие объекты были найдены. Ответ: Установите в системе просмотрщик изображений.

20. Проблемы с оценкой алгоритма (mAP, PR-кривые, Recall, Precision и т.д.)

Вопрос: Как рассчитать mAP? Ответ: Посмотрите видео по mAP, там все пошагово объяснено.

Вопрос: Что такое MINOVERLAP в get_map.py и как он используется? Ответ: MINOVERLAP — это IoU (пересечение над объединением), который используется для оценки степени перекрытия предсказанных и истинных рамок. Если степень перекрытия больше MINOVERLAP, предсказание считается правильным.

Вопрос: Почему self.confidence (self.score) в get_map.py устанавливается таким низким значением? Ответ: Изучите видео по mAP, чтобы понять принципы его расчета. Это поможет вам правильно настроить параметры и построить PR-кривые.

Вопрос: Как построить PR-кривые? Ответ: Вы можете посмотреть видео по mAP, там есть примеры PR-кривых.Вопрос: Как рассчитать Recall и Precision? Ответ: Эти метрики обычно рассчитываются относительно определенного уровня уверенности. Если вам нужно построить кривые Recall и Precision в зависимости от уровня уверенности, то этот код еще не реализован.## 21. Проблемы с обучением на наборе данных COCO Вопрос: Как обучить модель на наборе данных COCO для задачи детекции объектов? Ответ: Текстовые файлы, необходимые для обучения на наборе данных COCO, можно найти в библиотеке YOLO3 от qqwweee. Формат файлов соответствует стандарту.## 22. Как учиться Вопрос: Какой у вас путь обучения? Я новичок, как мне начать? Ответ: Вот несколько моментов, на которые стоит обратить внимание:

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

  2. Начните с базовых концепций и постепенно переходите к более сложным темам.

  3. Используйте ресурсы, такие как видеоуроки, документация и учебные материалы.

  4. Практикуйтесь на реальных проектах и задачах.

  5. Общайтесь с сообществом, чтобы получить обратную связь и помощь.

  6. В моей лаборатории не занимаются глубоким обучением, поэтому большинство вещей я изучаю самостоятельно, пробуя разные подходы. Не знаю, насколько это правильно.

  7. По моему мнению, обучение больше зависит от самообразования. Что касается учебного пути, то я сначала изучил уроки по Python от Мофана, а затем начал изучать TensorFlow, Keras и PyTorch. После этого я изучил SSD и YOLO, а затем узнал о многих классических сверточных сетях. Затем я начал изучать различные коды, изучая их построчно, чтобы понять весь процесс выполнения кода и изменения формы слоев. Это заняло много времени, и нет никаких лёгких путей, нужно просто потратить время.## 23. Оптимизация модели (изменение модели) Вопрос: Есть ли у вас код для использования Focal Loss в YOLO-серии? Есть ли улучшение? Ответ: Многие люди пробовали, но улучшения небольшие (а иногда и вовсе отсутствуют), так как у YOLO есть свой способ балансировки положительных и отрицательных примеров.

Вопрос: Если я изменю сеть, могу ли я использовать предварительно обученные веса? Ответ: Если вы измените основную сеть, то, если это не одна из существующих сетей, предварительно обученные веса скорее всего не будут совместимы. Вам придётся либо самостоятельно определить форму ядра свёртки и соответствующим образом настроить веса, либо предварительно обучить сеть заново. Если вы измените только вторую часть сети, то предварительно обученные веса для первой части сети всё ещё могут быть использованы. Если вы используете код на PyTorch, вам придётся изменить способ загрузки весов, определяя форму и загружая их. Если вы используете код на Keras, вы можете просто установить параметры by_name=True и skip_mismatch=True.

Способ соответствия весов можно использовать следующий:

# Ускорение процесса обучения модели
print('Загрузка весов в состояние dict...')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model_dict = model.state_dict()
pretrained_dict = torch.load(model_path, map_location=device)
a = {}
for k, v in pretrained_dict.items():
    try:
        if np.shape(model_dict[k]) == np.shape(v):
            a[k] = v
    except:
        pass
model_dict.update(a)
model.load_state_dict(model_dict)
print('Завершено!')
```## 24. Проблемы с развертыванием
Я не развертывал свои модели на мобильных устройствах и т.д., поэтому мне неизвестны многие проблемы с развертыванием...

## 25. Проблемы с установкой CUDA
Перед установкой CUDA обычно нужно установить Visual Studio, версия 2017 года подходит.

## 26. Проблемы с Ubuntu
**Вопрос:** Все коды работают на Ubuntu, я проверял это на обоих системах.
**Ответ:** Все коды работают на Ubuntu, я проверял это на обоих системах.

## 27. Проблемы с VSCODE
**Вопрос:** Почему в VSCODE появляется множество ошибок?
**Ответ:** Я тоже вижу множество ошибок, но они не влияют на работу. Это проблема VSCODE. Если вы не хотите видеть эти ошибки, установите PyCharm.

## 28. Проблемы с использованием CPU для обучения и предсказания
**Для кода на Keras и TF2, если вы хотите использовать CPU для обучения и предсказания, достаточно установить CPU-версию TensorFlow.**
**Для кода на PyTorch, если вы хотите использовать CPU для обучения и предсказания, нужно изменить параметр cuda=True на cuda=False. В PyTorch для Faster R-CNN лучше использовать GPU, так как используется CuPy. Если вы хотите обойтись без GPU, вам придётся самостоятельно изучить, как использовать версию CuPy без GPU.**

## 29. Другие проблемы
**Вопрос:** Почему появляется ошибка TypeError: cat() received an unexpected keyword argument 'axis', а также ошибки Traceback (most recent call last), AttributeError: 'Tensor' object has no attribute 'bool'?
**Ответ:** Это проблема версий, рекомендуется использовать PyTorch версии 1.2 и выше.**Есть много других странных проблем, многие из которых связаны с версиями. Рекомендуется следовать моим видео-руководствам по установке Keras и TensorFlow. Например, если вы установили TensorFlow 2, не стоит задавать вопросы типа "почему я не могу запустить Keras-YOLO". Это естественно, так как версии не совпадают.**

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lwgaoxin-Siamese-pytorch.git
git@api.gitlife.ru:oschina-mirror/lwgaoxin-Siamese-pytorch.git
oschina-mirror
lwgaoxin-Siamese-pytorch
lwgaoxin-Siamese-pytorch
master