Документ предназначен для документирования пользовательских политик / принципов, используемых при разработке и поддержке torchvision. Другая информация для поддержки (например, процесс выпуска) может быть найдена в мета-внутреннем вики.
Для Python API, torchvision в основном следует политике PyTorch, которая согласована с другими основными пакетами (numpy, scikit-learn и т.д.). Мы признаем, что эта политика несколько несовершенна для некоторых краевых случаев, и что трудно придумать точное техническое определение. В общих чертах, которые обычно хорошо понимаются пользователями, политика заключается в следующем:
Публичный API имеет гарантии обратной совместимости (BC), определенные в нашей политике устаревания (см. ниже). Приватный API не имеет гарантий BC.Для C++, код является приватным. Для сотрудников Meta: если изменение C++ нарушает fbcode, исправьте fbcode или отмените изменение. Мы должны быть осторожны с моделями, работающими в продакшне и зависящими от операций torchvision.
Папка test
не импортируется и является приватной. Даже мета-внутренние проекты не должны зависеть от неё (это было в прошлом и теперь программно невозможно).
Обучающие ссылки не имеют гарантий обратной совместимости. Возможны изменения, но мы должны убедиться, что учебники продолжают работать правильно, и что их намеренная история сохраняется (например, проверяя выходные данные и т.д.).
Остальные папки (build, android, ios и т.д.) являются приватными и не имеют гарантий BC.
Поскольку они нарушают работу, устаревание следует использовать с осторожностью.
Мы в основном следуем политике PyTorch: изменения, нарушающие работу, требуют периода устаревания как минимум в две версии. Устаревшие элементы должны четко указывать крайний срок в документации и предупреждающих сообщениях. Избегайте отсутствия конкретного срока или поддержания устаревших API слишком долго: это не стимулирует пользователей обновлять свой код, создает противоречивые сообщения ("почему этот API был удален, а этот другой все ещё существует?") и накапливает долг в проекте.### Должна ли эта атрибута быть публичной? Должна ли эта функция быть приватной?
При проектировании API не всегда очевидно, что следует выставлять как публичное, а что оставлять как приватная деталь реализации. Следующие руководства могут быть полезными:
Как хорошая практика, всегда создавайте новые файлы и даже классы с начальным подчеркиванием в их названии. Таким образом, все является приватным по умолчанию, а единственная публичная поверхность явно присутствует в файле __init__.py
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )