آموزش Caffe بخش سوم : اینترفیس ها و نحوه اجرا

58 6,391

بسم الله الرحمن الرحیم

بخش سوم : اینترفیس های مختلف Caffe (پایتون, متلب و رابط کاربری متنی)  و نحوه اجرای Caffe

Caffe دارای اینترفیس هایی برای command line , Python و MATLAB است که استفاده از آن را در تحقیقات و نمونه سازی های سریع  ممکن میسازد. درست است که Caffe در اصل یک کتابخانه به زبان سی++ بوده و یک اینترفیس ماژولار  برای توسعه ارائه میکند اما این به این معنا نیست که در تمام شرایط  نیاز به کامپایل کد سفارشی شده باشد. به عبارت بهتر برای استفاده از Caffe الزاما نیازی به تغییر و کامپایل چیزی نیست. بلکه میتوان از رابط های cmdcaffe , pycaffe و matcaffe  برای این منظور استفاده کرد.

خط فرمان

رابط خط فرمان cmdcaffe ,یکی از ابزارهای caffe است که برای آموزش مدل, امتیاز دهی و عیب یابی آن استفاده میشود. برای مشاهده اطلاعات بیشتر کافیست caffe را بدون هیچ آرگومانی اجرا کنید. این ابزار به اضافه ابزارهای دیگر را میتوانید در پوشه caffe/build/tools در لینوکس و در Caffe/Build/X64/Release در ویندوز پیدا کنید. (مثالهایی که در ادامه مشاهده میکنید, لازمه آنها, کامل کردن مثال LeNet/MNIST است )

آموزش : با اجرای caffe به همراه آرگومان train بصورت caffe train , با caffe قادر خواهید بود عملیاتهای زیر را انجام دهید :

  • یادگیری مدل از ابتدا
    • در تمامی آموزش ها باید تنظیمات solver را از طریق آرگومان solver به caffe ارائه کنیم : solver solver.prototxt-
  • از سرگیری یادگیری با استفاده از snapshot های ذخیره شده
    • برای از سرگیری آموزش بایستی با استفاده از آرگومان snapshot اطلاعات مورد نیاز را بصورت مقابل فراهم کنیم تا snapshot مربوط به solver  بار گذاری شود :   snapshot model_iter_1000.solverstate-
  • تنظیم دقیق مدلها برای داده ها و وظایف جدید
    • برای تنظیم دقیق مدل نیز لازم است مدل آموزش دیده قبلی را بوسیله آرگومان weight به caffe ارائه کنیم: weights model.caffemodel-

بعنوان مثال شما میتوانید کد زیر را اجرا  کرده و نتیجه را مشاهده کنید :

برای دیدن یک مثال کامل در رابطه با تنظیم دقیق (Fine-tuning) میتوانید به xamples/finetuning_on_flickr_style مراجعه کنید.البته فراخوانی آموزش بصورت زیر است :

آزمایش (Test)

برای آزمایش یک مدل در caffe , میتوان از سویچ test بصورت caffe test استفاده کرد. این سویچ باعث میشود caffe با اجرای مدل در فاز تست (آزمایش ) امتیاز شبکه را بدست آورده و آنرا و آنرا نمایش دهد. معماری شبکه باید بدرستی تعریف شده باشد تا یک معیار دقت یا خطا را بعنوان خروجی خود تولید کند. امتیاز هر دسته ابتدا گزارش شده و سپس امتیاز نهایی که میانگین همه امتیازات است در انتها گزارش میشود.

Benchmarking :

با استفاده از سویچ time میتوان زمان اجرای یک مدل را لایه به لایه benchmark گرفت. این ویژگی برای بررسی کارایی یک سیستم و اندازه گیری زمان نسبی اجرای مدلها مفید است.

Diagnostics :

با استفاده از سویچ device_query میتوان اطلاعات مربوط به GPU های موجود در یک سیستم را بدست آورد و از آن برای ارجاع و یا فهمیدن ترتیب GPU در سیستم بهره برد. ترتیب GPU ها در سیستم هایی که داری چند GPU هستند به این دلیل حائز اهمیت است که میتوان مشخص کرد جهت اجرا از کدام یک استفاده شود.

موازی سازی :

با کمک سویچ –gpu میتوان از چندین GPU برای اجرا caffe استفاده کرد. این سویچ میتواند لیستی از ID هر GPU که با کاما از یکدیگر جدا شده اند, دریافت کرده و به این ترتیب Caffe میتواند برای هر GPU یک solver و شبکه ایجاد کند.  به این ترتیب اندازه دسته در تعداد GPU ها ضرب میشود.

برای باز تولید آموزش بر روی GPU واحد , اندازه هر دسته (batch) در تعریف شبکه باید نتیجتا کاهش یابد.

Python

اینترفیس Python با نام pycaffe یکی از ماجولهای Caffe است که script های آن را میتوان در caffe/python یافت. برای انجام کارهایی مثل بارگذاری مدلها, انجام forward و backward pass, مدیریت IO, بصری سازی شبکه (visualize network), و حتی تغییر نحوه حل مدل کافیست caffe را در کد پایتون خود import کنید. تمام داده های مربوط به مدل,مشتقات و پارامترهای آن برای خواندن و نوشتن در دسترس هستند.

  • Net اینترفیس اصلی برای بارگذاری , تنظیم و پیکربندی و اجرای مدلهاست. caffe.Classifier و caffe.Detector هم اینترفیس های دیگری را جهت سهولت استفاده برای وظایف رایج فراهم میکنند.
  • SGDSolver اینترفیس حل یا Solving را ارائه میکند.
  • io ورودی و خروجی را به همراه پیش پردازش و protocol buffers مدیریت میکند
  • draw معماری شبکه را نمایش میدهد (visualize میکند)
  • blob های caffe برای سهولت استفاده و بهینگی بصورت آرایه های ndarray numpy ارائه شده اند.

آموزش های python را میتوان در بخش caffe/examples یافت.

برای کامپایل کردن ماجول pycaffe , make pycaffe را اجرا کنید. سپس مسیر ماجول را به $PYTHONPATH خود به اینصورت اضافه کنید :

MATLAB

اینترفیس MATLAB با نام matcaffe یک package مبتنی بر caffe است که میتوان انرا در caffe/matlab یافت.با استفاده از این package شما میتوانید از caffe در برنامه های متلب خود استفاده کنید .

در MatCaffe شما میتوانید :

  • در متلب چندیدن شبکه ایجاد کنید
  • فازهای forward و backward را انجام دهید
  • به هر لایه ای هر blob پارامتری در آن در شبکه دستیابی داشته باشید
  • به مقادیرdata و  diff موجود در تمامی blob های موجود در شبکه دسترسی داشته  و یا چیزی در آن ها وارد کنید و در این کار محدود به blob های ورودی و یا خروجی نیستید.
  • پارامترهای یک شبکه را در درون یک فایل ذخیره کرده و یا از یک فایل بارگذاری کنید.
  • blob و شبکه را Reshape کنید
  • پارامترهای شبکه را ویرایش کرده و هر تغییری در شبکه بدهید
  • چندین solver برای آموزش در متلب ایجاد کنید
  • با استفاده از snapshotها فاز آموزش را از سر بگیرید
  • به شبکه آموزشی و شبکه های آزمایشی در یک solver دسترسی داشته باشید
  • به تعداد مشخصی شبکه را اجرا کرده وبعد از اتمام اجرا, کنترل به متلب برگردد.
  • کدهای اختیاری متلب را با گام های گرادیانت مخلوط کنید.

یک نمونه مثال از دسته بندی تصویر رقابت ILSVRC را میتوانید در آدرس caffe/matlab/demo/classification_demo.m   پیدا کنید. لطفا توجه کنید برای اجرای این دمو, شما نیازمند دانلود CaffeNet از ModelZoo هستید . ModelZoo بخشی است که مدلها های مختلف از پیش آموزش داده شده قرار دارند تا محققان براحتی بتوانن از این مدلها در تحقیقات خود با استفاده از Caffe  بهره ببرند..

اطلاعات بیشتر در مورد پیکربندی و کامپایل در ادامه همین پست داده میشه (هرچند در بخش ابزارها داده شده)

ورژن کامپایل شده Caffe (ورژن Pre-built caffe) بدون نیاز به کامپایل یا نصب:

ابتدا ورژن کامل کفی (سورس کد به همراه مثالها) رو از اینجا دانلود میکنید و اکسترکت میکنید بعد بسته به نیازتون یکی از ورژنهای زیر رو دانلود میکنید که صرفا فایلهای اجرایی کفی هستن اون رو هم اکسترکت میکنید و کپی میکنید داخل پوشه caffe-windows که مرحله قبل ایجاد شده. حالا میتونید از مثالها و اسکریپت های کفی هم استفاده کنید.

ورژن جدید (۳۰ مرداد ماه ۱۳۹۶ ): 

 

نکته : آخرین نسخه ها رو میتونید همیشه از اینجا با لینک مستقیم دانلود کنید

ورژن های قبلی رو میتونید از اینجا ببینید

نکته اول : (ورژن GPU رو کسانی که کارت گرافیک انویدیا دارن میتونن دانلود و استفاده کنن. کسانی هم که کارت گرافیک اینتل یا AMD و… دارن باید از ورژن CPU Only استفاده کنن. کلا ورژن CPU only توسط همه قابل استفاده اس اما GPU منحصر به کارتهای انویدیاست .
نکته دوم : برای اینکه بیشترین سرعت رو بتونید داشته باشید باید خودتون کفی رو با cudnn کامپایل کنید که آموزشش بالا هست . معمولا چند برابر سرعتش حتی از حالت GPU هم بیشتر هست.
نکته سوم: عزیزانی که کارتهای Intel و AMD دارن برای استفاده باید از ورژن OpenCL کفی استفاده کنن که لینکش در بخش ابزارها اومده .
نکته چهارم : اگر تازه کار هستید و میخوایید از مثالهای کفی استفاده کنید ولی به هر دلیلی یا موفق به انجام کامپایل توسط خودتون نشدید یا ممکن نشد، میتونید بسته به توضیحات بالا یک پکیج رو دانلود کنید. بعد باید سورس کد کفی رو هم دانلود کنید. از از اینجا استفاده کنید. بعد از اینکه دانلود کردید و از حالت زیپ خارج کردید در داخل کفی کنار باقی پوشه ها یک پوشه بنام build بسازید. و در داخل این پوشه پکیجی که از بالا دانلود کردید رو اکسترکت کنید بطوریه که مسیر به این شکل باشه buildinstall  و در داخل install پوشه های مختلفی مثل bin python include lib و… باشن. پوشه python همون پوشه ای هست که برای pycaffe میتونید ازش استفاده کنید و برای راحتی کار میتونید در پوشه sitepackages اناکوندا یا مینی کوندا کپیش کنید و در پایتون با کفی کار کنید.


ورژن قدیمی : 

(این بخش رو من حدود دوسال پیش قرار دادم برای کسایی که میخواستن تست انجام بدن. الان از اینها استفاده نکنید! برای ارجاعات اینده اینارو حذف نمیکنم و بخاطر آرشیو اینجا هستن)

من برای راحتی کار Caffe رو به سه صورت کامپایل کردم (wrapper متلب (۲۰۱۴b) و پایتون ۲ (آناکوندا۲ نصب کنید) هم بیلد شدن و قابل استفاده هستن) .
ورژن CPU only رو من تست کردم اما دوتا ورژن دیگه رو نه هر کسی باید بر اساس کارت گرافیکش (انویدیا ) تست کنه و اطلاع بده اگه مشکلی هست.

  1.  ورژن CPU_only 
  2. GPU with cudnn support : ورژن با پشتیانی از CPU و GPU و Cudnn
  3. GPU without cudnn support : ورژن با پشتیانی از CPU و GPU  بدون پشتیبانی از cudnn

برای کسایی که نمیتونن از OneDrive دانلود کنن میتونن از لینک زیر از UploadBoy دانلود کنن (با IDM هم میتونید دانلود کنید) (البته از OneDrive هم میتونید با IDM دانلود کنید.منتها انگار فایرفاکس و اپرا مشکل دارن . من بدون مشکل از IE با IDM دانلود کردم)

  1.  ورژن CPU_only 
  2. GPU with cudnn support : ورژن با پشتیانی از CPU و GPU و Cudnn
  3. GPU without cudnn support : ورژن با پشتیانی از CPU و GPU  بدون پشتیبانی از cudnn

Anaconda2 رو هم باید نصب کنید (هر کدوم از ورژن های بالا رو دانلود بخوایید بکنید اناکوندا نصب باید بکنید)

  • خب CPU only رو همه میتونن دانلود کنن و ربطی به اینکه چه کارت گرافیکی دارید نداره چون روی cpu اجرا میشه .(میتونید تو مجازی ساز هم اجراش کنید )
  • اون کسایی که کارت گرافیک انویدیای قدیمی یا ضعیف دارن از ورژن بدون پشتیبانی از cudnn استفاده کنن. این ورژن از کارت گرافیک استفاده میکنه و از cpu خیلی بهتره ولی از cudnn که یه کتابخونه مخصوص یادگیری عمیق هست پشتیبانی نمیکنه .
  • اون کسایی هم که کارت گرافیک انویدیا دارن با compute capability 3 و بالاتر ورژن GPU با پشتیبانی از cudnn رو باید دانلود کنن چون سرعتش چندین برابر بیشتر از استفاده از cuda معمولی هست.(سرعت cpu خیلی خیلی خیلی کمه و اصلا قابل قیاس با کارت گرافیک نیست)
    کسایی هم که از کارت گرافیک میخوات استفاده کنن باید حتما Cuda 7.5 رو دانلود کنن. لینکش در بخش ابزارها هست.
  • پس بطور خلاصه افراد با کارتهای دارای compute 2.1 و پایین تر انویدیا از ورژن بدون cudnn استفاده کنن.
    افراد با کارتهای دارای compute 3.0 به بالا از ورژن با پشتیبانی cudnn استفاده کنن.
    کسایی که کارت گرافیک انویدیا ندارن از ورژن cpu_only استفاده کنن یه خودشون ورژن OpencCL Caffe رو که لینکش در بخش ابزارها هست کامپایل کنن .
  • برای اینکه بدونید compute کارتتون چیه اینجا یا اینجا کلیک کنید
  • دیتاست mnist هم ساخته شده و میتونید از پوشه examples/mnist بعد از دانلود شروع به تست کنید.

توجه مهم : 

برای کامپایل کردن از این سورس کد استفاده نکنید. همیشه سعی کنید از آخرین ورژن سورس کد که لینکش تو بخش ابزارها اومده استفاده کنید. هرچند تو کامپایل سورس کد این ورژنهایی که گذاشتم مشکلی ندارید اما بخاطر اینکه هر روز که میگزره این بیلد قدیمی تر میشه شما باید سعی کنید موقع کامپایل برای خودتون همیشه از اخرین ورژن موجود استفاده کنید تا باگها و مشکلات مختلف برطرف بشه.


 

بخش بعدی : fine-tuning
بخش قبلی : تنظیمات Solver

58 نظرات
  1. […] بخش بعدی اینترنفیس های Caffe و نحوه اجرای اون […]

  2. […] بخش بعدی : مثال عملی بخش قبلی : اینترفیس ها و نحوه اجرا […]

  3. رحیم می گوید

    خیلی ممنون از توضیحات مفید و سایت فوق العادتون

  4. محمدنیا می گوید

    سلام،چندین بار هست که دارم تلاش میکنم نمیتونم فایل : ورژن با پشتیانی از CPU و GPU و Cudnn را از سایت deeplearning دانلود کنم تا چند مگ دانلود میکنه بعد قطع میشه لطفا اگه امکان داره راهنمایی بفرمایین

    1. سید حسین حسن پور می گوید

      سلام .
      از کدوم لینک . لینک آپلود بوی ؟ نباید مشکلی داشته باشه . شما میتونید از اپلود بوی با دانلود منجر هم دانلود کنید که مشکلی براتون نباشه .

  5. محمدنیا می گوید

    از لینک شماره ۲ GPU with cudnn support : ورژن با پشتیانی از CPU و GPU و Cudnn، کلیک می کنم صفحه One Drive میاد که اونجا فقط روی خوده بروزر باز میشه ،لطفا لینک IDM رو قرار دهید

    1. سید حسین حسن پور می گوید

      سلام
      اینها روی سرور oneDrive مایکروسافت اپلود شدن متاسفانه لینک مستقیم رو پشتیبانی نمیکنه .
      افراد دیگه هم دانلود کردن و مشکلی نداشتن احتمالا مشکل از آی اس پی شماس
      سعی کنید یکبار با فیلتر شکن بزارید دانلود بشه شاید مشکلش برطرف بشه
      من هم یه نگاه میکنم ببینم میتونم اینو جای دیگه اپلود کنم یا نه

      1. محمدنیا می گوید

        بسیار ممنونم جناب حسن پور

        1. سید حسین حسن پور می گوید

          تو UploadBoy هم اپلود شدن.
          البته من چک کردم از OneDrive هم شما میتونید با IDM بصورت مستقیم و با سرعت بالا دانلود کنید.
          منتها اینم باید بگم که برای من با اینترنت اکسپلورر بخوبی دانلود کرد اما تو فایرفاکس و اپرا نه IDM عمل نمیکرد(احتمالا بخاطر بروز نبودن پلاگین IDM برای این دو مرورگر بود)
          به هر صورت از هر کدوم خواستید میتونید دانلود کنید
          در پناه حق انشاالله همیشه موفق و سربلند باشید

  6. طاهر می گوید

    سلام. عذر می خوام ممکنه من را راهنمایی کنید
    الان Anaconda2 را نصب کردم و می خوام فقط از ورژن Cpu-only استفاده کنم ، نیازی به نصب Cuda هست یا نه؟
    مورد دیگه اینکه ویژوال اسودیو را هم باید نصب کنم؟؟؟؟؟
    با چی باید کامپایل کنم ؟ ممکنه توضیح بدهید چطوری باید کامپیایل کنم؟ ببخشید سوال هام خیلی ابتدایی بود چون تازه کارم ، ممنون

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      برای CPU_only نیازی به نصب Cuda ندارید. فقط آناکوندا۲ رو نصب کنید تمامه.
      نه نیازی به نصب ویژوال استودیو ندارید مگه اینکه دلتون بخواد برنامه نویسی کنید و یا چیزی رو تغییر بدید.
      نیازی به کامپایل هیچ چیزی نیست. همه چیز از قبل کامپایل شده و آماده استفاده است.

  7. abdollah eydi می گوید

    سایت بسیار خوبی دارین
    ممنون از زحمت هایی که کشیدین و وقتی که برای آماده سازی مطالب گذاشتین

    1. سید حسین حسن پور متی کلایی می گوید

      سلام .
      خواهش میکنم .
      امیدارم به امید خدا بتونه کمک کوچیکی در موفقیت همه شما عزیزان بکنه و نهایتا باعث سربلندی و عزت بیش از پیش کشورمون بشه.
      التماس دعا

  8. رحیم می گوید

    سلام
    فایلی که کامپایل شده است با ویندوز ۶۴ بیتی است
    اگر نسخه ۳۲ بیتی هم دارید لینک دانلود بزارید ممنون می شم چون من هیچی بلد نیستم

    1. سید حسین حسن پور متی کلایی می گوید

      سلام.
      فقط نسخه های ۶۴ بیتی پشتیبانی میشن.

  9. soroor می گوید

    سلام آقای حسن پور
    اول بابت مطالب خوب و توضیحات عالی تون بسیار سپاس گزارم

    بنده از ورژن ویندوز caffe استفاده می کنم و طبق آموزش شما بدنبال cmdcaffe یا ابزار خط فرمان caffe هستم ولی متاسفانه در مسیری که فرمودید در سیستمم چنین فایلی وجود ندارد و یکسری فایل های اجرایی مثل caffe، classification و… وجود دارند که بعد از باز شدن بلافاصله بسته می شوند

    و ی سوال دیگه راهی وجود نداره که بتونم برنامه ها رو از طریق محیط ویژوال اجرا کنم؟

    1. سید حسین حسن پور متی کلایی می گوید

      cmdcaffe منظور همون فایل caffe.exe هست که باید تو cmd اجراش کنید (اگه تو ویندوز هستید- تو پوشه Build\x64\Release هست ) .
      چون caffe یه فایل اجرایی کامند پرامپتی هست اگه بصورت دستی بخوایید اجراش کنید سریع اجرا میشه و بسته میشه برای اینکه بتونید کار کنید اول cmd رو اجرا کنید و بعد caffe رو در اون اجرا کنید. اینطور میتونید یه خلاصه از سویچهای کار با اون رو ببینید.
      محیط ویژوال استودیو برای کد نویسی استفاده میشه . میتونید با استفاده از توابع caffe عمل ترینینگ و یا کلسیفیکیشن رو خودتون بنویسید و اجرا کنید.
      مشکلی نیست در هر صورت. ولی معمولا راحت تر همین گزینه اول هست.
      برای اینکه خوب هم بیاد دستتون چه اتفاقی داره میوفته پیشنهاد میکنم فایل bat مربوط به یکی از مثالهای مثل mnist رو ببینید (https://github.com/Coderx7/caffe_win/blob/master/examples/mnist/train_lenet.bat )
      نحوه فراخونی caffe رو نشون میده.

  10. بنفشه مقصودی می گوید

    با سلام
    ضمن تشکر و سپاسگذاری بابت سایت مفید و راهنمایی های شما در اولین فرصت ممکن چه در سایت خودتون چه در سایت quara و ایمیلی
    سوالی که برای من پیش اومده اینکه برای اجرای Classification demo من یک جا خوندم باید نسخه BVLC caffe رو دانلود کرد؟ یا نه Caffe windows؟
    و اینکه من خواستم caffe.sln رو کامپایل کنم کلی ارور داد و در آخر کامپایل نشد(CommonSettings.props متناسب با کارم تغییر داده شد)

    ۱>LINK : fatal error LNK1181: cannot open input file ‘cudnn.lib’
    ۱>Done Building Project “D:\Deep learning\Caffe\caffe-windows\windows\caffe\caffe.vcxproj” (Build target(s)) — FAILED.
    Build FAILED.

    حتی به صورت جدا خواستم matcaffe رو build کنم متاسففانه باز با ارور مواجه شدم.

    1. سید حسین حسن پور متی کلایی می گوید

      در بخش پرسش و پاسخ (qa.deeplearning.ir)پرسیده شده میتونید پاسختون رو ببینید.

  11. الناز می گوید

    سلام
    وقت بخیر
    من برای اینکه با caffe تو محیط مک کار کنم باید چیکار کنم؟
    ممنون میشم راهنمایی کنید

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      فقط شیوه نصب کمی متفاوته که میتونید از یکی از لینکهای زیر پیروی کنید و کامپایل رو انجام بدید . شیوه اجرا همه جا یکی هست
      http://hoondy.com/2015/04/03/how-to-install-caffe-on-mac-os-x-10-10-for-dummies-like-me/
      و http://installing-caffe-the-right-way.wikidot.com/start

  12. الناز می گوید

    سلام
    من caffe-windows رو دانلود کردم ولی نمی دونم چطوری باهاش کارکنمم
    میشه راهنمایی بفرمایید

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      من تو بخش ابزارها که توضیح دادم
      کجاش مشکل دارید؟

  13. الناز می گوید

    سلام
    Caffe/Build/X64/Release این مسیری که
    فرمودین من تو فایل دانلودیم ندارم

    1. سید حسین حسن پور متی کلایی می گوید

      این مسیر وقتی ایجاد میشه که شما سورس کد رو کامپایل کرده باشید. وقتی کامپایل کنید این پوشه ها خودکار ایجاد میشن.

  14. محمد می گوید

    سلام و عرض ادب
    متاسفانه کارت گرافیک من cudnn رو پشتیبانی نمیکنه؟
    مراحل نصب همانند حالتی است که پشتیبانی میکته هستش؟فقط تویcommand setting.promp قسمت مربوط بهcudnn را falseکنم؟مثل تنظیمات شما؟
    و اینه بعد از طی مراحاح باید برم Anconda دانلود کنم
    در اخر هم کامپایل کنم
    درسته؟
    ممنون

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      فرقی نمیکنه . بله فقط همون قسمت رو false کنید.
      قبل کامپایل اناکوندا۲ رو نصب کنید و تو فایل مسیرش رو تنظیم کنید و Python support رو هم True کنید.
      بعد که همه اینها اکی شد اونوقت بزنید کامپایل

  15. m.javad rezaei می گوید

    سلام
    واقعا خسته نباشید مطالبتون فوق العاده اس از خدا میخوام بهترینها رو براتون رقم بزنه
    میخواستم یکم راجب OpencCL بگید منظورم اینه در قیاس با کارت گرافیک انویدیا و cudnn چه جوریه ؟کاراییش مثل همونه؟
    مورد دیگه که هست اینه که جواب یکی از دوستان گفتید “محیط ویژوال استودیو برای کد نویسی استفاده میشه . میتونید با استفاده از توابع caffe عمل ترینینگ و یا کلسیفیکیشن رو خودتون بنویسید و اجرا کنید.”
    کدنویسی تو محیط ویژوال در حد هون تعریف لایه هاس (که تا حالا توضیحاتشو دادید) یا باید نحوه عملکرد لایه رو خودمون کد بزنیم ؟ کدوم روش بهتره منظورم اینه نتیجه کار فرقی میکنه؟
    با تشکر از لطفتون

    1. سید حسین حسن پور متی کلایی می گوید

      سلام .
      اولا کامنت قبلی در مورد Lr_policy و type رو بخونید من یه اشتباه کرده بودم که الحمدالله متوجه شدم و توضیحات مورد نیاز رو دادم .
      دوما سعی کنید سوالها رو در بخش پرسش و پاسخ بپرسید که برای بقیه قابل استفاده باشه
      سوم کارایی OpenCL فعلا پایین تره و هنوز کار داره تا بخواد به خوبی و سرعت cuda و خصوصا cudnn برسه که اختصاصی برای این کار طراحی شده.
      بله شدن میشه فکر کنم یه نمونه کد سی++ رو تو بخش پرسش و پاسخ برای یکی از سوالها فرستاده باشم .
      برای پایتون هم اگر فرصت بکنم سعی میکنم یه آموزش کامل بزارم ولی زمانش مشخص نیست.
      ساده ترین شکل کار کردن همینی هست که گفته شده یعنی بدون نیاز به کد نویسی تعریف میکنید و تنظیمات رو لحاظ میکنید. با کد نویسی هم میتونید تعریف شبکه رو هم از طریق فایل بخونیدو هم خودتون با کد نویسی شبکه رو تعریف کنید و آموزش بدید .
      کد نویسی دست ادم رو خیلی بازتر میزاره قائدتا ولی سادگی کار برای شروع و اموزش دادن معمولی خب یه چیز دیگه اس.
      در نتیجه کار فرقی نداره اصلا.

  16. مریم می گوید

    سلام روزتان بخیر
    مهندس یه سوال، قرار براین است که من بر تصاویر کار کنم.اما من تنها سه تصویر دارم.
    سوال من این هست که این امکان در caffe وجود دارد که من تصاویرورودی و داده train و داده تست را به صورت وکتور به caffe معرفی کنم و نه به صورت تصویر؟یعنی دقیقا ورودی های من دقیقایک ماتریس برداری باشه .یعنی من سه ماتریس داشته باشم که یکی برای ورودی ، دیگری برای داده train و یکی دیگر تست.
    یعنی نحوی ورودی من میخواهم مانند شبکه های عصبی مصنوعی باشه.

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      من خودم تا بحال این کارو نکردم . این کار هم با کد نویسی مقدور هست. یا از سی++ یا از رپر پایتون /متلب باید استفاده کنید.
      بدون کد نویسی تا جایی که من خبر دارم ممکن نیست اینکار.

      1. مریم می گوید

        ممنون
        یعنی این امکان وجود ندارد حتی من ازmatcaffe استفاده کنم ؟ یا متلب۲۰۱۶a?
        باید حتما از ابتدا cnn خودم کدشو بنویسم؟

        1. سید حسین حسن پور متی کلایی می گوید

          منظور این نبود که اصلا نمیشه! منظورم اینه که بدون کد نویسی (استفاده از API کفی ) نمیشه .
          در کفی کارها به دو صورت قابل انجام هست ۱٫توسط فایلهای اسکریپتی prototxt (که فایل پیکربندی و تنظیمات بهینه سازی انجام میشن) ۲٫توسط برنامه نویسی (سی++ یا پایتون یا متلب)
          نیازی به نوشتن CNN نیست.شما خودتون باید داده رو reshape کنید و با استفاده از توابعی که کفی بشما میده بعنوان ورودی به لایه کانولوشن و الخ بدید.

        2. مریم می گوید

          متشکرم
          پس من خودمو یه مدت درگیر کفی کردم.پس مستقیم باید برم اموزش کفی در متلب و بخونم.متشکرم از راهنمایی خوبتان

          1. سید حسین حسن پور متی کلایی می گوید

            البته پیشنهاد میکنم سراغ پایتون برید متلب مستندات درست و حسابی نداره و شاید یکم اذیت بشید مثالهای پایتون خیلی بیشتره و افراد بیشتری هم کار کردن .

  17. مرضیه می گوید

    روزتون بخیر
    من هم Caffe Release, Caffe Debug را برای Visual Studio 2015, CPU only, Python 2.7 دانلود کردم و طبق دستور caffe .exe را اجرا کردم. و دستور را زدم اما با این خطا روبرو میشم:

    C:\caffe\bin>caffe-d
    caffe-d: command line brew
    usage: caffe

    commands:
    train train or finetune a model
    test score a model
    device_query show GPU diagnostic information
    time benchmark model execution time

    No modules matched: use -help

    C:\caffe\bin>caffe-d train -solver solver.prototxt
    F0405 02:26:58.833712 1732 io.cpp:41] Check failed: fd != -1 (-1 vs. -1) File n
    ot found: solver.prototxt
    *** Check failure stack trace: ***

    C:\caffe\bin>

    1. سید حسین حسن پور متی کلایی می گوید

      سلام . فرمت فراخونی باید به شکل زیر باشه :
      caffe.exe" train --solver=solver.prototxt
      و دقت کنید که مسیر solver رو صحیح بدید. اینجا خطایی که گرفتید بخاطر پیدا نکردن فایل سالور شماست .
      بعنوان مثال من سعی میکنم یک نظم مناسب داشته باشه پوشه هام . فرض کنید میخوام مثال mnist رو اجرا کنم . میشه با این دستورات براحتی اینکارو کرد :
      CD ../../
      SET TOOLS=Bin
      "%TOOLS%/caffe.exe" train --solver=examples/mnist/lenet_solver.prototxt

      بطور خلاصه از روت سعی کنید اجرا کنید کفی رو تا بتونید با مسیرهای نسبی راحت تر کار کنید. (کد بالا رو هم میتونید تو یه فایل با پسوند.bat ذخیره کنید و هر وقت نیاز به اجرا داشتید اون فایل رو اجرا کنید)
      در برنچ کفی من در گیت هاب مثالها به معادل ویندوزی تبدیل شدن و میتونید اونها رو ببینید و ایده بگیرید یا استفاده کنید

      1. مرضیه می گوید

        واقعا که محیط خسته کننده ایه!!!!!!
        باز هم همون خطا رو دارم…

        من دو تا سوال دارم:
        یکی از بچه ها پرسیده:
        Caffe/Build/X64/Release این مسیری که فرمودین من تو فایل دانلودیم ندارم.
        شما در جواب ایشون فرمودین:
        این مسیر وقتی ایجاد میشه که شما سورس کد رو کامپایل کرده باشید. وقتی کامپایل کنید این پوشه ها خودکار ایجاد میشن.

        سوال من اینه که اینها مگر نسخه های کامپایل شده نیستن؟؟کدوم سورس کد رو اجرا کنیم؟؟؟
        سوال دومم اینه: مسیر سولورها کجاست؟؟؟من در پوشه دانلود شدم فقط در پوشه include دوتا کتابخونه solver.hpp و solver_factory.hpp دارم!!همین.

        1. سید حسین حسن پور متی کلایی می گوید

          توجه : مطالب زیر مربوط به ورژن کفی سابق هست. در نسخه بروز شده که در بالا قرار داده شده، از آخرین ورژن کفی استفاده شده و مشکلات زیر وجود نداره : (بروز رسانی ۳۰ مرداد ۹۶ )

          سلام. شما آموزش ها رو بخونید وگرنه به مشکل میخورید.
          من تست کردم و هیچ مشکلی نبود و احتمالا باز شما مسیری رو اشتباه طی میکنید.
          جواب سوال ۱: این مسیر مربوط به زمانی هست که شما از ویژوال استودیو برای کامپایل استفاده کرده باشید. این مسیر معادل همون پوشه bin شماست . این ورژن ها با cmake کامپایل و بیلد شدن برای همین پوشه بیلدشون متفاوته هرچند خودتون هرطور بخوایید میتونید پوشه ها رو بسازید ولی پیشفرض اینطورین.
          جواب سوال۲: فایل solver رو خود شما میسازید . اگه ندارید و میخوایید تست کنید میتونید از مثالهایی که تو خود کفی قرار داده شده استفاده کنید.
          دلیل اینکه اون فایلها رو ندارید بخاطر اینه که من فایلهای اجرایی رو فقط اپلود کردم و ایده این بوده که شما سورس کد کفی رو دانلود میکنید و بعد این رو به اون اضافه میکنید (توضیحات رو بالا دادم تو متن )

          برای اینکه تو اجرای مثالها مشکل نداشته باشید و بتونید تست بگیرید یه کاری کنید. از اینجا ورژن کفی مربوط به برنچ من(قدیمی) رو دانلود کنید . اکسترکتش کنید یه جا. حالا آخرین ورژن کفی رو هم دانلود و اکسترکت کنید دقیقا جایی که ورژن کفی من رو اکسترکت کردید. overwriteش کنید (به این دلیل دارید این کارو میکنید تا فایلهای جدید جایگزین فایلهای قدیمی تر بشن و از طرفی فایلهای متفاوتی که تو ورژن من هست باقی بمونه).
          حالا یکی از اون ورژن های از پیش اماده رو دانلود و اکسترکت کنید و محتویاتش رو به پوشه های قبلی اضافه کنین . یعنی وارد پوشه کفی بشید جایی که پوشه های مختلف مثل cmake python examples و… هستن(به این میگیم روت کفی ). و بعد اینجا کپی کنید. اگر هم پیام replace اومد بزنید اکی تا جایگزین پوشه های هم نام بشه. حالا برای راحتی بیشتر تو همون روت کفی یه پوشه جدید بنام Build بسازید. درداخل اون یه پوشه بنام X64 و داخل اون هم Release . حالا محتویات پوشه bin رو کپی کنید تو پوشه Release . بعد هم میتونید پوشه bin رو حذف کنید.
          الان میتونید مثالهای مختلف رو اجرا کنید با توجه به اموزشی که تو سایت هست.

  18. محسن می گوید

    سلام
    در قسمت benchmarkink زمانی که توضیحات را نوشته اید عبارت test را به جای time نوشته اید. جهت یادآوری اعلام کردم تا سایر دوستان اشتباه نکنند.
    با تشکر

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      خیلی ممنونم . تصحیح شد.

  19. nxn می گوید

    سلام خسته نباشید من تو caffe تازه کار هستم برای اجرای دموی caffe/matlab/demo/classification_demo.m توی متلب لطف می کنید دقیق راهنماییم کنین که باید چیکار کنم و caffenet رو از چه لینکی دانلود کنم؟

    1. سید حسین حسن پور متی کلایی می گوید

      سلام .
      آخرین ورژن کفی رو میتونید از بخش ابزارها دانلود کنید (ورژن کامل رو دانلود کنید)
      برای تنظیم متلب هم به آموزش نصب و پیکربندی Caffe در ویندوز مراجعه کنید اونجا توضیحات داده شده .

      1. nxn می گوید

        کفی رو نصب کردم قبلا کار تنظیمات متلب هم انجام دادم فقط نمیدونم که این دمو رو caffe/matlab/demo/classification_demo.m چه طور باید اجرا کنم.

        1. سید حسین حسن پور متی کلایی می گوید

          تا جایی که خاطرم هست شما باید پوشه matlab رو بعد از کامپایل کردن با سویچ متلب به PATH اضافه میکردید و بعد شروع به کد نویسی میکردید

  20. m.javad rezaei می گوید

    با عرض سلام و خسته نباشید
    من میخواستم طبق توضیحات ی مثال Fine-tuning رو انجام بدم ولی وقتی به ادرسی که فرمودید (examples/finetuning_on_flickr_style/solver.prototxt) رفتم فایلی به نام solver.prototxt وجود نداشت اگر ممکنه راهنماییم کنید
    باتشکر

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      از اینجا http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html و یا اینجا https://github.com/BVLC/caffe/blob/master/examples/02-fine-tuning.ipynb استفاده کنید
      (ضمنا https://raw.githubusercontent.com/joelthchao/tensorflow-finetune-flickr-style/master/assemble_data.py رو هم بگیرید و اگر assemble_data.py در داخل پوشه خطا داد (احتمالا میده) شما اینیکی رو استفاده کنید)

      1. m.javad rezaei می گوید

        ممنون از لطفتون راستش خودم قبلا طبق این http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html عمل کردم ولی چون دستوراتی مثل seed و workers رو نفهمیدم یعنی چی بدون اینها فایل assemble_data رو اجرا کردم بعد خیلی طول کشید منم متوقفش کردم راستش images فک میکنم منظورش تعداد تصویر باشه اگر ممکنه مفهوم seed و workers رو توضیح بدید
        ممنونم

  21. m.javad rezaei می گوید

    سلام
    ببخشید من رفتم تو ویندوز تو مسیر C:\Program Files\Caffe_1.0_Windows-master\Caffe_1.0_Windows-master\python\caffe
    pycaffe.py رو با پایتون اجرا کردم ولی خطای زیر رو داد میشه راهنماییم کنید
    ,(dtype_range = {np.bool_: (False, True
    ‘_AttributeError: ‘module’ object has no attribute ‘bool

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      چرا اونو اجرا کردی؟ اون فقط حاوی یکسری تعاریف برای متدها و… هست. بطور مستقیم اونجا کاری نداری که بخوای pycaffe.py رو مستقیم اجرا کنی.
      شما اگه بخوای کدی بزنی خیلی راحت یه سورس کد نمونه (که تو این فایلهای ipnb تو پوشه examples هست رو باز میکنی و تو jupyter notebookتغییر میدی ) یا اینکه یه سورس کد پایتون ایجاد میکنی بالا مینویسی مثلا import caffe شروع میکنی به کد زدن و چیزایی ه نیاز داری

      1. m.javad rezaei می گوید

        سلام
        مرسی از راهنماییتون ولی تو آموزش بالا خودتون گفتید:
        “برای کامپایل کردن ماجول pycaffe , make pycaffe را اجرا کنید. سپس مسیر ماجول را به $PYTHONPATH خود به اینصورت اضافه کنید :

        export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH”

        1. سید حسین حسن پور متی کلایی می گوید

          سلام
          اینجا جا به جا نمایش داده شده ولی اگه دقت میکردید مشخص هست که ما از بین Make pycaffe و pycaffe یکی اسم ماجول باید باشه و یکی دیگه دستور برای ایجاد اون:
          “برای کامپایل کردن ماجول پای کفی (pycaffe) ، میک پای کفی (make pycaffe) را اجرا کنید و سپس مسیر ماجول را به …. ”
          برای ویندوز نیازی به این دستور نیست و با توجه به تنظیماتی که دربخش کامپایل کفی در ویندوز اومده مشخص میشه. (دیفالت هست)

          1. m.javad rezaei می گوید

            یه دنیا ممنون

  22. امیر می گوید

    سلام
    من یه مدل از پیش آموزش دیده کفی دانلود کردم که روی دیتا ستم خیلی خوب جواب داد اما میخوام فایل با پسوند caffemodel و باز و بررسی اش کنم برای این کار چون این فایل با هیچ نرم افزاری باز نمیشه لازمه کفی و کامل نصب و کامپایل کنم؟

    1. سید حسین حسن پور متی کلایی می گوید

      شما میتونی از نسخه از پیش کامپایل شده استفاده کنید و نیازی به کامپایل چیزی نباشه . از همون رپر پایتون استفاده کنید برای چک .
      یا اینکه اگه میخوایید با سی++کار کنید دستتون بازه .

  23. m.javad rezaei می گوید

    با عرض سلام و احترام
    ببخشید من خواستم با استفاده ازپایتون شبکه lenet رو ترین کنم ، مطابق اموزشی که تو پوشه example بود رفتم
    اول دستورات زیر رو ران کردم
    ()caffe.set_mode_cpu
    (‘solver = caffe.SGDSolver(‘mnist/lenet_auto_solver.prototxt
    بعد از اجرا شدن ان دستور زیر را زدم
    ()solver.net.forward
    ()solver.test_nets[0].forward

    ولی اجرا نمیشه و خطای name ‘solver’ is not defined رو میده
    اگر ممکنه راهنماییم کنید
    با تشکر

  24. MiniMax می گوید

    سلام
    ۱- اون دستوراتی که که برای ترین و تست شبکه با gpu و بدون gpu گفته شد آیا اونها در ویندوز اجرا میشوند یا لینوکس ؟
    D:\Caffe_1.0\build\tools\Release داخل این فولدر یک سری فایل های exe هستند مثلا caffe یا compute_image_mean اینها رو چجوری میشه اجرا گرفت ؟ آیا نیازی هست در مسیر Environment Variable ثبت شود این آدرس ؟
    بی زحمت در مورد فایل های exe زیر توضیح دهید کاربردشون چی هست
    compute_image_mean
    convert_imageset
    device_query
    extract_features
    net_speed_benchmark
    upgrade_net_proto_binary
    upgrade_net_proto_text
    upgrade_solver_proto_text
    ۲- آیا برای کار با تک تک اینها باید فرخوانی شوند یا اینکه همشون در فایل caffe.exe همین فولدر هستند ؟

    1. سید حسین حسن پور متی کلایی می گوید

      سلام
      نه نیازی نیست میتونی مستقیم فراخونی کنی . اگرم به PATH اضافه کنی خودت میدونی . اگه اینطور راحت تری این کارو بکن.
      خیلی معمولی فراخونیشون کن و پارامترهای مورد نیازشون رو براشون بفرست. بدون ارگومان فراخونی کنی معمولا ارگومانهایی کهنیاز دارن رو بهت نشون میده
      اولی برای گرفتن میانگین از دیتاست هست
      برای تبدیل تصاویر به دیتاست هست به فرمت lmdb یا leveldb
      برای گرفتن اطلاعات از کارت گرافیکت هست زیاد استفاده نمیشه
      یه نمونه برای انجام فیچر اکسترکشن هست که کدش تو پوشه اگزمپل هست البته
      اینم برای بنچمارک شبکه اس
      این هم برای تبدیل فایل قدیمی به ورژن جدید هست معمولا شما باهاش کاری نداری
      اینم مثل بالایی تعریف شبکه
      اینم مثل بالایی ولی برای سالور
      با این سه تای اخری شما کاری نداری چون اگه تو شبکه استفاده کنی خود کفی تبدیلات رو انجام میده و ترین رو اغاز میکنه
      نیازی نداری اینارو فراخونی کنی مگه اینکه کاری باهاشون داشته باشی . تو ۹۹درصد اوقات فقط اولی و دومی رو باهاش سرو کار داری اونم برای محاسبه میانگین و یا تولید دیتاست

آدرس ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.