Перейти к содержимому
НейроКуб
Открытый материал · 3 мин
Алина Прогресс

DVC пишет «данные не изменились». А все ли файлы он видит?

Как проверить .dvcignore до обучения модели: сопоставить правила с входами загрузчика и не потерять незаменимые файлы при пересборке пайплайна.

Перед обучением модели полезно проверить не только версию датасета, но и то, какие файлы вообще попали под контроль DVC. Сообщение о неизменности данных ещё не доказывает, что инструмент учитывает каждый файл в папке.

Сначала определите, что должно входить в набор

В документации .dvcignore описан простой механизм: совпавшие с шаблоном пути исключаются при обходе проекта. Их содержимое не сохраняется в кеше DVC. Это удобно для временных файлов, но требует внимания к обучающим примерам.

Представим учебный набор для классификации изображений: data/train/cat.jpg и data/train/dog.jpg. Вы ждёте, что обе картинки войдут в одну версию. Если правило исключает dog.jpg, файл может оставаться на диске и быть доступным вашему Python-коду, хотя DVC не будет учитывать его изменения. Два инструмента смотрят на одну папку с разными правилами.

Проверьте конкретные пути

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

dvc check-ignore --details data/train/cat.jpg data/train/dog.jpg

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

Затем сравните перечень входных файлов вашего загрузчика с теми данными, которые собираетесь версионировать. В учебном примере вопрос конкретный: dog.jpg должен быть входом модели или это случайная копия? Решение принимает разработчик; правило игнорирования само этого не знает.

Почему нельзя сразу нажимать «пересобрать»

Документация предупреждает: добавление шаблона для существующего выхода может выглядеть для DVC как удаление файлов. Кроме того, dvc repro и dvc exp run способны удалить игнорируемые файлы внутри управляемых каталогов. Если этап пайплайна их не создаёт, восстановить их может быть неоткуда.

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

Критерий готовности прост: ожидаемый состав датасета совпадает с фактическими входами обучения и правилами DVC. Чистый статус полезен после этой сверки. До неё он отвечает на более узкий вопрос — изменилось ли то, что инструменту разрешено видеть.

Комментарии

Пока нет комментариев. Начните обсуждение.