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

با تشکر

دسته بندی ها

0 امتیاز

با سلام وقت بخیر
چندتا سوال داشتم ممنون میشم راهنماییم کنید.
من GPU 1080 دارم با 8 گیگ حافظه
فرضا من میخام یک مدلی رو نظر بگیرم یا اصلا خودم یک مدلی رو طراحی بکنم در واقع میزان فضای لازم برای پارامترهای شبکه + batch data تعیین کننده حافظه GPU هستند ؟ یا اینکه فاکتورهای دیگه برای حافظه GPU هم موثر هستند ؟
سوال دوم : آیا برای مشخص کردن میزان فضای لازم برای پارامترهای شبکه بصورت دستی صورت میگیرد یا اینکه فریم ورک ها خودکار خودشون حساب میکنند ؟
سوال دوم : فرض کنید batch size =256 هست این بدان معناست که در هر iteration بصورت رندمی 256 عکس از فضای دیتاست انتخاب میشود ؟
سوال سوم : اگر حافظه GPU تعیین کننده این پارامترهای هست پس اونوقت حافظه RAM کامپیوتر تعیین کننده چه فاکتورهایی هست ؟

توسط (389 امتیاز)
ویرایش شده توسط

2 پاسخ

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

سلام
1. بله اینکه شبکه رو دارید با fp32 اجرا میکنید یا fp16 (نمایانگر دقت اعشاری استفاده شده) یا از چه فریم ورکی استفاده میکنید همه اینها در میزان فضای اشغالی حافظه کارت گرافیک دخیل هستند. بعضی ها مثل کفی خیلی غیربهینه هستند از نظر مصرف حافظه و بعضی ها مثل تورچ خیلی تو این زمینه خوب کار میکنند.
2.پارامترهای شبکه همون متغییرها هستن. و فضایی که اونها اشغال میکنن همون فضایی هست موقع تعریف متغییرها بهشون اختصاص داده میشه. مثل هر برنامه دیگه ای ، کدی که تشکیل دهنده شبکه شماست دارای متغیرهای اصلی و فرعی مختلفه که وقتی مقداردهی بشن قائدتا فضایی بهشون اختصاص داده میشه.
بله بچ سایز 256 یعنی در هر تکرار بصورت تصادفی 256 عکس رو با هم از دیتاست انتخاب میکنه و به شبکه ارائه میکنه
سوال سوم : حافظه GPU وظیفه بخشی از کار رو بعهده داره ، وظیفه موازی سازی محاسبات اعشاری و ماترسی بقیه کدهای مربوط به فریم ورک و عملیات جانبی روی سی پی یو اجرا میشه . اگر هم کلا از GPU استفاده نشه خب مشخصه همه لود میشن روی ram سیستم . دقت کنید که موقع ترین روی GPU هم باز اطلاعات اول روی رم سیستم قرار میگیره و بعد به رم GPU ارائه میشه و بین رم سیستم و gpu انتقال داده جریان داره .

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

توسط (4.3k امتیاز)
انتخاب شده توسط
+2 امتیاز

سلام
هر چی مدل پارامترهای بیشتری داشته باشد به حافظه بیشتری نیز نیاز دارد
همچنین برای batch data هم نیاز به حافظه هست
Increasing network size means using more memory

● Memory to store outputs of intermediate layers (forward pass) ● Memory to store parameters ● Memory to store error signal at each neuron ● Memory to store gradient of parameters ● Any extra memory needed by optimizer (e. g. for momentum)
برای کسب اطلاعات بیشتر به لینک زیر مراجعه بفرمایید
http://imatge-upc.github.io/telecombcn-2016-dlcv/slides/D2L1-memory.pdf

تمام این ها از حافظه کارت گرافیکی استفاده می کنند در صورتی که از سی پی یو برای آموزش شبکه استفاده کنید از رم استفاده می شود.

توسط (438 امتیاز)
اگر اینطوری باشد اونوقت رم هم زیاد مهم نیست که چون اکثرا با GPU شبکه ها ترین میشوند
...