یکی از سریعترین و موثرترین راهها برای ساخت برنامه image classifier این است که از اهرمی بهنام transfer learning استفاده کنیم تا اشیایی که مورد نظر ما هستند را تشخیص بدهد. در این مقاله این رویکرد را با بهره وری از Google’s Inception v3 image classifier دنبال میکنیم. توصیه میکنیم قبل از مطالعه مقاله برای دید بهتر ابتدا “ هوشمصنوعی با OPENCV ” را مطالعه کنید. (ترجیحا اگر مطالب OpenCv سایت را بخوانید متوجه موضوع خواهید شد.)
پس از اینکه نرمافزار را نصب کردید برای اطمینان از نصب میتوانید از پنجره Power Shell یا Command Prompt ورژن نرمافزار را چک کنید.
خب از این مرحله به بعد هر زمانی میخواهید با نرمافزار docker کار کنید اول باید نرم افزار رو باز کنید و مطمئن شوید که نرمافزار در حال اجرا است مانند تصویر زیر.
و با اجرای این دستور:
میتوانید مطمئن شوید که داکر میتواند ایمیج ها را دریافت و در نتیجه اجرا کند. این دستور ایمیج تنسورفلو موردنظر را دانلود میکند و یک container را در پسزمینه اجرا میکند. وقتی container در حال اجرا است میتوانیم به نرمافزار متصل شویم (log in کنیم) و توسعه و کارهای موردنظر را در container انجام بدهیم.
حال میتوانیم ایمیج هایی را که داریم توسط دستور زیر چک کنیم. 
و همچنین برای فایرفاکس میتوانید اینجا کلیک کنید.
از دیتایی که دانلود کردیم حدود 90 درصد را برای آموزش و 10 درصد را برای تست و تشخیص جدا میکنیم. مجموعه آموزشی را به مسیری بهنام trainingimages انتقال میدهیم.
یا هر دو نوع کلاس دیگری که مایل هستید، اسم آن را بگذارید به طور مثال در این آموزش دو نوع سگ و هم دیتای تست ( منظور گربه است که جهت تست استفاده کردهایم) را انتخاب کردهایم. 
برای دریافت ID container از دستور زیر استفاده میکنیم.
حال فایل /training_images را درون docker container که در حال اجرا است کپی میکنیم. (برای اینکار باید اول به دایرکتوری دیتایی که دانلود کردیم برویم)
داده های تست هم همینطور به صورت زیر است.
و در نهایت به container وارد میشویم.
(دقت کنید که ازاینجا به بعد وارد محیط لینوکس شدیم میدونم پیچیده شده کاملا هم قبوله ولی شیرینه البته برای اهل دلش) حال دایرکتوری روت را چک میکنیم.
در نهایت لیست باید شامل نوشته زیر باشد که باشد ( اگر موفق به دیدن خط زیر شدین واقعا باید به خودتون تبریک بگین)
(دقت کنید که خطوط بالا یک دستور است نه چند دستور) خروجی شما باید و حتما شبیه عکس زیر باشد.
این مرحله نسبت به مراحل قبلی مقداری طول میکشد پس لطفا صبور باشید.
خروجی آخر هم باید مانند تصویری که در ادامه قرار میدهیم باشد. 
دو خط آخر در هر دو مثال درصد تخمین هر کلاس رو بیان میکند. امیدواریم که این آموزش هم مورد توجه شما مخاطبین سیسوگی مفید واقع شده باشد. منبع منبع منبع
مراحل پروژه:
راهاندازی و استفاده از Tensor Flow Docker Container دانلود مجموعه اموزشی آموزش دادن تشخیصگام اول
راهاندازی و استفاده از Tensor Flow Docker Container:
ابتدا باید از طریق لینکی که در ادامه قرار میدهیم نرمافزار موردنظر را نصب کنید. برای دریافت نسخه ویندوز نرمافزار داکر باید از سایت رسمی آن دانلود کنید.(توجه کنید که تا log in نکنید نمیتونید چیزی دانلود کنید!) برای دانلود، دو نوع نرمافزار برای دانلود است که اگر حوصله سر و کله زدن با ارور و باگها را ندارید نسخه stable را پیشنهاد میکنیم و اگر بیشتر و حرفهایتر میخواهید در این زمنیه کار کنید توصیه میکنیم نسخه edge نرمافزار را نصب کنید.1 | docker version |
1 | docker run hello-world |
1 | docker run -it -d macgyvertechnology/tensorflow |
1 | Docker images |
گام دوم
دانلود مجموعه آموزشی:
میتوانید از extention های مرورگرها استفاده کنید به طور مثال برای گوگل کروم میتوانید از اینجا کلیک کنید.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /training_images /dog image1.jpg image2.jpg ... /cat image1.jpg image2.jpg |
دیتا تست:
1 | docker ps -a |
1 | docker cp training_images/ _container_id_:/ |
1 | docker cp test_images / _container_id_:/ |
1 | docker exec -it _container_id_ bash |
1 2 3 | Cd / ls |
1 | Training_images test_images tensorflow |
گام سوم
آموزش شبکه عصبی:
دستور زیر retrain.py را اجرا و آموزش را شروع میکند.1 2 3 4 5 6 7 8 9 10 11 | python tensorflow/tensorflow/examples/image_retraining/retrain.py \ --bottleneck_dir=/bottlenecks \ --model_dir=/inception \ --output_labels=/retrained_labels.txt \ --output_graph=/retrained_graph.pb \ --image_dir=/training_images/ |
گام چهارم
تشخیص:
حالا میتوانیم ماژول آموزش داده شده را اجرا کنیم و ببینیم عملکرد آن برای دیتایی که برای تست قرار داده بودیم چیست؟1 2 3 4 5 6 7 8 9 10 | python tensorflow/tensorflow/examples/image_retraining/label_image.py \ --graph=/retrained_graph.pb \ --labels=/retrained_labels.txt \ --image=/test_images/german-shepherd/german-shepherd-toy.jpeg german-shepherd-toy.jpeg عکسی از داده های تست که میخواهیم ماژول را با آن تست کنیم. دقت کنید که نگفتیم هر عکسی لطفا به انتخاب این عکسها با دقت عمل کنید. |
1 2 3 4 5 6 7 | python tensorflow/tensorflow/examples/image_retraining/label_image.py \ --graph=/retrained_graph.pb \ --labels=/retrained_labels.txt \ --image=/test_images/dalmation/dalmation-toy.jpeg |
سلام وخدا قوت بخش یادگیری ماشین واقعا جالبه وتشکر از اموزش شما اگر بشه بخش یادگیری ماشین رو با یک پروژه کابردی وبرای یک هدف مشخص اموزش بدید خیلی بهتر میشه تشکر از اموزشتان
سلام کیان عزیز. سپاس از نظر مثبت شما. موردی که میفرمائید را در برنامه قرار خواهیم داد.