สำหรับผลลัพธ์การวัดประสิทธิภาพล่าสุด โปรดดู: https://github.com/AI-Performance/embedded-ai.bench/releases
การคอมไพล์ด้วยคลิกเดียว: ดึงโค้ดเฟรมเวิร์กและคอมไพล์ไลบรารี
การแปลงในคลิกเดียว: ดึงโมเดลดั้งเดิม รวบรวมเครื่องมือการแปลง และแปลงโมเดล
การวัดความเร็วในคลิกเดียว: ดึงโมเดลเฟรมแล้ววัดความเร็ว ดึงโมเดลเฟรมเวิร์ก โมเดลเฟรมเวิร์กจะถูกจัดเก็บไว้ในคลังโค้ดที่แตกต่างกัน กระบวนการทดสอบความเร็วจะเสร็จสิ้นการดึงโดยอัตโนมัติ
#tnncd ./tnn ./build_tnn_android.sh # ติดตามและอ่าน `./tnn/build_tnn_android.sh` หากบิลด์ล้มเหลวcd -# mnncd ./mnn ./build_mnn_android.sh # ติดตามและอ่าน `./mnn/build_mnn_android.sh` หากบิลด์ล้มเหลวcd -# ncnncd ./ncnn ./build_ncnn_android.sh # ติดตามและอ่าน `./ncnn/build_ncnn_android.sh` หากบิลด์ล้มเหลว cd -# tflitecd ./tflite ./build_tflite_android.sh # ติดตามและอ่าน `./tflite/build_tflite_android.sh` ถ้า build failedcd -# benchpython bench.py# ถ้าการดำเนินการโอเค:# ===> แก้ไข ./core/global_config.py# === > แก้ไขค่าของ `GPU_REPEATS=1000`, `CPU_REPEATS=100`, `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# ดูผลลัพธ์การวัดประสิทธิภาพด้านล่าง# ./tnn/*.csv# ./mnn/* csv# ./ncnn/*.csv
รุ่นที่รองรับในปัจจุบันมีจำนวนจำกัด โปรดดู: tnn-models, mnn-models, ncnn-models, tflite-models
mnn การสาธิตผลการแข่งขันแบบบัลลังก์
การสาธิตผลลัพธ์ของบัลลังก์ ncnn
การสาธิตผลการแข่งขันของ tnn
การสาธิตผลลัพธ์แบบตั้งโต๊ะของ tflite
รูปต่อไปนี้อธิบายสถาปัตยกรรมของโครงการนี้:
คลาสเอ็นจิ้น: สร้างอินสแตนซ์ของแต่ละเฟรมเวิร์กโดย engine_config
โหลดโมเดล คอมไพล์เอ็นจิ้น lib (สิ่งที่ต้องทำ: เพื่อรวมเข้ากับสคริปต์ py) และรันผลการทดสอบ
BenchSum(TODO): สรุปผลลัพธ์ Bench ของอินสแตนซ์ Engine แต่ละรายการ
repo โมเดลทั่วไป (TODO): พื้นที่เก็บข้อมูลที่เก็บโมเดลดั้งเดิมสาธารณะ เช่น Caffe, โมเดลคลาสสิกของเฟรมเวิร์ก TensorFlow (MobileNetV1/V2 ฯลฯ)
คลังสินค้าโมเดลอิสระสำหรับแต่ละเครื่องยนต์ เช่น รุ่น tnn ประกอบด้วยโมเดล tnn ที่แปลงจากคลังโมเดลสาธารณะ สคริปต์การคอมไพล์ด้วยคลิกเดียว (TODO) ของตัวแปลงโมเดล สคริปต์การแปลงด้วยคลิกเดียว (TODO) ของการแปลงโมเดล และสคริปต์สำหรับการรีเฟรชด้วยคลิกเดียวของ เวอร์ชันโมเดลเป็น README;
คลังสินค้าโมเดลอิสระของเครื่องยนต์แต่ละตัวได้รับการอัปเดตอย่างเป็นอิสระและสม่ำเสมอ (TODO)
ในระหว่างการดำเนินการ แต่ละอินสแตนซ์ของ Engine จะดึงโมเดลจากคลังโมเดลอิสระของตัวเองเพื่อเตรียมพร้อมสำหรับการทำงานแบบตั้งโต๊ะ
หัวข้ออื่นนอกเหนือจากองค์กรโอเพ่นซอร์ส AI-Performance ถูกห้ามไม่ให้เผยแพร่ [ต่อสาธารณะ] [ผลลัพธ์มาตรฐานตามโครงการนี้] หากเผยแพร่ต่อสาธารณะ จะถือเป็นการละเมิด และ AI-Performance มีสิทธิ์ดำเนินการรับผิดทางกฎหมาย
องค์กรโอเพ่นซอร์สด้านประสิทธิภาพ AI ยึดหลักความเป็นกลาง ความยุติธรรม ความเป็นกลาง และความเปิดกว้างมาเป็นหลักการขององค์กร และมุ่งมั่นที่จะสร้างและกำหนดมาตรฐานเกณฑ์มาตรฐานในด้าน AI
โดยปกติแล้ว "โหมดนักพัฒนาซอฟต์แวร์" จะไม่เปิดอยู่ หลังจากยืนยันว่าเปิดอยู่ แต่ยังไม่พบ โดยทั่วไปสามารถแก้ไขได้โดยทำตามลำดับต่อไปนี้:
การตั้งค่าการเชื่อมต่อ USB เปลี่ยนจาก "เฉพาะการชาร์จ" เป็น "ถ่ายโอนไฟล์";
เปลี่ยนอินเทอร์เฟซ USB (อาจเป็นแรงดันไฟฟ้า)
เพิ่ม ID ผู้ขายไปที่ ~/.android/adb_usb.ini จากนั้น adb kill-server จากนั้น adb start-server
รีสตาร์ทโทรศัพท์
รีสตาร์ทคอมพิวเตอร์
เปลี่ยนสายดาต้า (ฉันพบว่าสิ่งนี้เกิดขึ้นก่อนหน้านี้);
ไดรฟ์ซีดี Hisuite ของโทรศัพท์มือถือ Huawei จะใช้พื้นที่ adb นำไดรฟ์ออก
แฟลชโทรศัพท์
หากต้องการส่งโค้ดเป็นครั้งแรก คุณต้องดำเนินการคำสั่งต่อไปนี้เพื่อติดตั้ง hook หลังจากการติดตั้งสำเร็จ แต่ละครั้งที่มีการดำเนินการ git commit
รายการตรวจสอบที่ตั้งไว้ใน .pre-commit-config.yaml
จะถูกตรวจสอบโดยอัตโนมัติ ตัวอย่างเช่น การตรวจสอบรูปแบบปัจจุบันใช้สำหรับโค้ด Python
# การดำเนินการครั้งแรกของ hook อาจช้าในการติดตั้งล่วงหน้า # หากไม่พบคุณต้องติดตั้งก่อน ยอมรับการติดตั้ง pip ล่วงหน้า # หากคุณต้องการถอนการติดตั้ง ให้ดำเนินการถอนการติดตั้งล่วงหน้า
หากคุณไม่พบ python3.8 คุณสามารถติดตั้ง minconda3 และใช้คำสั่งต่อไปนี้:
# ติดตั้ง miniconda3 โดยอัตโนมัติและเขียนสภาพแวดล้อมของผู้ใช้ปัจจุบัน Variable.github/workflows/pre-commit-job.sh# ก่อนที่จะส่งโค้ด ให้สร้างสภาพแวดล้อมชื่อ dev_env_py เป็นตัวอย่าง หากคุณพบปัญหาดังกล่าว ให้เลือก yconda create -n dev_env_py python = 3.8# เปิดใช้งานสภาพแวดล้อมที่สร้างขึ้นใหม่ conda เปิดใช้งาน dev_env_py# ติดตั้งการติดตั้งล่วงหน้าล่วงหน้าอีกครั้ง
หาก CI ค้าง ให้ตรวจสอบบันทึกเฉพาะของ Github Action เพื่อดูว่าเกิดจากการหมดเวลาหรือไม่ เช่น
git clone
warehouse ในขณะนี้ คุณสามารถRe-run this jobs
.github/workflows/unit-test-job.sh