بهینه سازی مدل در OpenVINO - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

بهینه سازی مدل در OpenVINO

0 امتیاز
سلام و عرض ادب

آیا از بین اعضای این سایت کسی هست که با OpenVINO کار کرده باشه چطور میشه مدلی هایی که با Tensorflow یا هر فریم ورکی را زمان deply رو cpu بهینه اش کرد؟
سوال شده آذر 10, 1397  بوسیله ی عباس همت خواه (امتیاز 436)   2 8 13

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

۱-  از اینجا کتابخانه OpenVINO را دانلود کنید. به نظرم کل پکیج را دانلود کنید .

۲- فایلی را که دانلود کردید پسوندش را به zib تغییر داده و فایل را extract کنید.

ساختار فلدر ها باید به صورت زیر باشه.

bin
deployment_tools
documentation
inference_engine
licensing
opencv
openvx
python

۳- cmd را با مجوز admin باز کنید و به مسیر زیر بروید.

deployment_tools\inference_engine\samples

۴-برای make هم می تونید از فایل bat استفاده کنید به طور مثال create_msvc2017_solution.bat با اجرای این فایل کل پروژه ها تحت کامپایلر مورد نظر شما ساخته میشه برای تعیین مسیر هم فایل bat مورد نظر را باز کنید و متغییر SOLUTION_DIR64 را با مسیر دلخواه ست کنید.

۵- حالا ویژوال استودیو را باز کنید و پروژه مورد نظر خود را بیلد کنید.

۶- در کتابخانه OpenVINO هر مدل شامل دو فایل .xml و .bin است که برای اجرای مثال ها باید با فلگ -m مسیر فایل .xml مورد نظر را معرفی کنیم.

تا اینجا تونستیم مثل های خود OpenVINO را اجرا کنیم حال نوبت میرسه به بهینه سازی مدل خودمون فرض می کنیم فریم ورک تنسورفلو باشه.

۷- به مسیر زیر رفته و فایل install_prerequisites_tf.bat را اجرا کنید.

deployment_tools\model_optimizer\install_prerequisites

اگر آخرین نسخه تنسورفلو نصب کرده باشید فقط کتابخانه network را نصب میشه و عملیات نصب به پایان میرسه و گرنه باید تنسورفلو را نصب کنه شروع می کنه به دانلود کتابخانه (فقط کتابخانه caffe نیاز به نصب نداره آن هم به شرطی که لایه های سفارشی استفاده کرده نکرده باشید)

۸-در این مرحله قصد دارم یک نسخه از protobuf که داخل خود کتابخانه هست را نصب کنیم چون خیلی سریع از تر از نسخه معمولیه برای این کار با توجه به نسخه پایتون مورد نظر فایل protobuf-3.5.1-py*-win-amd64.egg را نصب کنید.

pip install protobuf-3.5.1-py3.6-win-amd64.egg

۱۰- مدل مدنظر شما باید freeze شده باشد به توجه به این پست مدل را  فریز کنید.

۹- حالا به مسیر زیر برید.

deployment_tools\model_optimizer

وبا استفاده از فایل mo_tf.py مدل مورد نظر خودتون را بهینه سازی کنید.

 به طور مثال من ssd v2 را برای شما توضیح میدم مدل مورد نظر خودتون را با توجه به همین مثال انجام بدید.

۱۰- از اینجا مدل  ssd_mobilenet_v2_coco را دانلود کنید در این فایل هم فایل مدل فریز شده با پسوند .pb و هم فایل های checkpoint و هم فایل کانفیگ به نام pipeline.config وجود دارد که در این مثال استفاده می کنیم.فایل مورد نظر را در مسیر مورد نظر خودتون extract کنید.

۱۱-در مسیر زیر فایل کانفیگ مربوط به OpenVINO مخصوص مدل خود را پیدا کنید.(برای مثال ما ssd_v2_support.josn است)

deployment_tools\model_optimizer\extensions\front\tf

۱۲- حال جهت بهینه سازی کد mo_tf.py را با پارامترهای زیر اجرا کنید.

python mo_tf.py --input_model=frozen_inference_graph.pb --tensorflow_use_custom_operations_config=ssd_v2_support.json --tensorflow_object_detection_api_pipeline_config pipeline.config --reverse_input_channels    --output_dir /my_optmize_path

 

پاسخ داده شده آذر 10, 1397 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد آذر 12, 1397 بوسیله ی عباس همت خواه
سلام
این فقط برای یکسری از مدل های خاص تنسورفلو میباشد ؟ ssd_v2_support.json
و اینکه این حالت فقط برای cpu هست ؟ برای gpu هم داریم؟
مدل های زیادی را پشتیبانی می کنه
نه gpu رو هم ساپورت می کنه ولی opencl
...