최신 벤치마크 결과는 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`를 따르고 읽으십시오.cd -# 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): 각 엔진 인스턴스의 벤치 결과를 요약합니다.
공통 모델 저장소(TODO): 공개 원본 모델을 저장하는 저장소입니다. TensorFlow 프레임워크의 클래식 모델(MobileNetV1/V2 등)인 Caffe와 같은 것입니다.
tnn-models와 같은 각 엔진에 대한 독립 모델 웨어하우스입니다. 공개 공용 모델 웨어하우스에서 변환된 tnn 모델, 모델 변환기의 원클릭 컴파일 스크립트(TODO), 모델 변환의 원클릭 변환 스크립트(TODO), 모델의 원클릭 새로 고침을 위한 스크립트가 포함되어 있습니다. README에 대한 모델 버전;
각 엔진의 독립 모델 웨어하우스는 독립적으로 정기적으로 업데이트됩니다(TODO).
실행 중에 각 엔진 인스턴스는 벤치를 준비하기 위해 자체 독립 모델 웨어하우스에서 모델을 가져옵니다.
AI-Performance 오픈소스 기관 이외의 주체는 [본 프로젝트를 기반으로 한 벤치마크 결과]를 [공개] 게시하는 것이 금지되어 있으며, 공개적으로 게시할 경우 침해로 간주되며, AI-Performance는 법적 책임을 추궁할 권리가 있습니다.
AI-Performance 오픈소스 조직은 중립성, 공정성, 공평성, 개방성을 조직 원칙으로 삼고 AI 분야의 벤치마크 표준을 만들고 공식화하는 데 전념하고 있습니다.
일반적으로 "개발자 모드"가 켜져 있지 않습니다. 켜져 있는지 확인한 후에도 여전히 찾을 수 없습니다. 일반적으로 다음 순서에 따라 해결할 수 있습니다.
USB 연결 설정이 "충전 전용"에서 "파일 전송"으로 변경됩니다.
USB 인터페이스(아마도 전압)를 변경하십시오.
~/.android/adb_usb.ini에 공급업체 ID를 추가한 다음 adb kill-server, adb start-server를 추가합니다.
전화를 다시 시작하십시오.
컴퓨터를 다시 시작하십시오.
데이터 케이블을 변경하십시오(이전에 이런 일이 있었던 것으로 나타났습니다).
Huawei 휴대폰의 CD 드라이브 Hisuite는 adb를 차지합니다. 드라이브를 꺼내십시오.
전화기를 플래시하세요.
처음으로 코드를 제출하려면 다음 명령을 실행하여 후크를 설치해야 합니다. 성공적으로 설치되면 git commit
실행될 때마다 .pre-commit-config.yaml
에 설정된 검사 항목이 자동으로 검사됩니다. 예를 들어 현재 형식 검사는 Python 코드에 대한 것입니다.
# 첫 번째 Hook 실행이 느릴 수 있습니다. pre-commit install # 찾을 수 없으면 먼저 설치해야 합니다. pre-commitpip install pre-commit # 제거하려면 pre-commit uninstall을 실행하세요.
python3.8을 찾을 수 없으면 minconda3을 설치하고 다음 명령을 사용할 수 있습니다.
# miniconda3을 자동으로 설치하고 현재 사용자의 환경 변수를 작성합니다.github/workflows/pre-commit-job.sh# 코드를 제출하기 전에 예시로 dev_env_py라는 환경을 생성하면 yconda create -n dev_env_py python을 선택합니다. = 3.8# 새로 생성된 환경 활성화 conda activate dev_env_py# 재설치 pre-commitpre-commit 설치
CI가 중단되는 경우 Github Action의 특정 로그를 확인하여
git clone
Warehouse 등의 시간 초과로 인한 것인지 확인하세요. 이때Re-run this jobs
수 있습니다.
.github/workflows/unit-test-job.sh