ОС | CI-тестирование на master |
---|---|
Datmo — это инструмент управления производственной моделью с открытым исходным кодом для специалистов по данным. Используйте datmo init
, чтобы превратить любой репозиторий в отслеживаемую запись эксперимента. Синхронизируйте с помощью собственного облака.
Примечание . Текущая версия Datmo является альфа-версией. Это означает, что команды могут быть изменены и будут добавлены новые функции. Если вы обнаружите какие-либо ошибки, пожалуйста, не стесняйтесь вносить свой вклад, добавляя проблемы, чтобы участники могли их решить.
Настройка среды одной командой (языки, фреймворки, пакеты и т. д.)
Отслеживание и регистрация конфигурации модели и результатов
Управление версиями проекта (отслеживание состояния модели)
Воспроизводимость эксперимента (повторное выполнение задач)
Визуализация + экспорт истории экспериментов
(скоро) Информационные панели для визуализации экспериментов
Особенность | Команды |
---|---|
Инициализация проекта | $ datmo init |
Настройка новой среды | $ datmo environment setup |
Провести эксперимент | $ datmo run "python filename.py" |
Воспроизвести предыдущий эксперимент | $ datmo ls (Найти нужный идентификатор)$ datmo rerun EXPERIMENT_ID |
Открыть рабочую область | $ datmo notebook (блокнот Jupyter)$ datmo jupyterlab (JupyterLab)$ datmo rstudio (RStudio)$ datmo terminal (Терминал) |
Запишите состояние вашего проекта (Файлы, код, окружение, конфигурация, статистика) | $ datmo snapshot create -m "My first snapshot!" |
Перейти к предыдущему состоянию проекта | $ datmo snapshot ls (найти нужный идентификатор)$ datmo snapshot checkout SNAPSHOT_ID |
Визуализация объектов проекта | $ datmo ls (Эксперименты)$ datmo snapshot ls (Снимки)$ datmo environment ls (Среда) |
Требования
Установка
Привет, мир
Примеры
Документация
Преобразование текущего проекта
Совместное использование
Вклад в Датмо
docker (устанавливается и запускается перед запуском): Инструкции для Ubuntu, MacOS, Windows
$ pip install datmo
В нашем руководстве «Привет, мир» показаны настройки и изменения среды, а также воспроизводимость эксперимента. Он доступен в нашей документации здесь.
В папке /examples
есть несколько скриптов, которые вы можете запустить, чтобы почувствовать datmo. Вы можете перейти к разделу «Примеры», чтобы узнать больше о том, как запустить примеры и начать работу над собственными проектами.
Более сложные учебные пособия можно найти в нашем специальном репозитории учебных пособий здесь.
В datmo настроить среду чрезвычайно просто. Просто ответьте y
, когда вас спросят о настройке среды во время инициализации, или используйте datmo environment setup
в любой момент. Затем следуйте полученным подсказкам.
Ниже показан один пример настройки TensorFlow Python 2.7 с требованиями/драйверами ЦП.
Полное руководство по настройке среды с помощью datmo можно найти на этой странице нашей документации здесь.
После настройки среды большинство специалистов по данным хотят открыть то, что мы называем рабочим пространством (среда программирования IDE или ноутбука).
Ниже показан один пример, позволяющий быстро открыть блокнот Jupyter и показать, как импорт TensorFlow работает должным образом.
Вот сравнение типичной модели логистической регрессии с моделью, использующей Datmo.
Обычный сценарий | С Датмо |
---|---|
# train.py#from sklearn import datasetsfrom sklearn import line_model as lmfrom sklearn import model_selection as msfrom sklearn import externals as ex######iris_dataset = datasets.load_iris()X = iris_dataset.datay = iris_dataset.targetdata = ms.train_test_split (X, y)X_train, X_test, y_train, y_test = data#model = lm.LogisticRegrade(solver="newton-cg")model.fit(X_train, y_train)ex.joblib.dump(model, 'model.pkl')#train_acc = model.score(X_train , y_train)test_acc = model.score(X_test, y_test)#print(train_acc)print(test_acc)######### | # train.py#from sklearn import datasetsfrom sklearn import line_model as lmfrom sklearn import model_selection as msfrom sklearn import externals as eximport datmo # extra line#config = {"solver": "newton-cg"} # extra line#iris_dataset = datasets. load_iris()X = iris_dataset.datay = iris_dataset.targetdata = ms.train_test_split(X, y)X_train, X_test, y_train, y_test = data#model = lm.LogisticReгрессия(**config)model.fit(X_train, y_train)ex.joblib.dump(model, "model.pkl") #train_acc = model.score(X_train, y_train)test_acc = model.score(X_test, y_test)#stats = {"train_accuracy": train_acc, "test_accuracy": test_acc} # дополнительная строка#datmo.snapshot.create(message="мой первый снимок",filepaths=["model.pkl"],config=config,stats=stats) # дополнительная строка |
Чтобы запустить приведенный выше код, вы можете сделать следующее.
Перейдите в каталог с проектом
$ mkdir MY_PROJECT $ cd MY_PROJECT
Инициализировать проект datmo
$ datmo init
Скопируйте приведенный выше код datmo в файл train.py
в каталоге MY_PROJECT
Запустите скрипт, как обычно в Python.
$ python train.py
Поздравляю! Вы только что создали свой первый снимок :) Теперь запустите команду ls для снимков, чтобы увидеть свой первый снимок.
$ datmo snapshot ls
При запуске datmo init
Datmo добавляет скрытый каталог .datmo
, в котором отслеживаются все различные действующие объекты. Это необходимо для рендеринга репозитория с поддержкой datmo.
См. нашу страницу концепций в документации, чтобы узнать, как движущиеся части работают вместе в datmo.
Полная документация размещена здесь. Если вы хотите внести свой вклад в документацию (исходный код находится здесь, в /docs
), следуйте процедуре, описанной в CONTRIBUTING.md
.
Вы можете преобразовать существующий репозиторий в репозиторий с поддержкой datmo с помощью следующей команды
$ datmo init
Если в какой-то момент вы захотите удалить datmo, вы можете просто удалить каталог .datmo
из своего репозитория или запустить следующую команду:
$ datmo cleanup
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: в настоящее время эта опция официально не поддерживается и работает только для файловых уровней хранения (как установлено в конфигурации) в качестве обходного пути для совместного использования проектов datmo.
Хотя datmo предназначен для локального отслеживания изменений, вы можете поделиться проектом, отправив его на удаленный сервер, выполнив следующие действия (это показано только для git; если вы используете другой инструмент отслеживания SCM, вы, вероятно, можете сделать что-то подобное). Если ваши файлы слишком велики или их невозможно добавить в SCM, это может вам не подойти.
Приведенное ниже было протестировано только на терминалах BASH. Если вы используете другой терминал, вы можете столкнуться с некоторыми ошибками.
$ git add -f .datmo/* # add in .datmo to your scm $ git commit -m "adding .datmo to tracking" # commit it to your scm $ git push # push to remote $ git push origin +refs/datmo/*:refs/datmo/* # push datmo refs to remote
Вышеупомянутое позволит вам делиться результатами и объектами datmo с собой или другими людьми на других машинах. ПРИМЕЧАНИЕ. вам придется удалить .datmo/ из отслеживания, чтобы начать использовать datmo на другом компьютере или в другом месте. См. инструкции ниже, чтобы узнать, как воспроизвести его в другом месте.
$ git clone YOUR_REMOTE_URL $ cd YOUR_REPO $ echo '.datmo/*' > .git/info/exclude # include .datmo into your .git exclude $ git rm -r --cached .datmo # remove cached versions of .datmo from scm $ git commit -m "removed .datmo from tracking" # clean up your scm so datmo can work $ git pull origin +refs/datmo/*:refs/datmo/* # pull datmo refs from remote $ datmo init # This enables datmo in the new location. If you enter blanks, no project information will be updated
Если вы заинтересованы в обмене данными с использованием протокола datmo, вы можете посетить веб-сайт Datmo.
Вопрос: Что делать, если команда datmo stop --all
не работает и я не могу запустить новый контейнер из-за перераспределения портов?
Ответ: Это может быть вызвано контейнером-призраком, запущенным из другого проекта datmo или другого контейнера. Либо вы можете создать образ докера с определенным распределением порта (кроме 8888), найти образ докера, остановить его и удалить с помощью docker ps --all
и docker conntainer stop <ID>
и docker container rm <ID>
. Или вы можете остановить и удалить все изображения, работающие на компьютере [ПРИМЕЧАНИЕ. Это может повлиять на другие процессы Docker на вашем компьютере, поэтому ПРОДОЛЖАЙТЕ С ОСТОРОЖНОСТЬЮ] docker container stop $(docker ps -a -q)
и docker container rm $(docker ps -a -q)