project
│
└───README.md
│
└───cv
│ │
│ └───task (e.g. classification)
│ │
│ └───subtask (e.g. binary)
│ │
| └───name_model (e.g. bath)
| | |
| | └───version_model_1 (e.g. baseline)
| | | |
| | | └───data
| | | └───notebooks
| | | | |
| | | | └───experiments
| | | | | |
| | | | | └───experiments1.ipynb
| | | | | └───...
| | | | | └───experimentsk.ipynb
| | | | |
| | | | └───notebooks1.ipynb
| | | | └───...
| | | | └───notebooksk.ipynb
| | | | └───README.md
| | | | └───pyproject.toml
| | | |
| | | └───reports
| | | | |
│ | | | └───experiment1
│ | | │ │ │
│ | | │ │ └───report1
│ | | │ │ └───...
│ | | │ │ └───reportk
│ | | | │
│ | | | └───...
| | | | └───experimentk
| | | |
| | | └───logs
| | | | |
│ | | | └───experiment1
| | | | └───...
| | | | └───experimentk
| | | |
| | | └───weights
| | | └───download.py
| | |
| | └───...
| | └───version_model_k
| |
| └───...
| └───name_modelk
│
└───nlp
│ │
│ └───task
│ │
│ └───subtask
│ │
| └───name_model
| |
| └───likewise cv
В директории datasets
сохраняются готовые датасеты на которых обучалась модель. Сырые данные из которых формировался датасет, могут находиться в различных источниках, на различных устройствах. Структура директорий в папке datasets
полностью идентична структуре формирования проекта. Датасеты связанный с проектом, лежат по тому же пути в папке datasets
.
Облако Yandex: datasets
Доустановим необходимые утилиты.
sudo apt-get update
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python3-openssl nano
Управляем версиями Python утилитой pyenv
.
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
Открываем файл ~/.profile
.
sudo nano ~/.profile
В конец файла вставляем и сохраняем.
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
Закрываем и открываем терминал.
Проверяем, установилась ли утилита pyenv
. Должна открыться меню pyenv
.
pyenv
Добавить в pyenv
нужную версию Python.
pyenv install 3.9.15
Репозиторий закрыт, предварительно нужно создать токен в GitHub и потом клонировать.
-
Переходим на сайт GitHub.
-
Нажимаем на иконку профиля в правом верхнем углу.
-
Из выпадающего списка выбираем
settings
. -
В меню слева выбираем
Developer settings
. -
В меню слева выбираем
Personal access tokens > Tokens (classic)
. -
Справа нажимаем на кнопку
Generate new token > Generate new token (classic)
-
В поле
Node
пишем произвольное название токена. -
Проставляем везде галочки и внизу нажимаем на кнопку
Generate token
. -
В новом окне появится сгенерированный токен, копируем и сохраняем.
git clone https://<account_name>:<account_token>@github.com/<account_name>/<repo_name>.git -b <name_branch>
<account_name>
: имя вашего аккаунта Github.
<account_token>
: токен вашего аккаунта Github.
<repo_name>
: название клонируемого репозитория.
<name_branch>
: название ветки, которую хотим клонировать,
можно без ключа -b <name_branch>
, тогда будет склонирована основная ветка.
Подписать автора комитов.
git config --global user.name "name"
git config --global user.email "[email protected]"
Переходим в дирректорию проекта.
cd <repo_name>
Устанавливаем в проекте необходимую версию Python
pyenv local 3.9.15
Добавим в .gitignore
директории которые будут игнорироваться на уровне всех проектов.
# Project
**/data
**/weights
**/logs
В проекте используется менеджер пакетов poetry
.
Скачать и установить poetry.
curl -sSL https://install.python-poetry.org | python -
Добавить путь к poetry
.
export PATH="/home/jovyan/.local/bin:$PATH"
Мы либо используем уже созданное окружение, либо создаем новое. Два сценария описано ниже.
Переходим в дирректорию с проектом.
Создаем новый файл окружения pyproject.toml
.
poetry init
После создания заходим в окружение
poetry shell
Добавляем нужные библиотеки.
poetry add <name_library>
Переходим в дирректорию с версией модели, там
находится файл pyproject.toml
.
Заходим в оболочку окружения.
poetry shell
Устанавливаем окружение.
poetry install
Возможные ошибки и исправления
Ошибка
Current Python version (3.8.10) is not allowed by the project (^3.9.10).
Please change python executable via the "env use" command.
Исправление
Удалить и заново поставить окружение. Вне окружения необходимо выполнить команды.
Посмотреть название окружения.
poetry env info
Удалить окружение.
poetry env remove <name_env>
<name_env>
: название окружения, пример названия layer-7iBn6U-py3.9
.
После создания окружения, его нужно подключить к jupyter notebook.
Для этого необходимо создать kernel
с окружением.
Заходим в оболочку окружения.
poetry shell
Добавляем в окружение библиотеку. Ключ -D
означает, что добавляем
в dev
окружение. Тогда будет понимание, какие билиотеки нам не
нужны будут при разработке сервиса в прод.
poetry add -D ipykernel
Создадим kernel
.
ipython kernel install --user --name <name_kernel> --display-name="name_kernel"
После создания kernel
в Jupyter Lab
в Launcher
в разделе Notebook
появится ноутбук с созданным kernel
. Открыв его, откроется ноутбук
в котором будет нужный kernel
с нужным окружением.