This media is not supported in your browser
VIEW IN TELEGRAM
تمام کتابهای جهان در یک کهکشان به هم مرتبط
با استفاده از تکنیک node2vec و UMAP متون تمام کتاب های جهان تحلیل و کنار هم گذاشته شده است تا یک ویژوالیزیشن شگفت انگیز را ایجاد کند. هر گره (node) در این شکل یک کتاب. اندازه آن گره اهمیت کتاب و فاصله کتاب ها به صورت فاصله اقلیدسی سنجیده می شود به این معنا که کتاب های مرتبط تر کنار هم هستند. همین کمک می کند تا با استفاده از رنگ ها رشته ها از هم جدا شود. رشته هایی که از لحاظ محتوایی به هم نزدیک ترند (مانند کامپیوتر و برق یا سینما و موسیقی)به هم نزدیک تر هستند.
https://galaxy.opensyllabus.org/
با استفاده از تکنیک node2vec و UMAP متون تمام کتاب های جهان تحلیل و کنار هم گذاشته شده است تا یک ویژوالیزیشن شگفت انگیز را ایجاد کند. هر گره (node) در این شکل یک کتاب. اندازه آن گره اهمیت کتاب و فاصله کتاب ها به صورت فاصله اقلیدسی سنجیده می شود به این معنا که کتاب های مرتبط تر کنار هم هستند. همین کمک می کند تا با استفاده از رنگ ها رشته ها از هم جدا شود. رشته هایی که از لحاظ محتوایی به هم نزدیک ترند (مانند کامپیوتر و برق یا سینما و موسیقی)به هم نزدیک تر هستند.
https://galaxy.opensyllabus.org/
This media is not supported in your browser
VIEW IN TELEGRAM
الگوریتم Metropolis hasting به صورت تصویری
🎲نمونه گیری تصادفی🎲
یکی از چالش های بزرگ در بیشتر مسایل یادگیری ماشین یافتن روشی برای نمونه گیری از یک توزیع احتمال است. دلیل این موضوع این است که توزیع های احتمالی که در یادگیری ماشین با آن ها سر و کار داریم بسیار پیچیده و شامل صدها و هزاران متغیر می شوند. اما مشکل حتی فراتر است چرا که ما نمی توانیم توزیع احتمال (به معنای واقعی آن یعنی برای تمام نمونه ها جمعش برابر با یک باشد)را ایجاد کنیم در عوض با یک تابع امتیاز روبرو هستیم. به عنوان یک مثال ساده اگر تابع امتیاز به صورت [1,4,6,2] باشد. می توان هر کدام از امتیاز ها را تقسیم به جمع کل کرد تا به یک توزیع احتمال به صورت [0.076,0.307, 0.4615, 0.1538] رسید. در حالت کلی تر این جمع کردن به انتگرال تبدیل می شود. مشکل دقیقا همینجاست. یعنی اگر ما تابع توزیع برای توابع با متغیر های زیاد را داشته باشیم انتگرال گرفتن بر روی آن ها از لحاظ محاسباتی بسیار بسیار دشوار است. همین موضوع باعث می شود که از خیر انتگرال گیری بگذریم و در عوض دنبال درست کردن توزیع احتمال با نمونه گیری از آن باشیم. اما چگونه ممکن است از توزیع احتمالی که فرم آن را نمیدانیم نمونه گیری کنیم؟ این کار فقط به قدری قوه تخیل نیاز دارد!
بیاید فرض کنیم که بر روی یک کوه قرار گرفته ایم که دقیقا فرم همان توزیع احتمال را دارد. مناطق مرتفع تر کوه جاهایی هستند که احتمال بیشتر است پس باید آن جا ها بیشتر باشیم. فرض کنید می توانیم هر بار یک پرش کنیم اما در عین حال نمی خواهیم خیلی از جای اصلی امان دور شویم. از یک نقطه کاملا تصادفی شروع می کنیم. و اولین پرش را انجام می دهیم. حالا بیایید بپرسیم آیا این نقطه جدید که رفته ایم دارای احتمال بیشتری است یا کمتر؟ خب چون توزیع احتمال را نمی دانیم نمی توانیم بگوییم ولی مهم نیست! چون سوال ما این بود که احتمال نسبت به نقطه قبلی بیشتر است یا کمتر! اگر اینطوری باشد نسبت تابع امتیاز کافی ست! اگر احتمال بیشتر بود به آن نقطه می رویم. اما برای اینکه نمی خواهیم یک مسافرت به قله کنیم بلکه از همه جا نمونه برداریم با یک شانسی که متناظر با همان نسبت احتمال از نقطه فعلی به بعدی است به نقطه بعدی می رویم! در شکل قرمز ها پرش هایی است که رد می کنیم چون ما را به نقاط خوبی نمیبرد ولی سبز ها را قبول می کنیم. به این ترتیب از هر نقطه به بعدی میپریم و به همین نحو ادامه می دهیم. همین روش ساده ی تصویری منجر به الگوریتم Metropolis-Hasting می شود که برای نمونه برداری از توزیع های پیچیده بسیار کاراست. برای اینکه دقیقا متوجه توضیحاتم بشوید می توانید به صورت یک پویانمایی کل فرآیند را در این جا ببینید.
الگوریتم های دیگر مانند Gibbs sampling هم از قوانین تصویری مشابهی پیروی میکنند.
یکی از چالش های بزرگ در بیشتر مسایل یادگیری ماشین یافتن روشی برای نمونه گیری از یک توزیع احتمال است. دلیل این موضوع این است که توزیع های احتمالی که در یادگیری ماشین با آن ها سر و کار داریم بسیار پیچیده و شامل صدها و هزاران متغیر می شوند. اما مشکل حتی فراتر است چرا که ما نمی توانیم توزیع احتمال (به معنای واقعی آن یعنی برای تمام نمونه ها جمعش برابر با یک باشد)را ایجاد کنیم در عوض با یک تابع امتیاز روبرو هستیم. به عنوان یک مثال ساده اگر تابع امتیاز به صورت [1,4,6,2] باشد. می توان هر کدام از امتیاز ها را تقسیم به جمع کل کرد تا به یک توزیع احتمال به صورت [0.076,0.307, 0.4615, 0.1538] رسید. در حالت کلی تر این جمع کردن به انتگرال تبدیل می شود. مشکل دقیقا همینجاست. یعنی اگر ما تابع توزیع برای توابع با متغیر های زیاد را داشته باشیم انتگرال گرفتن بر روی آن ها از لحاظ محاسباتی بسیار بسیار دشوار است. همین موضوع باعث می شود که از خیر انتگرال گیری بگذریم و در عوض دنبال درست کردن توزیع احتمال با نمونه گیری از آن باشیم. اما چگونه ممکن است از توزیع احتمالی که فرم آن را نمیدانیم نمونه گیری کنیم؟ این کار فقط به قدری قوه تخیل نیاز دارد!
بیاید فرض کنیم که بر روی یک کوه قرار گرفته ایم که دقیقا فرم همان توزیع احتمال را دارد. مناطق مرتفع تر کوه جاهایی هستند که احتمال بیشتر است پس باید آن جا ها بیشتر باشیم. فرض کنید می توانیم هر بار یک پرش کنیم اما در عین حال نمی خواهیم خیلی از جای اصلی امان دور شویم. از یک نقطه کاملا تصادفی شروع می کنیم. و اولین پرش را انجام می دهیم. حالا بیایید بپرسیم آیا این نقطه جدید که رفته ایم دارای احتمال بیشتری است یا کمتر؟ خب چون توزیع احتمال را نمی دانیم نمی توانیم بگوییم ولی مهم نیست! چون سوال ما این بود که احتمال نسبت به نقطه قبلی بیشتر است یا کمتر! اگر اینطوری باشد نسبت تابع امتیاز کافی ست! اگر احتمال بیشتر بود به آن نقطه می رویم. اما برای اینکه نمی خواهیم یک مسافرت به قله کنیم بلکه از همه جا نمونه برداریم با یک شانسی که متناظر با همان نسبت احتمال از نقطه فعلی به بعدی است به نقطه بعدی می رویم! در شکل قرمز ها پرش هایی است که رد می کنیم چون ما را به نقاط خوبی نمیبرد ولی سبز ها را قبول می کنیم. به این ترتیب از هر نقطه به بعدی میپریم و به همین نحو ادامه می دهیم. همین روش ساده ی تصویری منجر به الگوریتم Metropolis-Hasting می شود که برای نمونه برداری از توزیع های پیچیده بسیار کاراست. برای اینکه دقیقا متوجه توضیحاتم بشوید می توانید به صورت یک پویانمایی کل فرآیند را در این جا ببینید.
الگوریتم های دیگر مانند Gibbs sampling هم از قوانین تصویری مشابهی پیروی میکنند.
Forwarded from اتچ بات
ريتم صفر (rhythm 0)
در سال ۱۹۷۴، مارینا آبراموویچ یک اجرای هنری به مفهوم مدرن داشت:
او اعلام کرده بود که در طی اجرای ۶ ساعته، مانند یک شیء بی حرکت و بدون هر گونه واکنش خواهد بود.
در این مدت شرکت کنندگان اجازه داشتند هر کاری می خواهند با او بکنند و حتی از ۷۲ وسیله ای که آبراموویچ روی میز استودیو گذاشته بود هم استفاده نمایند.این اجرا «ریتم ِ صفر» نام داشت.
روی میز یادداشت زیر به چشم میخورد: راهکار: -۷۲ وسیله روی میز است که هر طور دوست داشتید می توانید آنها را روی من بکار ببرید.
تعهد: - من برای مدت ۶ ساعت صرفاً یک ابژه خواهم بود و مسوولیت هر نوع عواقبی را بر عهده می گیرم. -۶ ساعت از ۸ شب تا ۲ صبح می باشد.
روی میز هم ادوات لذت مانند پر، دستمالهای ابریشمی، گل، آب و ... بود و هم ابزار شکنجه: چاقو، تیغ، زنجیر، سیم... و حتی یک اسلحه ی پُر!
در ابتدای کار همه رودربایستی داشتند. یک نفر نزدیک شد و او را با گلها آراست. یک نفر دیگر او را با سیم به یک شیئ دیگر بست، دیگری قلقلکش داد...
کمی بعد او را بلند کردند و جایش را تغییر دادند!
کم کم زنجیرها را بکار گرفتند، به او آب پاشیدند و وقتی دیدند واکنشی نشان نمیدهد رفتارها حالت تهاجمیتر گرفت. منتقد هنری، توماس مک اویلی، که در این پرفورمنس شرکت کرده بود به خاطر میآورد که چگونه رفتار مردم رفته رفته، خشن و خشنتر شد.
«اولش ملایم بود، یک نفر او را چرخاند، یکی دیگر بازوهایش را بالا برد... ...»
مردی جلو آمد و با تیغ ریش تراشی که برداشته بود گردن او را مجروح کرد و مردی دیگر خارهای گل را روی شکم آبراموویچ کشید. در ساعت سوم تمام لباس های او رو پاره کرده بودند و آزارهای جنسی محدودی بر او انجام شد.
یک نفر تفنگ را به دستش داد و دستش را تا بالای گیجگاهش برد.
مسئول گالری وحشت زده آمد تفنگ را گرفت و از پنجره به بیرون پرت کرد. اون چنان متعهد به کارش بود که احتمال تجاوز یا حتی مرگ را به جان خریده بود.
با این پرفورمنس آبراموویچ نشان داد که اگر شرایط برای افرادی که به خشونت گرایش دارند مهیا باشد، به چه راحتی و با چه سرعتی آن را اعمال میکنند.
بعد از پایان ۶ ساعت پرفورمنس، آبراموویچ در سالن استودیو به راه افتاد و از مقابل دستیاران و بازدیدکنندگان گذشت.
همه از نگاه کردن به صورت او اجتناب میکردند.
بازدید کنندگان هم آنقدر عادی رفتار می کردند که انگار اصلاً از خشونتی که دمی پیش به خرج داده بودند و اینکه چگونه از آزار و حمله به او لذت برده بودند چیزی در خاطرشان نمانده.
این اثر نکته ای دهشتناک را در باب وجود بشر آشکار میکند.
به ما نشان میدهد که اگر شرایط مناسب باشد، یک انسان با چه سرعت و به چه آسانی میتواند به همنوع خود آسیب برساند، به چه سادگی میشود از شخصی که از خود دفاع نمیکند یا نمیجنگد بهرهکشی کرد
و این که اگر بسترش فراهم باشد اکثریت افراد به ظاهر «نرمال» جامعه می توانند در چشم برهم زدنی به موجودی حقیقتاً وحشی و خشن تبدیل شوند.
مارینا بعدها اعلام کرد که وقتی که شب به هتل خود برگشته بود، دید که یک دسته از موهایش در عرض چند ساعت سفید شده بود. خودداری و عدم واکنش او چنین هزینهای به او تحمیل کرده بود.
مارينا آبراموويچ و پرفورمنس ريتم صفر به ما ياد ميدهد كه وقتي منفعل باشيد هم خودتان نابود ميشويد و هم بخش نابودگر ديگران را بيدار مي كنيد.
وقتي منفعل باشید آدم ها وحشي ميشوند ، زورگو ميشوند، اخلاق و شأن انساني شما را ديگر هر کسی محترم نمي شمارد و امیال و عقده و غده هایی که درونش وجود دارد مجال ابراز وجود پیدا کرده و خود نمایی میکند !
"هر بار که ما ظلمی را شاهد هستیم و کاری نمیکنیم، شخصیت خود را آموزش میدهیم که در زمان مشکل منفعل باشد و به مرور تمام توانایی خود را برای دفاع از خود و کسانی که دوست داریم را از دست می دهیم"
جولیان آسانژ
در سال ۱۹۷۴، مارینا آبراموویچ یک اجرای هنری به مفهوم مدرن داشت:
او اعلام کرده بود که در طی اجرای ۶ ساعته، مانند یک شیء بی حرکت و بدون هر گونه واکنش خواهد بود.
در این مدت شرکت کنندگان اجازه داشتند هر کاری می خواهند با او بکنند و حتی از ۷۲ وسیله ای که آبراموویچ روی میز استودیو گذاشته بود هم استفاده نمایند.این اجرا «ریتم ِ صفر» نام داشت.
روی میز یادداشت زیر به چشم میخورد: راهکار: -۷۲ وسیله روی میز است که هر طور دوست داشتید می توانید آنها را روی من بکار ببرید.
تعهد: - من برای مدت ۶ ساعت صرفاً یک ابژه خواهم بود و مسوولیت هر نوع عواقبی را بر عهده می گیرم. -۶ ساعت از ۸ شب تا ۲ صبح می باشد.
روی میز هم ادوات لذت مانند پر، دستمالهای ابریشمی، گل، آب و ... بود و هم ابزار شکنجه: چاقو، تیغ، زنجیر، سیم... و حتی یک اسلحه ی پُر!
در ابتدای کار همه رودربایستی داشتند. یک نفر نزدیک شد و او را با گلها آراست. یک نفر دیگر او را با سیم به یک شیئ دیگر بست، دیگری قلقلکش داد...
کمی بعد او را بلند کردند و جایش را تغییر دادند!
کم کم زنجیرها را بکار گرفتند، به او آب پاشیدند و وقتی دیدند واکنشی نشان نمیدهد رفتارها حالت تهاجمیتر گرفت. منتقد هنری، توماس مک اویلی، که در این پرفورمنس شرکت کرده بود به خاطر میآورد که چگونه رفتار مردم رفته رفته، خشن و خشنتر شد.
«اولش ملایم بود، یک نفر او را چرخاند، یکی دیگر بازوهایش را بالا برد... ...»
مردی جلو آمد و با تیغ ریش تراشی که برداشته بود گردن او را مجروح کرد و مردی دیگر خارهای گل را روی شکم آبراموویچ کشید. در ساعت سوم تمام لباس های او رو پاره کرده بودند و آزارهای جنسی محدودی بر او انجام شد.
یک نفر تفنگ را به دستش داد و دستش را تا بالای گیجگاهش برد.
مسئول گالری وحشت زده آمد تفنگ را گرفت و از پنجره به بیرون پرت کرد. اون چنان متعهد به کارش بود که احتمال تجاوز یا حتی مرگ را به جان خریده بود.
با این پرفورمنس آبراموویچ نشان داد که اگر شرایط برای افرادی که به خشونت گرایش دارند مهیا باشد، به چه راحتی و با چه سرعتی آن را اعمال میکنند.
بعد از پایان ۶ ساعت پرفورمنس، آبراموویچ در سالن استودیو به راه افتاد و از مقابل دستیاران و بازدیدکنندگان گذشت.
همه از نگاه کردن به صورت او اجتناب میکردند.
بازدید کنندگان هم آنقدر عادی رفتار می کردند که انگار اصلاً از خشونتی که دمی پیش به خرج داده بودند و اینکه چگونه از آزار و حمله به او لذت برده بودند چیزی در خاطرشان نمانده.
این اثر نکته ای دهشتناک را در باب وجود بشر آشکار میکند.
به ما نشان میدهد که اگر شرایط مناسب باشد، یک انسان با چه سرعت و به چه آسانی میتواند به همنوع خود آسیب برساند، به چه سادگی میشود از شخصی که از خود دفاع نمیکند یا نمیجنگد بهرهکشی کرد
و این که اگر بسترش فراهم باشد اکثریت افراد به ظاهر «نرمال» جامعه می توانند در چشم برهم زدنی به موجودی حقیقتاً وحشی و خشن تبدیل شوند.
مارینا بعدها اعلام کرد که وقتی که شب به هتل خود برگشته بود، دید که یک دسته از موهایش در عرض چند ساعت سفید شده بود. خودداری و عدم واکنش او چنین هزینهای به او تحمیل کرده بود.
مارينا آبراموويچ و پرفورمنس ريتم صفر به ما ياد ميدهد كه وقتي منفعل باشيد هم خودتان نابود ميشويد و هم بخش نابودگر ديگران را بيدار مي كنيد.
وقتي منفعل باشید آدم ها وحشي ميشوند ، زورگو ميشوند، اخلاق و شأن انساني شما را ديگر هر کسی محترم نمي شمارد و امیال و عقده و غده هایی که درونش وجود دارد مجال ابراز وجود پیدا کرده و خود نمایی میکند !
"هر بار که ما ظلمی را شاهد هستیم و کاری نمیکنیم، شخصیت خود را آموزش میدهیم که در زمان مشکل منفعل باشد و به مرور تمام توانایی خود را برای دفاع از خود و کسانی که دوست داریم را از دست می دهیم"
جولیان آسانژ
Telegram
attach 📎
یکی از ابزارهای جالبی که امروز پیدا کردم سرویس جستجوی دیتاست هاست که توسط گوگل راه اندازی شده است. با این ابزار می توانید دیتاست مناسب خودتان در هر زمینه ای که باشید را پیدا کنید. گزینه های زیادی در سرچ وجود دارد که قطعا آن را از جستجوی مستقیم در گوگل متمایز می کند. به طور مثال قابلیت کامل کردن به شما کمک میکند دیتاست های مرتبط را پیدا کنید. همچنین می توانید بر اساس فرمت، بر اساس تاریخ انتشار و رایگان بودن و نبودن نتایج را به دلخواه تغییر دهید
https://datasetsearch.research.google.com/
#dataset
https://datasetsearch.research.google.com/
#dataset
This media is not supported in your browser
VIEW IN TELEGRAM
این ویدیو بالاترین رزولوشن از نقشه مغز «مگس سرکه» را نشان می دهد که بر اساس عملکرد (بینایی، بویایی و غیره) دسته بندی شده است. این کار با همکاری گوگل و janelia انجام شده است. تعداد نورون های مغز مگس سرکه حدود ۲۵ هزار است که دارای چهار هزار نوع مختلف نورون است.
قسمت جالب تر این است که تمام اطلاعات مربوط به نورون ها و ارتباط آن ها در دیتاستی در اختیار پژوهشگران قرار داده شده است. فرمت آن بر اساس پایگاه داده معروف neo4j است و یک رابط به زبان پایتون هم برای آن درست شده است. اندازه این دیتاست حدود چهار گیگابایت است! برای راحتتر بودن کار حتی یک ابزار آنلاین برای گشتن در نقشه مغز قرار داده شده است که می توانید با آن کار کنید.
برای مقایسه باید بدانید تعداد نورون های مغز انسان حدود ۸۶ میلیارد عدد است که چیزی حدود ۳.۵ میلیون برابر مگس سرکه است!!
#brain
#python
#dataset
قسمت جالب تر این است که تمام اطلاعات مربوط به نورون ها و ارتباط آن ها در دیتاستی در اختیار پژوهشگران قرار داده شده است. فرمت آن بر اساس پایگاه داده معروف neo4j است و یک رابط به زبان پایتون هم برای آن درست شده است. اندازه این دیتاست حدود چهار گیگابایت است! برای راحتتر بودن کار حتی یک ابزار آنلاین برای گشتن در نقشه مغز قرار داده شده است که می توانید با آن کار کنید.
برای مقایسه باید بدانید تعداد نورون های مغز انسان حدود ۸۶ میلیارد عدد است که چیزی حدود ۳.۵ میلیون برابر مگس سرکه است!!
#brain
#python
#dataset
🌪انتقال کل داده های ویکی پدیا به پایگاه داده مونگو🌪
می توان گفت ویکی پدیا مهمترین دیتاست در حوزه پردازش زبان طبیعی است. اما بعد از سالها تجربه کار کردن با آن متوجه شدم که خیلی مواقع آن قدر ها هم که فکر میکنید به راحتی نمیتوانید به آن دسترسی داشته باشید به چند دلیل مشخص:
۱- داده های دامپ (dump) ویکی پدیا حجم عظیمی هستند که به فرمت بسیار بدخوان xml ذخیره شده اند که خواندن آن معمولا ساده نیست.
۲-حتی بعد از تبدیل داده ها به فرمت مناسب تر (مثلا json) این داده ها حاوی مقادیر زیادی تگ های اضافه مانند لینک ها، هدر ها، ویرایش ها، رفرنس ها و صدها جزییات کوچک و بزرگ است که آن را از یک متن تمیز و ساده بسیار متمایز میکند. تمیز کردن این ورودی تقریبا شما را راهی تیمارستان می کند!!
۳- ابزارهای آنلاینی برای تمیز کردن داده ها وجود دارند اما مشکل این است که آن ها صرفا دوباره داده ها را بر روی دیسک ذخیره می کنند و این بدان معناست شما نیاز به نوشتن کد اضافی برای خواندن از روی دیسک دارید.
۴- حتی اگر این کدها را هم بنویسید به خاطر اینکه بر روی دیسک ذخیره شده است انجام کارهای ساده بر روی آن را دشوار می کند. دقت کنید ویکی پدیا یکی از بزرگترین داده های متنی است که حاوی حدود پنج میلیون مقاله است و حجمی نزدیک به ۳۰ گیگابایت از دیسک را ذخیره می کند. انجام عملیاتی مثل دسترسی به یکی از مقاله ها ممکن است چند دقیقه طول بکشد اگر صرفا آن را به صورت ترتیبی بخوانید.
این دلایل و دلایلی دیگر باعث شد یک بار برای همیشه یک API ساده برای آن بسازم که تمام داده ها را در چند قدم ساده بدون اینکه درگیر جزییات بشوید در یک پایگاه داده مبتنی بر سند یعنی Mongodb ذخیره کند. انجام این کار ممکن است کمی طول بکشد اما بعد از وارد کردن داده ها و اندیس دهی می توانید علاوه بر دسترسی بسیار ساده و بسیار سریع (کمتر از یک هزارم ثانیه بعد از اندیس دهی) به داده ها از طریق یک کلاس که فقط اطلاعات اتصال به دیتابیس را میخواهد به همه مقالات با متن تمیزه و به راحتی دسترسی داشته باشید.
https://github.com/roholazandie/wikipedia_to_mongodb
می توان گفت ویکی پدیا مهمترین دیتاست در حوزه پردازش زبان طبیعی است. اما بعد از سالها تجربه کار کردن با آن متوجه شدم که خیلی مواقع آن قدر ها هم که فکر میکنید به راحتی نمیتوانید به آن دسترسی داشته باشید به چند دلیل مشخص:
۱- داده های دامپ (dump) ویکی پدیا حجم عظیمی هستند که به فرمت بسیار بدخوان xml ذخیره شده اند که خواندن آن معمولا ساده نیست.
۲-حتی بعد از تبدیل داده ها به فرمت مناسب تر (مثلا json) این داده ها حاوی مقادیر زیادی تگ های اضافه مانند لینک ها، هدر ها، ویرایش ها، رفرنس ها و صدها جزییات کوچک و بزرگ است که آن را از یک متن تمیز و ساده بسیار متمایز میکند. تمیز کردن این ورودی تقریبا شما را راهی تیمارستان می کند!!
۳- ابزارهای آنلاینی برای تمیز کردن داده ها وجود دارند اما مشکل این است که آن ها صرفا دوباره داده ها را بر روی دیسک ذخیره می کنند و این بدان معناست شما نیاز به نوشتن کد اضافی برای خواندن از روی دیسک دارید.
۴- حتی اگر این کدها را هم بنویسید به خاطر اینکه بر روی دیسک ذخیره شده است انجام کارهای ساده بر روی آن را دشوار می کند. دقت کنید ویکی پدیا یکی از بزرگترین داده های متنی است که حاوی حدود پنج میلیون مقاله است و حجمی نزدیک به ۳۰ گیگابایت از دیسک را ذخیره می کند. انجام عملیاتی مثل دسترسی به یکی از مقاله ها ممکن است چند دقیقه طول بکشد اگر صرفا آن را به صورت ترتیبی بخوانید.
این دلایل و دلایلی دیگر باعث شد یک بار برای همیشه یک API ساده برای آن بسازم که تمام داده ها را در چند قدم ساده بدون اینکه درگیر جزییات بشوید در یک پایگاه داده مبتنی بر سند یعنی Mongodb ذخیره کند. انجام این کار ممکن است کمی طول بکشد اما بعد از وارد کردن داده ها و اندیس دهی می توانید علاوه بر دسترسی بسیار ساده و بسیار سریع (کمتر از یک هزارم ثانیه بعد از اندیس دهی) به داده ها از طریق یک کلاس که فقط اطلاعات اتصال به دیتابیس را میخواهد به همه مقالات با متن تمیزه و به راحتی دسترسی داشته باشید.
https://github.com/roholazandie/wikipedia_to_mongodb
شرکت openai به صورت رسمی تمام چارچوب های نرم افزاری یادگیری عمیق خود را به پایتورچ تغییر داد. هدف از این کار سادگی کار با پایتورچ و کاهش زمان توسعه از هفته ها به روز است. از طرف دیگر پایتورچ با استقبال بسیار زیادی از سوی استارتاپ های کوچک و همچنین فیسبوک، مایکروسافت و آمازون و دیگر غولهای فناوری روبرو شده است.
[با این حساب احتمالا تنها شرکتی که به صورت فعال از تنسرفلو استفاده می کند خود گوگل است.]
توضیحات بیشتر:
https://openai.com/blog/openai-pytorch/
[با این حساب احتمالا تنها شرکتی که به صورت فعال از تنسرفلو استفاده می کند خود گوگل است.]
توضیحات بیشتر:
https://openai.com/blog/openai-pytorch/
MatlabTips pinned «🌕بهترین دوره یادگیری پایتون🌕 دوره بسیار کامل udemy برای آموزش پایتون رو دانلود کردم و در کانال دانلود قرار دادم. (فقط پنج فصل اول که اساسی تر هستند) فصل اول در مورد اینکه پایتون چیست و چگونه اون رو نصب کنیم فصل دوم در مورد پایه های زبان و سینتکس فصل سوم…»
This media is not supported in your browser
VIEW IN TELEGRAM
گوشه ای کوتاه از مصاحبه ریچارد فاینمن فیزیکدان بزرگ قرن بیستم در رابطه با جهان، حقیقت و مذهب
"من از ندونستن نمیترسم!"
- ریچارد فاینمن
"من از ندونستن نمیترسم!"
- ریچارد فاینمن
ریچارد فاینمن قهرمان دوران نوجوانی من بود! شخصی که علم را نه از طریق کتاب و دانشگاه آموخت بلکه آن را زندگی می کرد! علم برای فاینمن موضوعی مربوط به دانشگاه و آزمایشگاه نیست بلکه یک بخش اساسی از زندگی اوست. افرادی مانند فاینمن نشان می دهند علم چقدر می تواند سرگرم کننده و جالب باشد آنقدر که شما آن را هر روز و همه جا ببینید و لذت ببرید!
کتاب «حتماً شوخی میکنید آقای فاینمن؟» داستان بسیار جالب زندگی او به قلم رالف لیگ تون است که خواندنش را به همه توصیه می کنم (ترجمه فارسی آن هم وجود دارد) این کتاب مجموعه از خاطرات شیرین و جالب و مقدار کمی فیزیک است.
اما اگر حوصله خواندن کتاب ندارید مستند ۵۰ دقیقه ای زیر به اسم «لذت فهمیدن چیزها» (the pleasure of finding things out) را می توانید ببینید که توسط horizon bbc ساخته شده و یک مصاحبه گرم و صمیمی با این نابغه است.
دانلود (حجم ۹۲ مگابایت)
کتاب «حتماً شوخی میکنید آقای فاینمن؟» داستان بسیار جالب زندگی او به قلم رالف لیگ تون است که خواندنش را به همه توصیه می کنم (ترجمه فارسی آن هم وجود دارد) این کتاب مجموعه از خاطرات شیرین و جالب و مقدار کمی فیزیک است.
اما اگر حوصله خواندن کتاب ندارید مستند ۵۰ دقیقه ای زیر به اسم «لذت فهمیدن چیزها» (the pleasure of finding things out) را می توانید ببینید که توسط horizon bbc ساخته شده و یک مصاحبه گرم و صمیمی با این نابغه است.
دانلود (حجم ۹۲ مگابایت)
🔵مدل سازی ریاضی پخش ویروس کرونا🔵
آزمایشگاه Brockmann Lab در آلمان به تازگی پژوهش گسترده ای بر روی مدل ریاضی پخش ویروس کرونا منتشر کرده است که بر اساس مطالعه سیستم های پیچیده (complex systems) است. اینجا می توانید صفحه اصلی آن ها را مشاهده کنید. این مدل ها می توانند به صورت تقریبی ریسک پخش ویروس در نقاط مختلف دنیا را بر اساس داده های ورودی و خروجی فرودگاه ها،فاصله تا ووهان و بقیه پارامتر های دیگر محاسبه کنند.
علاوه بر اینها ویژالیزیشن های بسیار جالبی هم می توانید اینجا ببینید.
@matlabtips
آزمایشگاه Brockmann Lab در آلمان به تازگی پژوهش گسترده ای بر روی مدل ریاضی پخش ویروس کرونا منتشر کرده است که بر اساس مطالعه سیستم های پیچیده (complex systems) است. اینجا می توانید صفحه اصلی آن ها را مشاهده کنید. این مدل ها می توانند به صورت تقریبی ریسک پخش ویروس در نقاط مختلف دنیا را بر اساس داده های ورودی و خروجی فرودگاه ها،فاصله تا ووهان و بقیه پارامتر های دیگر محاسبه کنند.
علاوه بر اینها ویژالیزیشن های بسیار جالبی هم می توانید اینجا ببینید.
@matlabtips
rocs.hu-berlin.de
Model
Analysis of the spreading path of 2019-nCoV
Forwarded from زانکو (Javad Amirian)
دنیای شفافیت
در سالهای اخیر، جنبشی در جامعهی علمی، مخصوصا در #علوم_کامپیوتر و #هوش_مصنوعی بوجود آمده که نویسندگان مقالهها کدهای خود را در دسترس عموم قرار میدهند یا آنرا #اپن_سورس میکنند.
حتی بعضی کنفرانسها مثل ICML این گام را برای انتشار مقاله اجباری کردهاند. برخیها هم، خود بطور داوطلبانه کدها را روی github میگذارند. الکس الهی یکی از افرادیست که ادعا میکند تمام مقالههایشان را همراه با کد به اشتراک میگذارد.
این جنبش اتفاق بسیار مبارکی است، چون هم امکان بازتولید کارها فراهم میشود و در نتیجه به سرعت توسعهی علم کمک میکند و هم حس اعتماد بیشتری در خواننده نسبت به مقاله بوجود میآورد، و نتایج برای او باورپذیرتر میشوند. نتیجه این که، این مقالات بیشتر دیده خواهند شد و به اعتبار علمی نویسنده کمک خواهد کرد. (در گیتهاب، افراد بجای لایک، به یک پروژه ستاره میدهند.) ⭐
البته از سوی دیگر، ممکن است شخصی خطای فاحشی در کد شما پیدا کند و کارتان زیر سوال برود. در واقع این ویژگی «شفافیت» است که در آن کارهای شایسته بسرعت اعتبار میگیرند و خطاها علنا نقد خواهند شد.
تجربهای که خودم به شخصه با قرار دادن کد مقالهام روی گیتهاب بدست آوردم بسیار ارزشمند است. بعضا ایمیلهایی دریافت میکنم. سوال دارند یا باگهایی را پیدا کردهاند. (من خودم پذیرفتم که روش و کد ما، بینقص نیست و مشکلاتی دارد.)
در نتیجه سعی میکنم حتیالامکان سوالات را بی پاسخ نگذارم، ولو به درستی ادعای طرف اذعان کنم. بهرحال مساله این است: جایی برای پنهان شدن نیست. بخواهم یا نخواهم قضاوت خواهم شد.
پانوشت
1. راستش هدفم از طرح این داستان، تبلیغ شخصیت خودم نیست، چون خودم میدانم که انسان مسئولیتپذیری نیستم. اما این شفافیت، قطعا من را یک قدم به #مسؤوليتپذیری نزدیک خواهد کرد.
2. ما در پروژه #CrowdBot ملزمیم دستاوردهای کارمان را اپن سورس کنیم چون داریم از اتحادیه اروپا که یک نهاد عمومیست تغذیه میکنیم و باید بابت بودجهها #پاسخگو باشیم.
3. قطعا ذهن بیمار من الان دوست دارد یک مثال سیاسی بزند و از ناپاسخگویی مسوولین و عدم شفافیت و این چیزها صحبت کند. کدام عدم شفافیت برادر؟ 🙄
از خودمان شروع کنیم. مطمئنا شفافیت، از ما آدمهای بزرگتری خواهد ساخت.
#شفاف_باشیم
جواد امیریان
زانکو
@zankoo_ai
در سالهای اخیر، جنبشی در جامعهی علمی، مخصوصا در #علوم_کامپیوتر و #هوش_مصنوعی بوجود آمده که نویسندگان مقالهها کدهای خود را در دسترس عموم قرار میدهند یا آنرا #اپن_سورس میکنند.
حتی بعضی کنفرانسها مثل ICML این گام را برای انتشار مقاله اجباری کردهاند. برخیها هم، خود بطور داوطلبانه کدها را روی github میگذارند. الکس الهی یکی از افرادیست که ادعا میکند تمام مقالههایشان را همراه با کد به اشتراک میگذارد.
این جنبش اتفاق بسیار مبارکی است، چون هم امکان بازتولید کارها فراهم میشود و در نتیجه به سرعت توسعهی علم کمک میکند و هم حس اعتماد بیشتری در خواننده نسبت به مقاله بوجود میآورد، و نتایج برای او باورپذیرتر میشوند. نتیجه این که، این مقالات بیشتر دیده خواهند شد و به اعتبار علمی نویسنده کمک خواهد کرد. (در گیتهاب، افراد بجای لایک، به یک پروژه ستاره میدهند.) ⭐
البته از سوی دیگر، ممکن است شخصی خطای فاحشی در کد شما پیدا کند و کارتان زیر سوال برود. در واقع این ویژگی «شفافیت» است که در آن کارهای شایسته بسرعت اعتبار میگیرند و خطاها علنا نقد خواهند شد.
تجربهای که خودم به شخصه با قرار دادن کد مقالهام روی گیتهاب بدست آوردم بسیار ارزشمند است. بعضا ایمیلهایی دریافت میکنم. سوال دارند یا باگهایی را پیدا کردهاند. (من خودم پذیرفتم که روش و کد ما، بینقص نیست و مشکلاتی دارد.)
در نتیجه سعی میکنم حتیالامکان سوالات را بی پاسخ نگذارم، ولو به درستی ادعای طرف اذعان کنم. بهرحال مساله این است: جایی برای پنهان شدن نیست. بخواهم یا نخواهم قضاوت خواهم شد.
پانوشت
1. راستش هدفم از طرح این داستان، تبلیغ شخصیت خودم نیست، چون خودم میدانم که انسان مسئولیتپذیری نیستم. اما این شفافیت، قطعا من را یک قدم به #مسؤوليتپذیری نزدیک خواهد کرد.
2. ما در پروژه #CrowdBot ملزمیم دستاوردهای کارمان را اپن سورس کنیم چون داریم از اتحادیه اروپا که یک نهاد عمومیست تغذیه میکنیم و باید بابت بودجهها #پاسخگو باشیم.
3. قطعا ذهن بیمار من الان دوست دارد یک مثال سیاسی بزند و از ناپاسخگویی مسوولین و عدم شفافیت و این چیزها صحبت کند. کدام عدم شفافیت برادر؟ 🙄
از خودمان شروع کنیم. مطمئنا شفافیت، از ما آدمهای بزرگتری خواهد ساخت.
#شفاف_باشیم
جواد امیریان
زانکو
@zankoo_ai
🌕چطور برنامه نویس حرفه ای شویم (قسمت ۱)🌕
من به هیچ وجه خودم را حرفه ای نمی دانم و فکر میکنم هنوز چیزهای خیلی زیادی هست که باید یاد بگیرم. اما بیشتر چیزهایی که یاد گرفته ام متاسفانه نتیجه سعی و خطا یا فشار کار بوده و همین باعث اتلاف وقت زیادی از من شد. خیلی دوست داشتم پنج سال پیش یا حتی قبل تر کسی حداقل آن توانایی ها را لیست وار به من گوشزد می کرد. چیزی که اینجا می نویسم بیشتر یک مجموعه از توانایی های فنی ست. قطعا مجموعه ی بزرگتری از توانایی های غیر فنی مثل نحوه ارتباط با دیگران، کار کردن بر روی نحوه صحبت کردن و اعتماد بنفس و داشتن ظاهری آراسته و غیره و غیره هم هست که به حرفه ای شدن شما کمک می کند ولی در مجالی دیگر به آن ها می پردازم. توانایی های فنی پایین هم برای کار در دانشگاه و هم محل کار حیاتی هستند:
۱- یادگیری Git: سعی کنید حتما گیت را یاد بگیرید. گیت محبوب ترین سیستم کنترل ورژن است که در همه جای دنیا استفاده می شود. با استفاده از گیت می توانید یاد بگیرید چطور کد هایتان را در طول زمان سازماندهی کنید بدون اینکه مجبور باشید کپی های متعدد از آن بسازید و بعد دچار سردرگمی شوید. بهتر است یک اکانت github یا gitlab بسازید و شروع به کار کردن با آن بکنید. این کار علاوه بر اینکه شما را برای کار با برنامه نویسی در یک تیم آماده می کند به شما چیزی را یاد می دهد که از خود گیت فراتر می رود و بسیار ارزشمند است: «کار کوچک تمام شده بهتر از کار بزرگ ناتمام است» مشکل بزرگی که من داشتم و آن این بود که پروژه های زیادی را انجام می دادم ولی هرگز آن ها را تمام نمی کردم یا به اندازه کافی تمیز یا با مستندات نمی ساختم و به همین خاطر کامپیوترم پر بود از پروژه های قدیمی ای که دیگر خودم هم ازشان سر در نمیاورم. قرار دادن کدهایتان بر روی گیتهاب شما را به نحوی متعهد می کند که کار را تمیز انجام دهید چون همیشه به این فکر میکنید که اگر کسی کد من را بر روی اینترنت پیدا کرد چطور می تواند بدون مشکل از آن استفاده کند. این نظم به تدریج به بقیه کارها و پروژه هایتان هم انتقال پیدا میکند و تاثیر خیلی زیادی بر روی کیفیت کلی انجام کارهایتان دارد! اینجا یکی از دوره های خیلی خوب آموزش گیت رو آپلود کردم
۲- کار با Terminal: ممکن است ترجیح بدهید در ویندوز بمانید و کارهایتان را همانجا انجام دهید. چه کاری است خوب وقتی می توانید با رابط کاربری زیبا کار کنید خودتان را درگیر ترمینال زشت و ناخوانا کنید!! همین فکر ها را من هم میکردم. در واقع مقاومت شدید من برای ماندن در ویندوز تا آخرین سنگر پیش رفت زمانی که متوجه شدم انجام کارهایم با سدی بزرگ مواجه شده که از پس رد شدن از آن برنمی آیم. بسیاری از کتابخانه های جدی حتی دیگر برای ویندوز ساپورتی نداشتند. همین باعث شد از سرناچاری به سمت لینوکس بروم. اما بعد از چند ماه متوجه شدم که باید خیلی زودتر این کار را می کردم. همیشه توجه کنید که یک منحنی یادگیری وجود دارد و هیچ چیزی سخت تر نیست! اگر شما از اول از لینوکس استفاده می کردید متوجه می شدید انجام کارها در آن سخت نیست. بهتر است بزودی از comfort zone خارج شوید و از لینوکس استفاده کنید آنگاه متوجه می شوید چقدر کارها ساده تر و تمیز تر انجام می شود. چقدر همه چیز خوب روی هم چفت می شود و چقدر همه چیز درست و اندازه طراحی شده است. آن موقع است که متوجه می شوید تنها مزیت ویندوز نصب بازی های کامپیوتری ست! اولین قدم نصب یک توزیع محبوب مانند ubuntu و بعد یادگیری کار با ترمینال است. البته این بدان معنی نیست که دست به رابط کاربری نمی زنید شما همچنان امکانات کامل رابط کاربری را دارید اما با ترمینال انجام کارها را بسیار راحت می کنید! رابط کاربری لینوکس بسیار قابل انعطاف است و شما می توانید به هر شکلی که دوست دارید آن را تغییر دهید! اینجا یادگیری لینوکس به زبان فارسی با جادی رو یاد بگیرید
من به هیچ وجه خودم را حرفه ای نمی دانم و فکر میکنم هنوز چیزهای خیلی زیادی هست که باید یاد بگیرم. اما بیشتر چیزهایی که یاد گرفته ام متاسفانه نتیجه سعی و خطا یا فشار کار بوده و همین باعث اتلاف وقت زیادی از من شد. خیلی دوست داشتم پنج سال پیش یا حتی قبل تر کسی حداقل آن توانایی ها را لیست وار به من گوشزد می کرد. چیزی که اینجا می نویسم بیشتر یک مجموعه از توانایی های فنی ست. قطعا مجموعه ی بزرگتری از توانایی های غیر فنی مثل نحوه ارتباط با دیگران، کار کردن بر روی نحوه صحبت کردن و اعتماد بنفس و داشتن ظاهری آراسته و غیره و غیره هم هست که به حرفه ای شدن شما کمک می کند ولی در مجالی دیگر به آن ها می پردازم. توانایی های فنی پایین هم برای کار در دانشگاه و هم محل کار حیاتی هستند:
۱- یادگیری Git: سعی کنید حتما گیت را یاد بگیرید. گیت محبوب ترین سیستم کنترل ورژن است که در همه جای دنیا استفاده می شود. با استفاده از گیت می توانید یاد بگیرید چطور کد هایتان را در طول زمان سازماندهی کنید بدون اینکه مجبور باشید کپی های متعدد از آن بسازید و بعد دچار سردرگمی شوید. بهتر است یک اکانت github یا gitlab بسازید و شروع به کار کردن با آن بکنید. این کار علاوه بر اینکه شما را برای کار با برنامه نویسی در یک تیم آماده می کند به شما چیزی را یاد می دهد که از خود گیت فراتر می رود و بسیار ارزشمند است: «کار کوچک تمام شده بهتر از کار بزرگ ناتمام است» مشکل بزرگی که من داشتم و آن این بود که پروژه های زیادی را انجام می دادم ولی هرگز آن ها را تمام نمی کردم یا به اندازه کافی تمیز یا با مستندات نمی ساختم و به همین خاطر کامپیوترم پر بود از پروژه های قدیمی ای که دیگر خودم هم ازشان سر در نمیاورم. قرار دادن کدهایتان بر روی گیتهاب شما را به نحوی متعهد می کند که کار را تمیز انجام دهید چون همیشه به این فکر میکنید که اگر کسی کد من را بر روی اینترنت پیدا کرد چطور می تواند بدون مشکل از آن استفاده کند. این نظم به تدریج به بقیه کارها و پروژه هایتان هم انتقال پیدا میکند و تاثیر خیلی زیادی بر روی کیفیت کلی انجام کارهایتان دارد! اینجا یکی از دوره های خیلی خوب آموزش گیت رو آپلود کردم
۲- کار با Terminal: ممکن است ترجیح بدهید در ویندوز بمانید و کارهایتان را همانجا انجام دهید. چه کاری است خوب وقتی می توانید با رابط کاربری زیبا کار کنید خودتان را درگیر ترمینال زشت و ناخوانا کنید!! همین فکر ها را من هم میکردم. در واقع مقاومت شدید من برای ماندن در ویندوز تا آخرین سنگر پیش رفت زمانی که متوجه شدم انجام کارهایم با سدی بزرگ مواجه شده که از پس رد شدن از آن برنمی آیم. بسیاری از کتابخانه های جدی حتی دیگر برای ویندوز ساپورتی نداشتند. همین باعث شد از سرناچاری به سمت لینوکس بروم. اما بعد از چند ماه متوجه شدم که باید خیلی زودتر این کار را می کردم. همیشه توجه کنید که یک منحنی یادگیری وجود دارد و هیچ چیزی سخت تر نیست! اگر شما از اول از لینوکس استفاده می کردید متوجه می شدید انجام کارها در آن سخت نیست. بهتر است بزودی از comfort zone خارج شوید و از لینوکس استفاده کنید آنگاه متوجه می شوید چقدر کارها ساده تر و تمیز تر انجام می شود. چقدر همه چیز خوب روی هم چفت می شود و چقدر همه چیز درست و اندازه طراحی شده است. آن موقع است که متوجه می شوید تنها مزیت ویندوز نصب بازی های کامپیوتری ست! اولین قدم نصب یک توزیع محبوب مانند ubuntu و بعد یادگیری کار با ترمینال است. البته این بدان معنی نیست که دست به رابط کاربری نمی زنید شما همچنان امکانات کامل رابط کاربری را دارید اما با ترمینال انجام کارها را بسیار راحت می کنید! رابط کاربری لینوکس بسیار قابل انعطاف است و شما می توانید به هر شکلی که دوست دارید آن را تغییر دهید! اینجا یادگیری لینوکس به زبان فارسی با جادی رو یاد بگیرید
🌕چطور برنامه نویس حرفه ای شویم (قسمت ۲)🌕
۳- یادگیری چند زبان: سعی کنید همیشه چند زبان برنامه نویسی بلد باشید اگر با پایتون یا متلب راحت ترید سعی کنید سراغ زبان های سطح پایین تر مانند سی یا جاوا بروید. یا برعکس. این کار به شما کمک می کند که بیش از حد به سینتکس یک زبان وابسته نباشید بلکه در الگوریتم ها و فرآیند ها فکر کنید. هر زبان امکانات خاصی به شما میدهد اما نباید این امکانات چارچوب های ذهنی شما را ببندد. به طور مثال من جدیدا با زبان Go آشنا شدم و متوجه شدم که بسیاری از کارهایی که به زحمت می توان به صورت همروند (موازی) در زبان پایتون نوشت در این زبان به راحتی قابل انجام است. چند زبان یاد بگیرید اما در انجام این کار اسراف نکنید. بسیاری از برنامه نویسان مبتدی تصور می کنند هر چقدر بیشتر زبان برنامه نویسی بلد باشند حرفه ای تر هستند اما چنین چیزی صحت ندارد. برنامه نویسان حرفه ای معمولا یکی دو زبان را بسیار خوب بلدند چند زبان را متوسط و ذهن بسیار منعطف و آماده ای برای یادگیری بقیه زبان ها دارند. فراموش نکنید زبان های برنامه سازی تنها ابزار هستند اما این ذهن شماست که همزمان نباید مجموعه ای از ابزار باشد و نباید به یک ابزار بیش از حد عادت کند.
۴- یادگیری اصول برنامه نویسی: هر قدر روی این موضوع تاکید کنم باز هم کم کاری کرده ام. نوشتن کد تمیز و خوانا به هیچ وجه کار ساده ای نیست. شما به راحتی می توانید کدی بنویسید که کارتان را سریع راه بیندازد و این به هوش متوسطی نیاز دارد اما نوشتن کدی که دیگران هم بفهمند قابل گسترش باشد و ساختار زیبایی داشته باشد طوری که بتوان آن را برای مدت ها استفاده کرد به هوش بالا و مهمتر از آن به وقت گذاشتن نیاز دارد. سعی کنید از هر پارادیمی که استفاده می کنید کد هایتان «تمیز» باشد. نوشتن کد تمیز یک چیز لوکس نیست! یک نیاز بسیار اساسی است. حتی اگر زمان شما کم است باید باز هم کدتان تمیز باشد. برنامه نویس باهوش و حرفه ای کدهایش را سمبل نمی کند تا دو ماه بعد در آشفته بازاری از کدهای در هم و برهم گم شود و بیشتر وقتش تلف شود. این کار درست مانند معماری است شما باید آن را تا جای ممکن درست انجام دهید و مرتب برگردید و تمیز کنید طوری که مانند یک بنا از بیرون به زیبایی آن افتخار کنید. یکی از منابع بسیار خوب برای یادگیری روش ها و اصول کد تمیز کتاب معروف clean code نوشته رابرت مارتین است
۳- یادگیری چند زبان: سعی کنید همیشه چند زبان برنامه نویسی بلد باشید اگر با پایتون یا متلب راحت ترید سعی کنید سراغ زبان های سطح پایین تر مانند سی یا جاوا بروید. یا برعکس. این کار به شما کمک می کند که بیش از حد به سینتکس یک زبان وابسته نباشید بلکه در الگوریتم ها و فرآیند ها فکر کنید. هر زبان امکانات خاصی به شما میدهد اما نباید این امکانات چارچوب های ذهنی شما را ببندد. به طور مثال من جدیدا با زبان Go آشنا شدم و متوجه شدم که بسیاری از کارهایی که به زحمت می توان به صورت همروند (موازی) در زبان پایتون نوشت در این زبان به راحتی قابل انجام است. چند زبان یاد بگیرید اما در انجام این کار اسراف نکنید. بسیاری از برنامه نویسان مبتدی تصور می کنند هر چقدر بیشتر زبان برنامه نویسی بلد باشند حرفه ای تر هستند اما چنین چیزی صحت ندارد. برنامه نویسان حرفه ای معمولا یکی دو زبان را بسیار خوب بلدند چند زبان را متوسط و ذهن بسیار منعطف و آماده ای برای یادگیری بقیه زبان ها دارند. فراموش نکنید زبان های برنامه سازی تنها ابزار هستند اما این ذهن شماست که همزمان نباید مجموعه ای از ابزار باشد و نباید به یک ابزار بیش از حد عادت کند.
۴- یادگیری اصول برنامه نویسی: هر قدر روی این موضوع تاکید کنم باز هم کم کاری کرده ام. نوشتن کد تمیز و خوانا به هیچ وجه کار ساده ای نیست. شما به راحتی می توانید کدی بنویسید که کارتان را سریع راه بیندازد و این به هوش متوسطی نیاز دارد اما نوشتن کدی که دیگران هم بفهمند قابل گسترش باشد و ساختار زیبایی داشته باشد طوری که بتوان آن را برای مدت ها استفاده کرد به هوش بالا و مهمتر از آن به وقت گذاشتن نیاز دارد. سعی کنید از هر پارادیمی که استفاده می کنید کد هایتان «تمیز» باشد. نوشتن کد تمیز یک چیز لوکس نیست! یک نیاز بسیار اساسی است. حتی اگر زمان شما کم است باید باز هم کدتان تمیز باشد. برنامه نویس باهوش و حرفه ای کدهایش را سمبل نمی کند تا دو ماه بعد در آشفته بازاری از کدهای در هم و برهم گم شود و بیشتر وقتش تلف شود. این کار درست مانند معماری است شما باید آن را تا جای ممکن درست انجام دهید و مرتب برگردید و تمیز کنید طوری که مانند یک بنا از بیرون به زیبایی آن افتخار کنید. یکی از منابع بسیار خوب برای یادگیری روش ها و اصول کد تمیز کتاب معروف clean code نوشته رابرت مارتین است
🌕چطور برنامه نویس حرفه ای شویم (قسمت ۳)🌕
۴- یک چارچوب GUI (رابط کابری) یاد بگیرید: وقتی برای اولین بار به عنوان متخصص دیتاساینس برای شرکتی کار میکردم تصور من مانند هر کس دیگری این بود که بالاخره زمان آن رسیده است که دیتا ها را بگیرم و تمام تمرکزم را بر روی ایده های الگوریتمی بگذارم تا بهترین خروجی ها را داشته باشم. چنین چیزی برای متخصصان نرم افزار هم صدق می کند آن ها دوست دارند تمام مدت کد به اصطلاح backend بزنند. چند ماه گذشت و از نظر خودم نتایج خوبی گرفته بودم اما خروجی هایم به چند جدول و عدد خلاصه می شد و این چیزی نبود که برای مدیران بالادستی من خیلی هیجان انگیز باشد! دقت مدل من به ۸۵ درصد رسیده است! خب که چی؟ این وضعیت باعث می شد آن ها تصور کنند بازدهی من پایین است. همان روز برگشتم و شروع به طراحی رابط کاربری جذاب با نمودار های interactive کردم. چیزی که حداکثر دو یا سه روز وقت می گرفت اما نتیجه شگفت انگیز شد! ناگهان همه خوشحال شدند و جلسه گذاشتند و از کارم تقدیر کردند!! برای من چیزی عوض نشده بود ولی برای آن ها همه چیز عوض شده بود!! اگر حتی کار پژوهشی می کنید بهترین راه برای ارایه حتی برای همکارانتان که هم تخصص شما هستند نه نشان دادن کدهایتان که ارایه کار به صورت نمودار ها و رابط کاربری جذاب است! در میزان اثر این کار نمی توان اغراق کرد. سعی کنید علاوه بر یادگیری روش درست کد زدن روش تبلیغ آن را هم یاد بگیرید. یک کار قوی با ارایه ضعیف نابود شده و یک کار متوسط با ارایه قوی ماندگار و گسترده می شود. در یک شرکت بزرگ قطعا طراحی رابط کاربری بر عهده متخصص آن است اما حتی همانجا نیاز دارید نشان دهید بخشی که کار شماست، چیست.
برای این منظور به شما یادگیری streamlit یا dash برای پایتون را توصیه می کنم(هر دو بسیار ساده اند). سعی کنید بر روی این چیزها کمی وقت بگذارید اما اگر نتایج ان را حتی یک بار ببینید قطعا نظرتان را عوض می کند
۴- یک چارچوب GUI (رابط کابری) یاد بگیرید: وقتی برای اولین بار به عنوان متخصص دیتاساینس برای شرکتی کار میکردم تصور من مانند هر کس دیگری این بود که بالاخره زمان آن رسیده است که دیتا ها را بگیرم و تمام تمرکزم را بر روی ایده های الگوریتمی بگذارم تا بهترین خروجی ها را داشته باشم. چنین چیزی برای متخصصان نرم افزار هم صدق می کند آن ها دوست دارند تمام مدت کد به اصطلاح backend بزنند. چند ماه گذشت و از نظر خودم نتایج خوبی گرفته بودم اما خروجی هایم به چند جدول و عدد خلاصه می شد و این چیزی نبود که برای مدیران بالادستی من خیلی هیجان انگیز باشد! دقت مدل من به ۸۵ درصد رسیده است! خب که چی؟ این وضعیت باعث می شد آن ها تصور کنند بازدهی من پایین است. همان روز برگشتم و شروع به طراحی رابط کاربری جذاب با نمودار های interactive کردم. چیزی که حداکثر دو یا سه روز وقت می گرفت اما نتیجه شگفت انگیز شد! ناگهان همه خوشحال شدند و جلسه گذاشتند و از کارم تقدیر کردند!! برای من چیزی عوض نشده بود ولی برای آن ها همه چیز عوض شده بود!! اگر حتی کار پژوهشی می کنید بهترین راه برای ارایه حتی برای همکارانتان که هم تخصص شما هستند نه نشان دادن کدهایتان که ارایه کار به صورت نمودار ها و رابط کاربری جذاب است! در میزان اثر این کار نمی توان اغراق کرد. سعی کنید علاوه بر یادگیری روش درست کد زدن روش تبلیغ آن را هم یاد بگیرید. یک کار قوی با ارایه ضعیف نابود شده و یک کار متوسط با ارایه قوی ماندگار و گسترده می شود. در یک شرکت بزرگ قطعا طراحی رابط کاربری بر عهده متخصص آن است اما حتی همانجا نیاز دارید نشان دهید بخشی که کار شماست، چیست.
برای این منظور به شما یادگیری streamlit یا dash برای پایتون را توصیه می کنم(هر دو بسیار ساده اند). سعی کنید بر روی این چیزها کمی وقت بگذارید اما اگر نتایج ان را حتی یک بار ببینید قطعا نظرتان را عوض می کند
streamlit.io
Streamlit • A faster way to build and share data apps
Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver interactive data apps – in only a few lines of code.
یکی از کاربردهای جالب شبکه های عصبی عمیق در ظرفیت بالای آنها در نگهداری اطلاعات در مورد جهان است. همین موضوع کمک میکند تا بتوان اطلاعاتی که در ورودی ها وجود ندارد به آن ها اضافه کرد. رنگ زدن عکس های قدیمی یکی از جالب ترین کاربردهاست. این ریپو این کار را برای عکس و حتی فیلم انجام می دهد.
https://github.com/jantic/DeOldify
https://github.com/jantic/DeOldify