Самый богатый источник граблей - рабочие инструменты.
Очень часто наблюдаю как люди тонну времени тратят на войну с инструментами, а не задачей.
Распространенная история - человек что-то делал, получил результаты, но им нельзя доверять => работу надо переделывать.
Про инструменты.
Я в основном пишу код на питоне, эпизодически на C++, иногда JS/bash и на чем еще придется по задаче.
Все хоббийное и учебное я пишу на Pytorch, почти все рабочее на TF.
Имхо про фреймворки:
- конкуренция это здорово, tf был удобнее theano, pytorch удобнее tf, tf2 удобнее tf1
- не важной какой фреймворк вы используете, кодовую базу и математику сетей нужно заботать, иначе в ваших результатах буду валенки
- ....
- сетки падают молча, так что для поиска ошибок приходится вникать в происходящее
- даже если вы тренируете много сетей, расходы на написание трейнлупа с нуля обычно небольшие. Потому (прости @scitator) мета-фреймворки не нужны.
- но в них точно стоит подсматривать
Пара непопулярных идей:
- не надо собирать девбокс, это дорого и не поможет заботать DS
- админить рабочее окружение затратно и не помогает заботать DS, берите готовое (colab, datasphere, anaconda)
- jupyter-тетрадки прекрасны!
- aws/azure/google compute cloud/... и прочие облачные ребята
- железные сервера, например hostkey
- предложений сильно больше, но по использованию будет похоже на кого-то из них
На чем учить сетки и экспериментировать?
В порядке увеличения контроля, возможностей и головняка:
- colab и kaggle kernels.
- по гранту или за небольшие деньги на Colab Pro или DataSphere (в отличие от бесплатного colab можно отключать и долго считать)
- vast.ai