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

با تشکر

دسته بندی ها

0 امتیاز

سلام
میخواستم مدلی را اجرا کنم که در ان از لایه ای با نوع upsample استفاده شده است اما نسخه کفی که من دارم آن را پشتیبانی نمیکند. اگر بخواهم توابعی یا فایلهایی که ان را پیاده کرده اند به کفی معرفی کنم به چه فایلها و تغییراتی نیاز دارم و در چه مسیری و چونه باید اعمال شوند؟

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

2 پاسخ

+1 امتیاز

سلام
علاوه بر header و فایلهای Cpp مربوط به اون لایه باید فایل caffe.proto رو هم چک کنیدو تغییرات مربوطه رو از اونجا به کفی خودتون منتقل کنید (هر لایه معمولا یک فایل header داره که در پوشه include هست . و یک فایل پیاده سازی با پسوند .cpp و احیانا cu (همنام هستند) که در پوشه src قرار میگیره. علاوه بر اینها هر لایه جدید باید یکسری اطلاعات جدید مثل شناسه وتنظیمات مورد نیازش رو در فایل caffe.proto قرار بده، اون رو چک کنید و به فایل خودتون منتقل کنید ) و بعد کفی رو دوباره کامپایل کنید.

توسط (4.3k امتیاز)
سلام خیلی ممنون.خیلی کلی گفتید و متوجه نشدم دقیقا باید چه کار کرد. سعیم رو میکنم مساله رو حل کنم و اگه موفق شدم جزییات رو اینجا مطرح می کنم
هر لایه معمولا یک فایل header داره که در پوشه include هست . و یک فایل پیاده سازی با پسوند .cpp که در پوشه src قرار میگیره. علاوه بر اینها هر لایه جدید باید یکسری اطلاعات جدید مثل شناسه وتنظیمات مورد نیازش رو در فایل caffe.proto قرار بده.
همین سه مسیر رو چک کنید.
سلام ممنون. سه کار انجام دادم اما مساله رفع نشد که عبارت بودن از:
کپی دو فایل upsample_layer.cpp و upsample_layer.cu در مسیر caffe-windows\caffe-windows\src\caffe\layers
کپی فایل upsample_layer.hpp در مسیر caffe-windows\caffe-windows\include\caffe\layers
و اعمال تغییرات در فایل caffe.proto یعنی اضافه کردن
message UpsampleParameter}...{
و در قمست message LayerParameter اضافه کردن کد زیر
  optional UpsampleParameter upsample_param = 150;
که خطا رفع نشد و همچنان باقی بود
خطا رو لطفا قید کنید از طرفی از برنچی هم که استفاده میکنید اون رو هم قید کنید
خطایی که می گیریم اینه:
I0908 18:09:39.773202  6008 solver.cpp:87] Creating training net from net file: C:/Users/mahmud/Desktop/Propozal/DeepLearning/InstallCaffe/caffe-windows/implement_propozal/DeepNetsForEO-master/mode
ls/segnet_isprs_vaihingen_irrg.prototxt
[libprotobuf ERROR C:\Users\guillaume\work\caffe-builder\build_v140_x64\packages\protobuf\protobuf_download-prefix\src\protobuf_download\src\google\protobuf\text_format.cc:298] Error parsing text-f
ormat caffe.NetParameter: 747:17: Message type "caffe.LayerParameter" has no field named "upsample_param".
F0908 18:09:39.778203  6008 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: C:/Users/mahmud/Desktop/Propozal/DeepLearning/InstallCaff
e/caffe-windows/implement_propozal/DeepNetsForEO-master/models/segnet_isprs_vaihingen_irrg.prototxt
*** Check failure stack trace: ***
از branch ویندوز استفاده میکنم
منظورم برنچی که ازش دارید لایه میگیرید هست. لینک اون برنچ رو لطفا قرار بدید
خطایی که میگیرد مشخصه یا بخاطر تعریف نادرست در فایل proto هست یا اینکه در تعریف مدل خطای املایی دارید.
قطعه کدی که دارم از این آدرس هست:
https://github.com/nshaud/DeepNetsForEO
نمیدونم برنچ رو باید بگم master یا upsample. تو لینک بالا توضیح داده اما چون مبتدی هستم درک صحیحی ندارم که برنچ رو از کجا باید فهمید. ضمنا من کفی رو روی ویندوز نصب کردم. دستورات زیر رو هم اجرا کردم:
# Clone this repository
C:\Users\mahmud\Anaconda3\envs\firstEnvironment\install\bin>git clone https://github.com/nshaud/DeepNetsForEO.git

C:\Users\mahmud\Anaconda3\envs\firstEnvironment\install\bin>cd DeepNetsForEO

# Initialize and checkout our custom Caffe fork (upsample branch !)
C:\Users\mahmud\Anaconda3\envs\firstEnvironment\install\bin\DeepNetsForEO>git submodule init

C:\Users\mahmud\Anaconda3\envs\firstEnvironment\install\bin\DeepNetsForEO>git submodule update
پوشه و محتویات ان دانلود شد اما نتوانستم از آن استفاده کنم
خب من بدون مشکل کامپایل کردم. کافیه همون فایل caffe.proto رو با فایل caffe.proto خودتون مقایسه کنید و بخشایی که ندارید رو منتقل کنید. فایل header و همینطور cpp و cu رو منتقل و کامپایل کنید.
خطایی هم که میگیرید بنظر میاد یک خطای املایی در نام لایه داشته باشید یا در فایل پروتو همه تغییرات رو اعمال نکرده باشید. سعی کنید از notepad++ برای مقایسه دو فایل استفاده کنید یا اینجا رو ببینید :
https://github.com/nshaud/caffe/commit/7d00e840bb791fdf300d0fb6b49a23e2de62c0f1#diff-e0bd8d028edf0f88febfebe3bf703904
ممنون تمام انتقالها انجام شد اما نحوه کامپایل کردنی که فرمودید رو نمیدونم. در چه محیطی کامپایل باید انجام بشه و اینکه آیا هر کدوم از این سه فایل باید جداگانه کامپایل شه؟
کاری که کردم اجرای فایل build_win.cmd بود که به نظرم مجدد کامپایل کرد کفی رو اما خطا همچنان وجود داشت
شما قبل از اینکه کفی رو دوباره کامپایل کنید باید پوشه build رو پاک کنید. بعدش خیلی راحت مثل معمول اقدام به کامپایل کفی کنید. اگه همه چیز رو درست انجام داده باشید کفی بدون مشکل باید کامپایل و بیلد بشه
سلام ممنون از راهنماییتون پوشه بیلد رو پاک کردم و مجدد ران  گرفتم اما همان خطا وجود داشت هنوز
در بیلد نباید خطایی بگیرید چون خودم با موفقیت ران کردم و اجرا هم گرفتم. خطایی که میگرید مربوط به مرحله بیلد نیست. مربوط به مرحله اجرای فایل prototxt هست در مرحله ترینینگ . خطایی که میگیرید احتمالا بخاطر عدم تنظیم درست caffe.proto هست. از این فایلی که براتون اپلود کردم استفاده کنید.
اگه بقیه بخشها رو درست انجام داده باشید نباید هیچ مشکلی نه در کامپایل و بیلد و نه در اجرا داشته باشید
https://mega.nz/#!RMEiwT6b!A-Pw81IlInSkasGjutiZcOLpOZU1MEf_U8f8auRIF3g
خیلی ممنون حسین جان
فایل شما رو با فایل خودم ( هرجایی که caffe.proto بود) جایگزین کردم و بعد پوشه بیلد رو توی مسیر کفی حذف و مجدد فایل build_win رو اجرا کردم بعد از تموم شدن کار،  پوشه python/caffe/ رو کپی و در مسیر anaconda3Anaconda3\envs\firstEnvironment\Lib\site-packages ریختم... اما خطای من رفع نشد... توضیحاتی تو لینک زیر دیدم اما چیزی که متوجه شدم بازم مشکلم رفع نشد( اگه شما هم بررسی کردید لطفا مجدد اعلام کنید شاید من اشتباه متوجه شده باشم)
سلام. والله من دیگه هیچ ایده ای ندارم. همین گامهایی که خدمت شما عرض کردم خودم طی کردم و برای اطمینان دو سه باری هم تکرار کردم و بدون هیچ مشکلی اجرا شد. فایل caffe.proto باید در مسیر 'src\caffe\proto' کپی بشه. همونجا کپی میکنید؟ علاوه بر ا ون شما مدل رو چطور ترین میکنید ؟ با رپر پایتون؟
خیلی ممنون
دستور اجرای مدل رو تو کامنت پرامپت وارد می کنم:
C:\Users\mahmud\Anaconda3\envs\firstEnvironment\install\bin>caffe train -solver c:\users\mahmud\desktop\propozal\deeplearning\installCaffe\caffe_windows\implement_propozal\DeepNetsForEO-master\models\solver_isprs_vaihingen_irrg.prototx
گمونم بشه جایگزینی برای این لایه داشت مثل deconvolution اما نمیدونم چه طور جایگزین کنم:
layer {
  name: "upsample3"
  type: "upsample"
  bottom: "conv4_1_D"
  bottom: "pupsample3ool3_mask"
  top: "upsample3"
  Upsample_param{
    scale: 2
  }
یک سوال وقتی شما کفی رو بیلد میکنید آخرین نسخه بیلد رو استفاده میکنید یا نه ؟ مسیری که من میبینیم مسیر عجیبیه! چرا پوشه install کفی رو در داخل environment اناکوندا کپی کردید؟ ما بطور معمول اینکارو نمیکنیم. دلیل خاصی دارید؟ ضمنا بعد از بیلد منظورم اینه این پوشه رو بروز میکنید ؟
ترجیحا اینکارو نکنید. هرکاری با کفی دارید در خود پوشه کفی انجام بدید بزارید این پوشه در داخل پوشه build باشه تا وقتی بیلدی انجام میشه خیالمون راحت باشه که وقتی چیزی رو فراخونی میکنید اخرین نسخه بیلد شده باشه نه ورژن قبلی
من احتمال میدم مشکل شما از همین ناحیه باشه.
چند ماه پیش کفی و ابزارهای مربوطه رو دانلود کردم ( روی دسکتاپ) و طبق راهنمای سایت بیلد کردم ( یعنی فایل bluild_win رو همونجا اجرا کردم) بعدش هم پوشه Desktop\Propozal\DeepLearning\InstallCaffe\caffe-windows\caffe-windows\python\caffe رو به مسیر anaconda3 \envs \ firstEnvironment \ lib \ site-pakages کپی کردم...و جایی ندیدم تو سایت که برای نصب کفی باید پوشه اینستال رو به روز کرد( حتی نمیدونم چه جوری)
اینکه فرمودید گمونم خودش پوشه اینستال رو برده اونجا (شاید هم اون زمان من برداشتم این بوده یادم نیست). بعد از بیلد
الان هم وقتی دستور caffe.__version__ رو اجرا کردم 1.0.0 رو نشون داد.
ضمنا این موضوع رو که گفتید برنامه ام رو از مسیر Desktop\Propozal\DeepLearning\InstallCaffe\caffe-windows\caffe-windows\build\install\bin
سعی کردم اجرا کنم اما همون خطا رو هنوز داشتم
یه سری ابهاماتی داشتم اما خیلی سخت نگرفتم:
مثلا cmake چی بود که ازش هیچ وقت استفاده نکردم
یا آناکوندا که اوایل طبق دستور العملها که مجبور بودم دنبال کنم باهاش سر و کار داشتم اما بعدش دیگه مهمترین محیط کاری برام شد کامنت پرامپت
سلام. دلیلش اینه که ما معمولا فقط یکبار کفی رو بیلد میکنیم و پوشه ها رو دست نمیزنیم. و باز اگر دوباره بخواییم کفی رو کامپایل و بیلد کنیم مشکلی نیست چون فایلها هرکدوم سرجای خودشون هستن و با بیلد جدید بروز میشن. (پوشه بیلد رو پاک میکنیم دوباره ایجاد میشه). در حالت شما ، شما پوشه install رو از داخل پوشه build منتقل کردید به یه یک جای دیگه و من نمیدونم شما بعد از هر بار بیلد ایا اینکارو انجام میدادید یا خیر؟
بحث انتقال پوشه caffe موجود در پوشه python یه چیز جداگانه اس اون برای فعال کردن رپر پایتونه (که البته میشه اونم کپی نکرد ولی ما برای سادگی اینکارو میکنیم )
شما یکبار کل پوشه بیلد رو پاک کنید و بعد دوباره کامپایل کنید. بعد از همون پوشه build\install\bin کفی رو فراخونی کنید و تست کنید.
در مورد cmake اون برنامه ای هست که ما از اون برای کامپایل استفاده میکنیم نگرانش نباشید اینجا لازم نمیشه و بطور مستقیم قرار نیست شما درگیرش بشید.
در مورد اناکوندا هم الان اصلا نیازی به اون نیست. در ساده ترین حالت باید بتونید کفی رو از طریق کامند پرامپت اجرا بگیرید .
+1 امتیاز

سلام
معمولا يك نسخه اختصاصي از كفي انشعاب ميزنن و شما بايد از ان نسخه استفاده نماييد
ولي امكانش هم هست كه فايلهاي تغيير يافته را به كفي اصلي بياوريد و ان را دوباره كامپايل كنيد

توسط (438 امتیاز)
...