ระบบปฏิบัติการ | การทดสอบ CI บน master |
---|---|
Datmo เป็นเครื่องมือการจัดการโมเดลการผลิตแบบโอเพ่นซอร์สสำหรับนักวิทยาศาสตร์ข้อมูล ใช้ datmo init
เพื่อเปลี่ยนพื้นที่เก็บข้อมูลให้เป็นบันทึกการทดลองที่ติดตามได้ ซิงค์โดยใช้คลาวด์ของคุณเอง
หมายเหตุ : Datmo เวอร์ชันปัจจุบันเป็นรุ่นอัลฟ่า ซึ่งหมายความว่าคำสั่งอาจมีการเปลี่ยนแปลงและจะมีการเพิ่มคุณสมบัติเพิ่มเติม หากคุณพบข้อบกพร่องใด ๆ โปรดมีส่วนร่วมโดยเพิ่มปัญหาเพื่อให้ผู้ร่วมให้ข้อมูลสามารถแก้ไขปัญหาเหล่านั้นได้
การตั้งค่าสภาพแวดล้อมคำสั่งเดียว (ภาษา เฟรมเวิร์ก แพ็คเกจ ฯลฯ)
การติดตามและบันทึก การกำหนดค่าโมเดลและผลลัพธ์
การกำหนดเวอร์ชันโครงการ (การติดตามสถานะแบบจำลอง)
ความสามารถในการทำซ้ำการทดสอบ (งานซ้ำ)
แสดงภาพ + ส่งออก ประวัติการทดสอบ
(เร็วๆ นี้) แดชบอร์ด เพื่อแสดงภาพการทดลอง
คุณสมบัติ | คำสั่ง |
---|---|
การเริ่มต้นโครงการ | $ datmo init |
ตั้งค่าสภาพแวดล้อมใหม่ | $ datmo environment setup |
ทำการทดสอบ | $ datmo run "python filename.py" |
จำลองการทดลองก่อนหน้านี้ | $ datmo ls (ค้นหา ID ที่ต้องการ)$ datmo rerun EXPERIMENT_ID |
เปิดพื้นที่ทำงาน | $ datmo notebook (สมุดบันทึก Jupyter)$ datmo jupyterlab (JupyterLab)$ datmo rstudio (RStudio)$ datmo terminal (เทอร์มินัล) |
บันทึกสถานะโครงการของคุณ (ไฟล์, โค้ด, env, config, สถิติ) | $ datmo snapshot create -m "My first snapshot!" |
สลับไปยังสถานะโปรเจ็กต์ก่อนหน้า | $ datmo snapshot ls (ค้นหา ID ที่ต้องการ)$ datmo snapshot checkout SNAPSHOT_ID |
แสดงภาพเอนทิตีโครงการ | $ datmo ls (การทดลอง)$ datmo snapshot ls (สแนปชอต)$ datmo environment ls (สภาพแวดล้อม) |
ความต้องการ
การติดตั้ง
สวัสดีชาวโลก
ตัวอย่าง
เอกสารประกอบ
แปลงโครงการปัจจุบัน
การแบ่งปัน
มีส่วนร่วมกับ Datmo
นักเทียบท่า (ติดตั้งและใช้งานก่อนที่จะเริ่ม): คำแนะนำสำหรับ Ubuntu, MacOS, Windows
$ pip install datmo
คู่มือ Hello World ของเราประกอบด้วยการแสดงการตั้งค่าและการเปลี่ยนแปลงสภาพแวดล้อม ตลอดจนความสามารถในการทำซ้ำของการทดสอบ มีอยู่ในเอกสารของเราที่นี่
ในโฟลเดอร์ /examples
เรามีสคริปต์บางตัวที่คุณสามารถเรียกใช้เพื่อให้เข้าใจถึง datmo คุณสามารถไปที่ตัวอย่างเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการเรียกใช้ตัวอย่างและเริ่มต้นกับโปรเจ็กต์ของคุณเอง
สำหรับบทช่วยสอนขั้นสูงเพิ่มเติม โปรดดูที่คลังบทช่วยสอนเฉพาะของเราที่นี่
การตั้งค่าสภาพแวดล้อมใน datmo เป็นเรื่องง่ายมาก เพียงตอบกลับด้วย y
เมื่อถูกถามเกี่ยวกับการตั้งค่าสภาพแวดล้อมในระหว่างการเริ่มต้น หรือใช้ datmo environment setup
ณ จุดใดก็ได้ จากนั้นปฏิบัติตามคำแนะนำผลลัพธ์
ตัวอย่างหนึ่งแสดงไว้ด้านล่าง สำหรับการตั้งค่า Python 2.7 TensorFlow ด้วยคำขอ/ไดรเวอร์ CPU
สำหรับคำแนะนำฉบับเต็มเกี่ยวกับการตั้งค่าสภาพแวดล้อมของคุณด้วย datmo โปรดดูหน้านี้ในเอกสารประกอบของเราที่นี่
หลังจากตั้งค่าสภาพแวดล้อมของคุณแล้ว นักวิทยาศาสตร์ข้อมูลส่วนใหญ่ต้องการเปิดสิ่งที่เราเรียกว่าพื้นที่ทำงาน (สภาพแวดล้อมการเขียนโปรแกรม IDE หรือ Notebook)
ตัวอย่างหนึ่งแสดงอยู่ด้านล่าง สำหรับการเปิด Jupyter Notebook อย่างรวดเร็วและแสดงการนำเข้า TensorFlow ทำงานตามที่ตั้งใจไว้
ต่อไปนี้เป็นการเปรียบเทียบแบบจำลองการถดถอยโลจิสติกทั่วไปกับแบบจำลองที่ใช้ประโยชน์จาก Datmo
สคริปต์ปกติ | กับดาโม่ |
---|---|
# train.py#from sklearn นำเข้าชุดข้อมูลจาก sklearn นำเข้า linear_model เป็น lm จาก sklearn นำเข้า model_selection เป็น msfrom sklearn นำเข้าภายนอกเป็น 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.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.score(X_test, y_test)#พิมพ์(train_acc)พิมพ์(test_acc)######### | # train.py#from sklearn นำเข้าชุดข้อมูลจาก sklearn นำเข้า linear_model เป็น lm จาก sklearn นำเข้า model_selection เป็น msfrom sklearn นำเข้าภายนอกเป็น 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.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} # สายพิเศษ#datmo.snapshot.create(message="my first snapshot",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 container stop $(docker ps -a -q)
และ docker container rm $(docker ps -a -q)