به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

با سلام،
من برای استفاده از caffe در matlab تحت ویندوز، فایلهای windows.zip و pre-built library متناسب با سیستم خودم رو دانلود و باز کردم. برای این‌کارها البته نیازی به نصب چیزی نیست و فقط باز کردن فایل فشرده و کپی کردن اونها در محل مورد نظر لازمه دیگه، درسته؟
حالا من وقتی توی matlab برنامه classification_demo رو باز و اجرا می کنم، به من پیغام می ده که

Undefined function or variable 'caffe_'.

من برنامه رو از مسیر درستش اجرا می کنم (از توی شاخه demo) و بنابراین این قضیه باعث این مشکل نیست. اما کلا آیا نباید چیزی به صورت نصب روی matlab هم داشته باشیم؟ من فکر می کنم این مشکل من به این خاطره که matlab من به خودی خود چیزی درباره caffe در پکیج هاش نداره. آیا صرفا باز کردن فایلها برای استفاده از caffe تحت matlab کافیه؟

با تشکر از زحمات تون،
شهریار شاه حیدری

توسط (110 امتیاز)

1 پاسخ

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

سلام
برای کار با متلب باید رپر متلب رو داشته باشید . ایجاد رپر متلب رو زمان بیلد کردن کفی مشخص میکنید تو تنظیمات . (تو ویژوال استودیو که مشخصه اما چون دیگه پیشنهاد نمیشه از همون روش cmake برید جلو. برای فعال کردن رپر متلب کافیه در فایل build_win.cmd خط 87 مقدار 1 رو ست کنید . (میتونید هم در تنظیمات پیشفرض تو خط 16 اینکارو بکنید) بقیه تنظیمات رو هم انجام بدید (در بخش ابزارها توضیحاتی دادم چک کنید خوبه) و بعد برید سراغ بیلد.

بعد که بیلد شد میتونید براحتی ازش استفاده کنید . مثلا برای اینکه ببینید همه چیز اکی هست تو متلب دایرکتوری فعلی رو روی caffe\matlab ست میکنید (یعنی در داخل پوشه کفی پوشه متلب ) . بعد دستور caffe.run_tests() رو ران میکنید . تموم که شد با موفقیت میتونید مثال دمو رو اجرا کنید. توضیحات اینجا هم داده شده

نکته: ضمنا وقتی از صفحه اصلی برنچ ویندوز ورژن های prebuilt رو دانلود میکنید اسم همه windows.zip سیو میشه اما به تفاوتهای هرکدوم توجه کنید. اینا رپر پایتون همراهشون هست اما متلب نیست.

توسط (4.3k امتیاز)
انتخاب شده توسط
خیلی ممنون از پاسختون. من با استفاده از cmake و تغییر فایل build_win.cmd برای پشتیبانی از matlab قبلا این کار رو کرده بودم اما نتیجه فرقی نداشت. آیا رپر matlab چیزی به فولدر اصلی برنامه matlab اضافه می کنه؟ من روی کامپیوترم فقط کاربر معمولی هستم و امکان تغییر در فایلهای سبستم رو ندارم. البته اصلا در فایل cmd چیزی در مورد فولدر برنامه matlab نیست و بناراین نباید این موضوع مشکلی باشه.
از طرف دیگه من به یه ویدیوی مفصل روی یوتیوب برخوردم که کلی توضیح و تفصیل و جزییات در مورد نصب matlab داره. آیا واقعا قضیه اینقدر پیچیده است؟
Youtube.com/watch?v=AN2uXGRvw9E
سلام. خواهش میکنم . نیازی به تغییر در فایل سیستم شما ندارید. اون ویدئویی که شما لینکش رو دادید اولا قدیمی هست . و نیاز به تغییراتی که اونجا داده میشه نیست تو ورژن های جدید. کاری که اون بنده خدا داشت میکرد انتقال کدهای یه pr جدید (اون موقع جدید!) به ورژن کفی خودش بود که البته بعدا رد شد. چندماه بعد از اون Pr یه pr جدید اومد که تغییرات لازم برای کامپایل رپر متلب در ویندوز رو روی سی میک اکی کرد و ثبت شد. اگه الان شما به کدهاتون نگاه کنید میبینید با کدی که تو ویدئو میبینید فرق میکنه. تنظیمات فایل cmd که تو ویدئو میبینید هم با الان فرق میکنه . مراحلی هم که ایشو جداگانه رفته الان نیازنیست. مثل اضافه کردن دیپندنسی ها به path یا اضافه کردن چنل های پایتون و... اینا خودکار انجام میشه و حتی اگرم نشه اگه اون توضیحاتی که قبلا دادم رو بخونید براحتی میتونید خودتون اکی کنید. دوما به غیر از تغییرات کد کارای دیگه ای هم که کردن و شما بکنید خطا میگیرید . مثل نصب و کار با اناکوندا3. قبلا اناکوندا3 پایتون 3.5 بود الان 3.6 هست که با کفی کار نمیکنه. باید پایتون 3.5 رو جداگانه نصب و پیکربندی کنید.
اگه کارهایی که گفته شده رو کردید و جواب نگرفتید به احتمالا قوی بخاطر مشکل دیپندنسی های شماس. ادرس کتابخونه ها رو باید تو path متلب هم اضافه کنید. (تو path سیستم هم باید باشه) . من یادم میاد قدیم ما اون پوشه matlab رو به path متلب اضافه میکردیم (البته بعد از بیلد کردن رپر متلب چون یکسری فایل (mex اگه اشتباه نکرده باشم) تولید میشه که لازمه برای ارتباط با متلب و کار با کتابخونه ها تو سی++. )
من خودم متلب کار نمیکنم و متاسفانه الان متلبی هم نصب ندارم . شما نکاتی که گفتم رو رعایت کنید اگر خطایی گرفتید متن خطا رو به به متن سوال اضافه کنید تا انشاالله اگه چیزی به ذهنم میرسه  راهنماییتون کنم
با تشکر مجدد،
من فایل MEX رو جابجا کردم و فایلهای دیگه ای که توی فولدر caffe/build/tools/releasrبود رو هم کنار فایل MEX  کپی کردم و این بار matlab تونست برنامه دمو رو اجرا کنه. البته به نظرم هنوز یه جای کار می لنگه چون اون فایلهای فولدر release رو به path هم اضافه کرده بودم اما فایده ای نداشت و باید اونها رو کنار همون فایل MEX  کپی می کردم.
سلام . الان مشکلتون حل شد یا نه هنوز خطا دارید من متوجه صحبت اخر شما نشدم .
کلا این خطا رو وقتی میگیرید که یا ماجوله مورد نظر پیدا نمیشه (اد تو path نشده یا تو مسیر جاری نیست) یا یه دیپندنسی نیاز داره که اون نیست. این سه تا فایل caffe_.exp, caffe_.lib and caffe_.mexw64 کنار هم باید باشن.(بعد بیلد ایجاد میشن)  چک کنید تو پوشه +caffe تو پوشه پرایوت اینا هستن یا نه اگه نبودن بزارید تست کنید لطفا.
سلام
من یه بار دیگه از اول caffe-windows رو نصب کردم (با تنظیم فعال سازی matlab تو فایل build_win.cmd). از سه تا فایلی که شما گفتین، فایل mex تو فولدر matlab/caffe/private/release بود و دو تافایل libو exp تو فولدر build/matlab/release و بنابراین یک جا نبودند. من matlab رو که اجرا کردم و رفتم تو فولدر matlab ایستادم و فرمان caffe.run_tests() رو اجرا کردم که اصلا خطا داد که من caffe_ نمیشناسم. بعد من فایل mex رو از فولدر release منتقل کردم یه فولدر بالاتر (یعنی matlab/caffe/private ) و اونوقت پیغام داد که dependent library هاش رو پیدا نمی کنه (این موضوع با اضافه کردن فایلهای obj و expهم فرقی نکرد). کتابخانه هایی که لازم داره از قبیل glog.dll و boost_system و غیره هست که موقع buildتو فولدر build/tools/release ساخته شده اند. من این آدرس رو با دستور setenv به PATH اضافه کردم اما بازم فرقی نکرد. نهایتا فایلهای توی فولدر build/tools/release رو تو فولدر matlab/caffe/private (کنار فایل mex) کپی کردم و این بار دستور run_tests نهایتا اجرا شد!
اما من فکر می کنم نباید قاعدتا اینهمه کپی کردن بخواد. درسته؟ این فولدرهای release باید به همین صورت بمونند؟
با تشکر مجدد.
سلام. من منظورم این بود اون فایلهایی که گفتم بعد بیلد شدن باید کنار هم تو پوشه private قرار بگیرن. نیازی به کپی dependency ها ندارید. کافیه مسیر اونها رو به Path سیستم اضافه کنید. مسیر release رو به همراه  جایی که dependency ها کپی شدن (چک کنید ببینید تو متغییر Path سیستم قرار گرفته ان یا نه اگه نه اینارو هم باید قرار بدید) . در Path سیستم باید بزارید. بعد باید برنامه متلب رو ببندید و باز کنید تا تغییرات Path اثر کنه.
میتونید فایلهای اجرایی رو تجمیع کنید یکجا بعد بقیه رو پاک کنید.
سلام.لطفا اگه جوابتون رو گرفتید روی علامت تیک کلیک کنید تا تکلیف این سوال هم مشخص بشه.
بله من الان با کپی کردن فایل mex در پوشه private همه فایلهای dependency در فولدر کنار اون میتونم توابع caffe رو تو matlab اجرا کنم. Path رو چون کاربر عمومی هستم نمیتونم روی کامپیوترم عوض کنم اما مهم نیست چون به هر حال کارم فعلا راه افتاده. ممنون از توجه و توضیحات تون.
...