از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
سیزده ساعت پیش منتشر شده
تعداد بازدید: 35
کد پروژه: 587002
شرح پروژه
سلام خدمت مجریان گرامی
موضوع پروژه :
تحلیل ریشهای و راهکارهای اصلاحی برای خطای ابعادی در سیستم همگامسازی یادگیری عمیق NPRACH
شرح حال :
ما یک پروژه هوش مصنوعی داریم که مربوط به الگوریتم همگامسازی DeepNSynch-V2 برای NB-IoT می باشد .
این پروژه برای بهبود یافتن نیازمند تغییراتی بوده که انجام شده است .
تغییراتی که باید در این پروژه انجام میشد در فایل "بهبود الگوریتم Deep Learning برای NPRACH" بارگذاری شده است .
بر اساس این توضیحات فایل nprach_synch حاوی کد هایی است که بهبود یافته اند و به روز رسانی شده اند.
چالش اصلی که در این پروژه وجود دارد تغییرات نسخه کتابخانه Sionna می باشد.
فایل قدیمی این پروژه با نسخی قدیمی این کتابخانه همگام سازی شده است.
اما قابلیت هایی که در نسخه قدیمی وجود داشته در نسخه جدید کتابخانه وجود ندارد یا تغییر کرده است .
برای همین چالش برزگی به وجود آمده است که باعث شده است خطاهایی بسیار زیادی برای موضوع عدم هماهنگی نسخه کتابخانه به وجود بیاید.
الان این فایل خطایی که مربوط به کتابخانه Sionna باشد را ندارد . وقوع خطاهای بحرانی در مدیریت حافظه (OOM) و ناسازگاری ابعاد تانسورها (InvalidArgumentError: Can not squeeze dim) در هنگام اجرا بر روی سختافزارهای قدرتمند Google Colab (مانند A100) است. تحلیلهای فنی نشان میدهد که این خطاها ناشی از تعامل پیچیده بین کتابخانه شبیهسازی کانال Sionna (نسخه 0.15.1)، مکانیسمهای پخش (Broadcasting) در TensorFlow 2.19.1 و ساختار دادههای ورودی به مدل ترانسفورمر است.
InvalidArgumentError: Exception encountered when calling E2E.call()... Detected at node deep_n_synch_v2_1/Squeeze defined at... Can not squeeze dim, expected a dimension of 1, got 64
تحلیل:
محل خطا: فایل deepnsynch_v2.py، خط ۱۹۰ (عملیات squeeze).
انتظار مدل: دستور tf.squeeze(y, axis=) انتظار دارد که تانسور ورودی y دارای ابعادی باشد که در محورهای ۱ و ۲ مقدارشان دقیقاً ۱ باشد. یعنی شکل مورد انتظار (Batch_Size, 1, 1, Time_Samples) است.
واقعیت: خطا میگوید got 64. این عدد ۶۴ دقیقاً برابر با BATCH_SIZE_TRAIN است. این یعنی شکل تانسور ورودی به صورت (Batch_Size, 1, Batch_Size, Time_Samples) درآمده است.
۳.۲. ریشه خطا: رفتار پنهان tf.map_fn و ApplyTimeChannel
این خطا در فایل e2e_system_v2.py ریشه دارد، جایی که کانال مخابراتی شبیهسازی میشود.
کد پروژه از tf.map_fn برای اعمال کانال روی هر نمونه از Batch به صورت جداگانه استفاده میکند تا از پر شدن حافظه (OOM) جلوگیری کند. اما یک نکته ظریف در نسخه Sionna 0.15.1 وجود دارد:
لایه ApplyTimeChannel در Sionna طوری طراحی شده است که اگر ورودیها دارای بعد Batch باشند، عملیات کانولوشن را به صورت ماتریسی روی کل Batch انجام میدهد. وقتی شما از tf.map_fn استفاده میکنیم، در هر تکرار، یک تکنمونه (Single Sample) را به تابع میفرستیم.
ورودی به تابع داخلی apply_single_batch_element: یک تانسور با شکل (Tx, 1, Time).
ما در داخل این تابع از tf.expand_dims(x_i, axis=0) استفاده میکنیم تا یک بعد Batch مصنوعی (با اندازه ۱) بسازیم.
خروجی ApplyTimeChannel برای این تکنمونه باید (1, Rx, RxAnt, Time) باشد.
مشکل کجاست؟ اگر متغیرهای کانال (h_sys) به درستی برش نخورده باشند یا اگر TensorFlow در حالت Graph Mode نتواند شکلها را استنتاج کند (infer_shape=False)، ممکن است ApplyTimeChannel دچار اشتباه شده و ابعاد را Broadcast کند.
در محیطهای نوتبوک (مانند Colab و Kaggle)، وقتی ما یک فایل .py را در درایو تغییر میدهیم ، کرنل پایتون که در حافظه RAM فعال است، به صورت خودکار نسخه جدید را نمیبیند. دستور importlib.reload فقط ماژول سطح بالا را ریلود میکند و کلاسهای داخلی (E2E) که قبلاً نمونهسازی شدهاند، بهروز نمیشوند.
بنابراین، خطای got 64 نشان میدهد که تانسور y قبل از ورود به DeepNSynchV2 اصلاح نشده است (یعنی خط y = tf.reshape(y_raw, [batch_size, 1, 1, self.num_time_samples]) اجرا نشده یا موثر نبوده است).
وظیفه شما به عنوان مجری این است که بر اساس این نکاتی که توضیح دادم پروژه را اجرا کنید و خروجی مد نظر را بر اساس اهداف پروژه برای من ارسال کنید.
بررسی های لازم رو انجام بدید و پیشنهاد خودتون رو ثبت کنید.
این پروژه شامل 2 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
بودجه
25,000 تومان تا 500,000 تومان
مهلت برای انجام
2روز
وضعیت مناقصه
باز (آماده دریافت پیشنهاد)
درباره کارفرما
عضویت چهار سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار