MatlabTips
891 subscribers
462 photos
72 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
معرفی ابزار مونیتور کردن کد wandb

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

کسانی که یادگیری ماشین کار میکنند ارزش مانیتور کردن اطلاعات را می دانند. از طرفی به خاطر اینکه این سرویس در عمل آنلاین است نیازی ندارید که با teamviewer یا ssh به سیستمتان وصل شوید تا ببینید وضعیت چطور است. براحتی میتوانید بر روی گوشیتان هم چک کنید که بر روی سرور های دانشگاه یا سر کار چه می گذرد! اینجا چند اسکرین شات از نمودارهایی که دارم را گرفته ام در حالی که خانه هستم
🔵فراکتال بر روی GPU🔵

چند وقت پیش لایبرری های tensorflow, cupy و numpy‌و pytorch‌ را با هم مقایسه کرده بودم. آن جا یک مقایسه ساده بر اساس ضرب ماتریسی انجام دادم. دیشب سعی کردم دو فراکتال معروف مندلبرات و جولیا را پیاده سازی کنم (با الهام از یک کد دیگر از گیتهاب). از آنجایی که برای ساختن فراکتال شما نیاز به ایجاد یک ماتریس دارید (تا آن را به صورت فیدبک به فرمول خاصی بدهید اگر میخواهید بیشتر در مورد فراکتال بدانید این پست قدیمی را بخوانید) کتابخانه هایی که از کارت گرافیک استفاده میکنند می توانند بسیار مفید باشند.
متاسفانه با اینکه پایتورچ را از همه بیشتر میپسندم نتوانستم فراکتال را در آن پیاده سازی کنم چون این کتابخانه فعلا از اعداد مختلط پشتیبانی نمیکند. اما برای تنسرفلو نامپای و کوپای کدها را زدم. از tensorflow2‌ استفاده کردم. هر چند بعید میدانم بهینه ترین کد را برای تنسرفلو زده باشم اما بهبود نسبت به numpy‌ وجود داشت هر چند برنده سرعت cupy‌بود. برای بنچمارک سرعت سعی کردم جولیا ست( یک فراکتال دیگر)‌ را برای فاز های مختلف از صفر تا 2pi انیمیشن کنم. نتیجه سرعت ها به صورت زیر بود(بر اساس ثانیه):

tensorflow: 145.21
numpy: 165.63
cupy: 100.06

و صد البته نتیجه زیبای آن که در زیر میبنید
سورس کد
This media is not supported in your browser
VIEW IN TELEGRAM
مجموعه جولیا: یک فراکتال که بر روی کارت گرافیک پویاسازی شده است
کد
This media is not supported in your browser
VIEW IN TELEGRAM
کس مشکل اسرار اجل را نگشاد
کس یک قدم از دایره بیرون ننهاد
من می‌نگرم ز مبتدی تا استاد
عجز است به دست هر که از مادر زاد


خیام
جدا کردن بخش های مختلف موسیقی در پایتون (TF)

هفته پیش Deezer یکی از کدهای بسیار جالب خود به نام spleeter را اپن سورس و در دسترس همگان قرار داد که با آن می توانید هر آهنگی را به اجزای سازنده آن مانند صدای خواننده(ووکال) صدای گیتار پیانو و غیره تقسیم کنید!!(ساخته شده بر اساس تنسرفلو)

من این کد را برای آهنگ های مختلف امتحان کردم و می توان گفت برای همه موسیقی ها به یک اندازه خوب جواب نمیدهد. موسیقی های پاپ جدید که دستکاری زیادی می شوند نتایج خوبی ندارند ولی موسیقی های قدیمی تر بهتر جواب می دهند. یک نمونه اینجا گذاشته ام.
Audio
فایل اصلی (فایل ورودی)
Audio
فقط صدای خواننده (خروجی ۱)
Audio
فقط موسیقی (خروجی ۲)
🔵آزاد کردن غول از قفس🔵

امروز بالاخره OpenAI بزرگترین مدل زبانی خود را که بالغ بر 1.5 میلیارد پارامتر (حدود سه گیگابایت) است را منتشر کرد. این همان مدل زبانی ای بود که زمان خود (حدود یکسال پیش) آنقدر قدرتمند جلوه کرد که جنجال زیادی به پا کرد و به همین خاطر OpenAI قدری محتاطانه عمل کرد و مدل اصلی را منتشر نکرد بلکه یک مدل کوچکتر 77 میلیون پارامتری را منتشر کرد.

براساس داکیومنت OpenAI:
1- انسان ها خروجی های GPT-2 را بسیار متقاعد کننده می دانند! کیفیت متن تولید شده توسط این مدل بسیار بالاست طوری که افراد به خروجی های مدل از 10 امتیاز 6.72 را می دهند.

2- مدل GPT-2 می تواند برای سو استفاده تنظیم شود: پژوهش های CTEC نشان داده است که GPT-2 می تواند برای حداقل چهار مقصد شوم مورد سو استفاده قرار گیرد: برترپنداری نژاد سفید، مارکسیسم، اسلامگرایی جهادی و آنارشیسم. به این طریق که می توان اخبار و متن های جعلی با هدف پروپاگاندا و تغییر افکار عمومی فقط با این مدل ساخت و به مردم داد! (دقت کنید مساله این نیست که انسان هم می تواند این کار را انجام دهد مساله این است که ماشین می تواند حجم غیر قابل تصوری از این متون را تولید کند طوری که تمام اینترنت را آلوده و همه چیز را بهم بریزد)

3- تشخیص متن های تولیدی از متن واقعی تولید شده توسط انسان چالش برانگیز است. بهترین روش های یادگیری ماشین تنها دقتی حدود 96 درصد برای تشخیص متن جعلی تولید شده توسط این مدل از متن انسانی دارند که از دید OpenAI کافی نیست.

4- هیچ گزارشی از سو استفاده از این مدلهای کوچکتر تاکنون دیده نشده است! هیچ ردی از استفاده از این مدل برای ایجاد اسپم یا فیشینگ برای دزدیدن اطلاعات وجود ندارد. با این حال OpenAI اعلام کرده است که نمی توان از این موضوع هم کاملا مطمئن شد.

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

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

میخواهم دیدتان را به کد نویسی تغییر دهم. این تغییر چنان بنیادین است که ابتدا ممکن است اصلا متوجه منظورم نشوید. اول باید به این فکر کنیم که اساسی ترین تصوری که ما از برنامه نویسی داریم چیست؟ از یک دید کلی برنامه نویسی یک «ابزار» برای پیاده سازی یک ایده است. کدها یک ساختار «متعین» (deterministic) دارند که باعث می شود دقیقا همان چیزی باشند که ما می خواهیم. دقیقا مانند ساختن یک ابزار مکانیکی. شبیه به یک آسیاب قدیمی که نیروی آب را گرفته و با استفاده از تعداد بسیار زیادی اهرم ها و پیچ های چوبی و فلزی یک حرکت دیگر را ممکن می کند. از این دیدگاه خود برنامه نویسی چیز خاصی ندارد. در حالت خیلی ساده مثلا یک نیاز کاربر را جواب می دهد. مثلا حقوق ماهیانه را بر اساس ساعت ها محاسبه می کند یا اطلاعات شما را از دیتابیس می خواند. یا حتی می تواند یک بازی کامپیوتری عظیم مثل assassin's creed متشکل از میلیون ها خط کد باشد. در حالت پیچیده تر می تواند برای شبیه سازی یک پدیده فیزیکی مثلا انتقال حرارت استفاده شود و حتی در حالت بازهم پیچیده تر می تواند یک سیستم هوشمند برای پیشنهاد دادن محصول به مشتری یا تشخیص چهره باشد.
ممکن است بپرسید خب کد نویسی همین است دیگر. اما یک تفاوت اساسی وجود دارد تفاوتی که باعث می شود علوم پایه همچنان جذاب تر بمانند. علوم پایه مانند فیزیک و ریاضیات و زیست شناسی «راز آمیز» اند به این معنا که مسایل ناشناخته ای دارند که به ما رازهای پنهان هستی را نشان داده اند یا خواهند داد. علوم پایه از یک تمایل شدید بشر برای کشف و آگاهی می آیند. چیزی فرای پدیدارها! چیزی که تعامل ما به جهان هستی را عجیب و جالب می کند. اما کد نویسی ظاهرا در نهایت فقط یک ابزار برای رسیدن به آن اهداف است. اما ایا واقعا چنین است؟ نه اینطور نیست کد هم راز آمیز است!

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

بهترین روش بررسی این موضوع بررسی آن از لحاظ تاریخی ست. کامپیوتر ها از خلا بوجود نیامدند. کامپیوتر ها حتی فقط از روی نیاز بوجود نیامدند. نظریه محاسبه بخشی از ریاضیات است که از یک برنامه معروف سر بر آورد: برنامه هیلبرت. برنامه ای که می خواست تمام ریاضیات را بر بنیان های محکمی استوار کند. ریشه های اصلی چنین خواستی بحران در پایه های ریاضیات بود! بحران هایی که از تناقض های زیادی خبر می داد و نیاز به یک فندانسیون قدرتمند برای بزرگترین دستاورد بشر یعنی ریاضیات را لازم می کرد. هیلبرت ریاضیدان آلمانی در صدد ایجاد سیستمی فرمال برای تمام بخش های ریاضیات بود. طوری که اثبات ها و حقایق ریاضی همه به صورت کاملا «متعین» با یک ابزار که بعدا در قالب کامپیوتر تیوریزه و متجسم شد قابل دسترسی باشند. پافشاری بر این سیستم منجر به رشد انفجار گونه منطق در اوایل قرن بیستم شد. اصول برنامه هیلبرت عبارت بودند از:
۱- یک فرمال سازی برای تمام ریاضیات.به عبارت دیگر تمام ریاضیات باید به یک زبان فرمال و دقیق (چیزی بسیار شبیه به زبان های برنامه سازی کنونی) بیان شود.
۲- تمامیت: تمام حقایق ریاضیات باید در داخل این چارچوب به صورت کاملا مکانیکی قابل اثبات باشند(دقیقا مانند یک کد).
۳- سازگاری:‌ هیچ راهی برای اثبات دو گزاره متناقض در داخل سیستم وجود نداشته باشد.
۴- تصمیم پذیری: باید یک الگوریتم یا رویه قدم به قدم برای تصمیم گیری درستی و نادرستی هر عبارت ریاضی وجود داشته باشد.

این دیدگاه به ریاضیات آن را مانند یک ماشین بسیار بزرگ با تعداد زیادی دنده و چرخ می بیند که همه ی بخش های آن سازگار و دقیق هستند و حرکت هر بخش با بخش های دیگر هماهنگ شده است. چنین چیزی بسیار شبیه به یک کامپیوتر امروزی به نظر می رسد. اما برنامه هیلبرت شکست خورد و این شکست سرآغاز دیدگاه جدیدی نسبت به سیستم های فرمال و محاسبه بود. محاسبه بر خلاف معنی لغوی آن که «تکرار پذیر، بی محتوا، ساده و متعین» است یکی از پیچیده ترین رازهای هستی ست که آن را کنار بقیه راز ها قرار می دهد.
ادامه قسمت بعد
MatlabTips pinned Deleted message
‏شاخه‌ی هم‌خون جدامانده‌ی من
آسمان تو چه رنگ‌ست امروز؟
آفتابی‌ست هوا
یا گرفته‌ست هنوز؟
من درین گوشه
که از دنیا بیرون‌ست
آسمانی به سرم نیست
از بهاران خبرم نیست
آنچه میبینم
دیوار است

#IranProtests
این روزها حالم خوب نیست! از همه چیز احساس بدی دارم. از جوانی ای که در راه اعتراض صرف کردیم. از حس امید و نا امیدی ای که آنقدر پشت سر هم داشتیم که نسبت به آن بی حس شدیم. نسبت به شرایطی که انگار در آن حبس شدیم. نسب به خودم که از آن شرایط فرار کردم به امید آنکه حداقل خودم را نجات دهم. نسبت به همه آن کسانی که تصمیم گرفتند یک هفته ۸۰ میلیون را مانند یک پادگان تنبیه کنند و هر آنکه در داخل و خارج است را به یک چوب برانند تا «شرایط را کنترل» کنند.

براستی ما کجای تاریخیم. جبر جغرافیا و واقعیت تا به کجا می خواهد تارو پود وجود ما را از هم بگسلد؟ به چه اعتراض کنم؟ به خودم یا سیستمی که من را بر نمی تابد؟ من کجا حقی داشته ام که بتوانم حتی حرفی بزنم چه برسد که اعتراض کنم. الان باید از «بسته حمایتی خانوار» خوشحال باشم؟ مثل تکه نانی که صاحب سگ برایش پرت میکند و اگر اعتراضی ببینید او را مثل «سگ» می زند. این چه اقتداری ست؟ برای من است یا صاحبم؟

دیگر خواب و بیداری و رویا برایم بی معنا شده است. میان ملغمه ای از همه سیر میکنم و خودم را لابلای هزاران خط کد خفه میکنم و هر روز خودکشی میکنم. خودم را به خری میزنم. میگویم هیچ چیز نمیدانم. میگویم این حقم است. میگویم من باید بمیرم و خفه شوم. میگویم «از ماست که بر ماست!» باید پول در بیاورم و چشمم را به خون کف خیابان ببندم. این کشور و مملکت درست شدنی نیست. خودم را هر روز لابلای هزاران دروغ و کثافت و لجن مخفی کنم. بله این یک من جدید است که حتی نمی داند کیست. من همان رباتی هستم که همه دوستش دارند همانی که کارهایش را می کند و دم بر نمی آورد. همانی که مهم نیست دوستش در خوزستان نمی داند پول وعده بعدی غذایش را از کجا بیاورد. یا آن یکی دیگر در سیستان که حتی فردایی نمی بیند چون خانواده اش گرسنه اند. من همان هستم! من حتی دیگر عصبانی نیستم. از چه کسی عصبانی باشم؟ من به خود قبولانده ام که من قربانی شرایط هستم!
خوش شانس باش و فرار کن!‌ بله این راه حل تراژدی هر روزی ست که میبینی و اگر نمی توانی قبول کن و بمیر! فرار کن و خود را بفروش! من دیگر ایرانی نیستم و هرجا بروم این را میگویم. یک کثافت بی ریشه! چون از درون هم میدانم کسی نیستم و نخواهم بود.
.
.
.
و اما این «بوی خون است که بی قرار در باد می گذرد» و روح من را از جای می کند....
🔵معرفی یک ابزار🔵

یکی از دشوار ترین مسایل در بخش های مختلف مهندسی و علوم پایه حسابان برای متغیر های برداری و ماتریس است. کسی که چند بار هسین و گرادیان را محاسبه کرده است متوجه این موضوع شده است. یک ابزار آنلاین برای این منظور وجود دارد که فوق العاده ساده است و شبیه آن را در متلب یا متمتیکا یا بقیه نرم افزارها پیدا نکردم*
https://www.matrixcalculus.org/

*‌اگر شما می شناسید به من پیام بدهید
برای کسانی که بر روی ژنتیک و پروتئین ها کار میکنند، ابزار مبتنی بر یادگیری عمیق با استفاده از پایتورچ و API فوق العاده huggingface به تازگی منتشر شده است که برای بایوانفورماتیک عالی ست.

https://github.com/songlab-cal/tape?files=1
Forwarded from اتچ بات
“شتاب کردم که آفتاب بیاید
نیامد
دویدم از پیِ دیوانه‌ای که گیسوانِ بلوطش را به سِحرِ گرمِ مرمرِ لُمبرهایش می‌ریخت
که آفتاب بیاید
نیامد
به روی کاغذ و دیوار و سنگ و خاک نوشتم که تا نوشته بخوانند
که آفتاب بیاید
نیامد
چو گرگ زوزه کشیدم، چو پوزه در شکمِ روزگارِ خویش دویدم
شبانه روز دریدم، دریدم
که آفتاب بیاید
نیامد
چه عهدِ شومِ غریبی! زمانه صاحبِ سگ؛ من سگش
چو راندم از درِ خانه ز پشت بامِ وفاداری درون خانه پریدم که آفتاب بیاید
نیامد
کشیده‌ها به رُخانم زدم به خلوتِ پستو
چو آمدم به خیابان
دو گونه را چُنان گدازه‌ی پولاد سوی خلق گرفتم که آفتاب بیاید
نیامد
اگرچه هق هقم از خواب، خوابِ تلخ برآشفت خوابِ خسته و شیرین بچه‌های جهان را
ولی گریستن نتوانستم
نه پیشِ دوست نه در حضور غریبه نه کنجِ خلوتِ خود گریستن نتوانستم
که آفتاب بیاید
نیامد”
― رضا براهنی, خطاب به پروانه ها و چرا من دیگر شاعر نیمایی نیستم