Комментарии 2
Некоторые советы новичковые.
Научитесь писать абстрактные классы
Можно сократить до «научитесь писать код». Где-то абстрактные классы уместны, а где-то неуместны.
Фиксируйте инициализирующее значение псевдослучайного генератора
Для инициализации генератора случайных чисел в PyTorch достаточно одного вызова torch.manual_seed
, он инициализирует все устройства, как CPU, так и GPU. И если используется CuDNN, то этого недостаточно, нужно ещё добавить такие строчки:
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
При этом просядет производительность, а детерминированность всё равно не будет гарантирована. См. руководство по воспроизводимости в документации PyTorch.
Начните с небольшого фрагмента данных.
А вот это отличный совет.
Ожидайте ошибки и исключения (признак зрелого разработчика)
И где в примере кода обрабатываются ошибки и исключения? И раз уж заговорили о зрелости, то, наверное, вместо print
стоит использовать логирование. Тем более, есть замечательная библиотека loguru
, которая всё сильно упрощает.
Отображайте прогресс обработки
Полезный совет.
Пандас бывает медленным
В modin и dask отличается API. Бездумно заменять не стоит. Более того, можно даже замедлить работу. В документации к Dask написано, когда стоит его использовать, а когда нет.
Измеряйте время исполнения функций
Если писать логи, то и без декораторов, что быстро работает, а что нет. А для профилирования удобнее использовать py-spy.
Не тратьте попусту деньги на облачные сервисы.
Логично. :)
Создавайте и сохраняйте отчеты.
Хороший совет.
Пишите хорошие API
И не пишите плохие. :) Этот совет уже не совсем относится к анализу данных. Не уверен, что он релевантен.
Про то что часть советов новичковые — да, была даже мысль добавить в название ' начинающего ML-разработчика'. Но его нет в оригинале, а меня и так терзали мысли, что я неправильно перевожу 'Боромир улыбнулся'. Тащемта, мне кажется что во многих подборках 'x ништяков для y', самое ценное в начале и конце, а серединку принято наполнять из менее ценного, для солидности.
10 полезных практик для ML-разработчиков на Питоне