sistem operasi | Pengujian CI pada master |
---|---|
Datmo adalah alat manajemen model produksi sumber terbuka untuk ilmuwan data. Gunakan datmo init
untuk mengubah repositori apa pun menjadi catatan eksperimen yang dapat dilacak. Sinkronkan menggunakan cloud Anda sendiri.
Catatan : Versi Datmo saat ini adalah rilis alfa. Ini berarti perintah dapat berubah dan lebih banyak fitur akan ditambahkan. Jika Anda menemukan bug, silakan berkontribusi dengan menambahkan masalah sehingga kontributor dapat mengatasinya.
Pengaturan lingkungan satu perintah (bahasa, kerangka kerja, paket, dll)
Melacak dan mencatat konfigurasi model dan hasilnya
Pembuatan versi proyek (pelacakan status model)
Reproduksibilitas eksperimen (menjalankan kembali tugas)
Visualisasikan + ekspor riwayat eksperimen
(segera hadir) Dasbor untuk memvisualisasikan eksperimen
Fitur | Perintah |
---|---|
Menginisialisasi Proyek | $ datmo init |
Siapkan lingkungan baru | $ datmo environment setup |
Jalankan eksperimen | $ datmo run "python filename.py" |
Reproduksi percobaan sebelumnya | $ datmo ls (Cari ID yang diinginkan)$ datmo rerun EXPERIMENT_ID |
Buka ruang kerja | $ datmo notebook (Buku Catatan Jupyter)$ datmo jupyterlab (JupyterLab)$ datmo rstudio (RStudio)$ datmo terminal (Terminal) |
Catat status proyek Anda (File, kode, env, konfigurasi, statistik) | $ datmo snapshot create -m "My first snapshot!" |
Beralih ke status proyek sebelumnya | $ datmo snapshot ls (Temukan ID yang diinginkan)$ datmo snapshot checkout SNAPSHOT_ID |
Visualisasikan entitas proyek | $ datmo ls (Eksperimen)$ datmo snapshot ls (Foto)$ datmo environment ls (Lingkungan) |
Persyaratan
Instalasi
Halo Dunia
Contoh
Dokumentasi
Transformasikan Proyek Saat Ini
Membagikan
Berkontribusi pada Datmo
buruh pelabuhan (diinstal dan dijalankan sebelum memulai): Petunjuk untuk Ubuntu, MacOS, Windows
$ pip install datmo
Panduan hello world kami mencakup tampilan pengaturan dan perubahan lingkungan, serta kemampuan reproduksi eksperimen. Ini tersedia di dokumen kami di sini.
Di folder /examples
kami memiliki beberapa skrip yang dapat Anda jalankan untuk memahami datmo. Anda dapat menavigasi ke Contoh untuk mempelajari lebih lanjut tentang bagaimana Anda dapat menjalankan contoh dan memulai proyek Anda sendiri.
Untuk tutorial lebih lanjut, lihat gudang tutorial khusus kami di sini.
Menyiapkan lingkungan sangat mudah di datmo. Cukup tanggapi dengan y
ketika ditanya tentang pengaturan lingkungan selama inisialisasi, atau gunakan datmo environment setup
kapan saja. Kemudian ikuti petunjuk yang dihasilkan.
Salah satu contohnya ditunjukkan di bawah ini, untuk menyiapkan TensorFlow Python 2.7 dengan persyaratan/driver CPU.
Untuk panduan lengkap tentang menyiapkan lingkungan Anda dengan datmo, lihat halaman ini dalam dokumentasi kami di sini.
Setelah menyiapkan lingkungan Anda, sebagian besar data scientist ingin membuka apa yang kami sebut ruang kerja (lingkungan pemrograman IDE atau Notebook)
Salah satu contohnya ditunjukkan di bawah ini, untuk membuka Notebook Jupyter dengan cepat dan menunjukkan impor TensorFlow berfungsi sebagaimana mestinya.
Berikut perbandingan model regresi logistik pada umumnya dengan model yang memanfaatkan Datmo.
Skrip Biasa | Dengan Datmo |
---|---|
# train.py#from sklearn import datasetsfrom sklearn import linear_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_latihan, X_tes, y_train, y_test = data#model = lm.LogisticRegression(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.skor(X_test, y_test)#print(train_acc)print(test_acc)######### | # train.py#from sklearn import datasetsfrom sklearn import linear_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 = dataset. 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.LogisticRegression(**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} # baris tambahan#datmo.snapshot.create(message="my first snapshot",filepaths=["model.pkl"],config=config, stats=stats) # baris tambahan |
Untuk menjalankan kode di atas Anda dapat melakukan hal berikut.
Arahkan ke direktori dengan proyek
$ mkdir MY_PROJECT $ cd MY_PROJECT
Inisialisasi proyek datmo
$ datmo init
Salin kode datmo di atas ke file train.py
di direktori MY_PROJECT
Anda
Jalankan skrip seperti biasa di python
$ python train.py
Selamat! Anda baru saja membuat snapshot pertama Anda :) Sekarang jalankan perintah ls untuk snapshot untuk melihat snapshot pertama Anda.
$ datmo snapshot ls
Saat menjalankan datmo init
, Datmo menambahkan direktori .datmo
tersembunyi yang melacak semua entitas yang sedang dimainkan. Ini diperlukan untuk merender repositori yang mendukung datmo.
Lihat halaman konsep kami di dokumentasi untuk melihat bagaimana bagian-bagian yang bergerak bekerja sama di datmo.
Dokumen lengkap dihosting di sini. Jika Anda ingin berkontribusi pada dokumen (kode sumber terletak di sini di /docs
), ikuti prosedur yang diuraikan dalam CONTRIBUTING.md
.
Anda dapat mengubah repositori yang ada menjadi repositori yang mendukung datmo dengan perintah berikut
$ datmo init
Jika suatu saat Anda ingin menghapus datmo, Anda cukup menghapus direktori .datmo
dari repositori Anda atau Anda dapat menjalankan perintah berikut
$ datmo cleanup
PENOLAKAN: Saat ini ini bukan opsi yang didukung secara resmi dan hanya berfungsi untuk lapisan penyimpanan berbasis file (sebagaimana diatur dalam konfigurasi) sebagai solusi untuk berbagi proyek datmo.
Meskipun datmo dibuat untuk melacak perubahan secara lokal, Anda dapat membagikan proyek dengan mendorong ke server jauh dengan melakukan hal berikut (ini hanya ditampilkan untuk git, jika Anda menggunakan alat pelacakan SCM lain, Anda mungkin dapat melakukan hal serupa). Jika file Anda terlalu besar atau tidak dapat ditambahkan ke SCM maka ini mungkin tidak berhasil untuk Anda.
Di bawah ini telah diuji pada terminal BASH saja. Jika Anda menggunakan terminal lain, Anda mungkin mengalami beberapa kesalahan.
$ 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
Hal di atas akan memungkinkan Anda untuk berbagi hasil dan entitas datmo dengan diri Anda sendiri atau orang lain di mesin lain. CATATAN: Anda harus menghapus .datmo/ dari pelacakan untuk mulai menggunakan datmo di komputer lain atau lokasi lain. Lihat petunjuk di bawah untuk mengetahui cara mereplikasinya di lokasi lain
$ 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
Jika Anda tertarik untuk berbagi menggunakan protokol datmo, Anda dapat mengunjungi website Datmo
T: Apa yang harus saya lakukan jika datmo stop --all
tidak berfungsi dan saya tidak dapat memulai container baru karena realokasi port?
J: Hal ini dapat disebabkan oleh container hantu yang dijalankan dari proyek datmo lain atau container lain. Anda dapat membuat gambar buruh pelabuhan dengan alokasi port tertentu (selain 8888), temukan gambar buruh pelabuhan, hentikan, dan hapus menggunakan docker ps --all
dan docker conntainer stop <ID>
dan docker container rm <ID>
. Atau Anda dapat menghentikan dan menghapus semua gambar yang berjalan di mesin [CATATAN: Ini dapat mempengaruhi proses buruh pelabuhan lain di mesin Anda, jadi LANJUTKAN DENGAN HATI-HATI] docker container stop $(docker ps -a -q)
dan docker container rm $(docker ps -a -q)