TensorFlow کتابخانهای که دنیای هوش مصنوعی را متحول کرد!

آشنایی با کتابخانه تنسورفلو شرکت شهاب

در حقیقت اگر کاربر تلاش کند که یک سشن را اجرا کند، با خطا مواجه می‌شود، چون دیگر سشنی وجود ندارد. بنابراین، مفهوم «اول ساخت گراف و سپس اجرای بخشی از گراف» با استفاده از ()tf.Session.run، در تنسورفلوی ۲.۰ منسوخ شده است. «اجرای مشتاقانه» (Eager Execution) یک رابط ضروری، تعریف شده ضمن اجرا است که در آن، پردازش‌ها بلافاصله پس از آنکه توسط پایتون فراخوانی شدند، اجرا می‌شوند. به عقیده برخی از توسعه‌دهندگانی که از تنسورفلو استفاده می‌کنند، این مهم‌ترین ویژگی تنسورفلو ۲.۰ محسوب می‌شود. در می ۲۰۱۶، گوگل از «واحد پردازش تانسور» (Tensor Processing Unit | TPU) خود پرده‌برداری کرد که یک «مدار مجتمع با کاربرد خاص» (Application-Specific Integrated Circuit) (یک تراشه کامپیوتری) است.

در نسخه‌های جدید TensorFlow (2.x و بالاتر)، مفاهیم گراف و Session ساده‌تر شده‌اند و به صورت پیش‌فرض از حالت اجرای Eager استفاده می‌شود. این حالت به شما اجازه می‌دهد تا کدهای TensorFlow را به صورت تعاملی و شبیه به کدهای NumPy اجرا کنید. در کل، TensorFlow یک انتخاب عالی برای هر کسی است که می‌خواهد در زمینه یادگیری ماشین و یادگیری عمیق فعالیت کند. همانطور که در مثال بالا می بینید گره نگهدارنده ای که ایجاد کرده ایم؛ باید به گونه ای باشد که که بتوانیم از نوع داده اعشاری استفاده کنیم. در اینجا پارامتری به نام name را تعریف کرده ایم و به آن مقدار X_1 را داده ایم.

تنسورفلو 2.0، که در اکتبر 2019 منتشر شد، با توجه به بازخوردهایی که از کاربران دریافت شد، از بسیاری جهات مورد بازبینی و اصلاح قرار گرفت. این بازبینی ها در نسخه‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌ی منتشر شده، منجر به ساده تر شدن کار با این فریمورک (به عنوان مثال با استفاده از keras api برای آموزش مدل ها) و کارامدتر شدن آن گردید. به لطف یک API جدید، انجام آموزش توزیع شده ساده تر شده و با پشتیبانی از تنسورفلو لایت، امکان توسعه و پیاده سازی مدل ها بر روی طیف وسیع تری از پلتفرم ها فراهم گشته است. با این حال، باید کدهای نوشته شده بر اساس نسخه های قبلی تنسورفلو را از نو بنویسید، گاهی با اعمال تغییرات جزئی و گاه با بازنویسی کامل. تنها از این راه می توان از ویژگی ها و مزایای تنسورفلو 2.0 حداکثر بهره را برد. همانطور که در مقدمه قول دادیم، به شما نشان دادیم که یادگیری کتابخانه TensorFlow چگونه می‌تواند به توسعه‌دهندگان و متخصصان هوش مصنوعی کمک کند تا مدل‌های قدرتمندی بسازند و در پروژه‌های خود موفقیت بیشتری کسب کنند.

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

همچنین، شرکت در دوره‌های آموزشی و کارگاه‌هایی که به TensorFlow مربوط است، می‌تواند به شما کمک زیادی کند تا مهارت‌های خود را در این زمینه بهبود دهید. یادگیری عمیق (DL) زیر مجموعه ای از فراگیری ماشین، که زیرمجموعه بزرگتری از هوش مصنوعی و علم داده است. DL از ساختارهای الگوریتم مشتق شده از عملکرد مغز انسان استفاده می کند. چنین الگوریتم هایی نامیده می شوند شبکه های عصبی (NN) و از نورون هایی تشکیل شده اند که لایه ها را می سازند. برای اجرایی کردن عملیات در تنسورفلو در اولین اقدام باید یک جلسه ایجاد کنیم. در کتابخانه تنسورفلو در پایتون ایجاد جلسه را با استفاده از دستور ()tf.Session انجام می دهیم.

اکنون کدهای تنسورفلو می‌توانند مثل کدهای عادی پایتون اجرا شوند. اشیا NumPy و TensorFlow را می‌توان به سادگی با یکدیگر مبادله کرد. مصورسازی TensorBoard اجازه می‌دهد تا نحوه عملکرد نمودارها را از طریق یک داشبورد تعاملی و مبتنی بر وب بررسی و نمایه‌سازی کنید. توسعه‌دهندگان می‌توانند در نسخه جدید از متد fit() برای تعریف و تنظیم یک نمونه از TensorBoard استفاده کنند. توسعه‌دهنده TensorBoard را به صورت بازگشتی به متد fit اضافه می‌کند. مادامی‌ که از متد fit() استفاده می‌شود، متد فوق به هر دو صورت رابط کاربردی برنامه‌نویسی متوالی (Sequential) و رابط کاربری برنامه‌نویسی فرعی (Subclassing) کار خواهد کرد.

بااین‌حال، محقق‌های هوش مصنوعی خیلی به پاس‌کردن آزمون تورینگ اهمیت ندادن و بیشتر روی مطالعه اصول پایه‌ای هوش تمرکز کردن. دسترسی مؤثر برای داده های آموزش و اعتبار سنجی هنگام ساختن مدل در TensorFlow مهم است. ما مجموعه داده های TensorFlow را معرفی کردیم و یک مجموعه رابط استاندارد را به مجموعه  داده های حاوی انواع مختلفی از داده ها از جمله تصاویر ، متن ، فیلم و سایر موارد اضافه کردیم. اوایل امسال ما نسخه آلفای ۲٫۰ TensorFlow را در نشست TensorFlow Dev Summit معرفی کردیم. امروز ما خوشحال هستیم تا اعلام کنیم که در نهایت نسخه ۲٫۰ این برنامه منتشر شده و هم اکنون در دسترس است! دلیل استفاده از دستور ()with tf.Session این است که این دستور بطور خوکار بخش اجرای محاسبات را برای ما باز و بسته می کند.

در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم. ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی می‌نویسم.

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

این کتابخانه برای پژوهشگران، دانشجویان و توسعه‌دهندگانی که در زمینه یادگیری عمیق و هوش مصنوعی فعالیت می‌کنند، بسیار مفید است. در واقع، TF 2.0 چیزی را می‌سازد که از آن با عنوان «گراف محاسبات پویا» (Dynamic Computation Graph) یاد می‌شود و این روش، حال و هوای پایتونی بیشتری دارد و بیشتر در مسیری قرار دارد که پایتون ساخته شده است. بنابراین، «اشکال‌زدایی» (Debug | دیباگ) کردن آن نیز آسان‌تر و خواندن کد نیز کوتاه‌تر می‌شود؛ همین یک مورد به تنهایی می‌تواند ویژگی و تحول بسیار مهمی برای TF 2.0 به شمار بیاید. «پای‌تورچ» (PyTorch) در حال حاضر این کار را انجام می‌دهد؛ در حقیقت، Chainer این کار را حدود سه سال پیش انجام می‌داد، اما حالا این یک مفهوم محلی در تنسورفلو است که درک کارها را ساده‌تر می‌کند. اجرایی دقیقا مشابه بالا، خروجی پایین را به همراه دارد که بسیار مفید است.

ما گاهی به شباهت‌ها و تفاوت‌های بین تکنیک‌های هوش مصنوعی و فرایندهای شناختی انسان اشاره می‌کنیم. ما به خودمون می‌گیم هومو ساپینس (Homo sapiens) – انسان خردمند – چون هوشمون برامون خیلی اهمیت داره. هزاران ساله که داریم سعی می‌کنیم بفهمیم چطور فکر می‌کنیم و چطور رفتار می‌کنیم. اینکه چطور مغزمون [که فقط یه مشت ماده‌ست]، می‌تونه دنیایی خیلی بزرگ‌تر و پیچیده‌تر از خودش رو درک کنه، بفهمه، پیش‌بینی کنه و حتی تغییر بده. و البته اگر شما از TensorFlow نسخه اول استفاده کرده اید و قصد مهاجرت به نسخه ۲٫۰ را دارید، نسخه ای را منتشر کرده ایم. نسخه TensorFlow 2.0 همچنین شامل یک اسکریپت تبدیل خودکار برای کمک به شما در شروع کار است.

با توجه به رشد روز افزون تکنولوژی هوش مصنوعی، در تیم P30script بر آن شدیم که آموزش رایگان Tensorflow را در قابل پست هایی خدمت شما عزیزان ارائه نماییم. TensorFlow یک کتابخانه یادگیری ماشین منبع باز برای تحقیق و تولید نرم افزار های مبتنی بر هوش مصنوعی است. TensorFlow برای مبتدیان و متخصصان API را ارائه می دهد تا نرم افزار ها را برای رنج مختلفی از کامپیوتر ها ، موبایل ، وب و سیستم های ابری توسعه دهند. تنسورفلو (TensorFlow) به توسعه‌دهندگان کمک می‌کند تا مدل‌های یادگیری عمیق بسازند. مراحل استفاده از TensorFlow را می‌توان این‌گونه دسته بندی کرد.

در ادامه برخی از مهم‌ترین تغییرات به وقوع پیوسته در تنسورفلو ۲.۰ بیان می‌شوند. برنامه‌های کاربردی متعددی از تنسورفلو قدرت گرفته‌اند که از این میان می‌توان به نرم‌افزارهای توضیحات نویسی خوکار برای تصاویر، مانند «دیپ‌دریم» (DeepDream) اشاره کرد. الگوریتم مبتنی بر یادگیری ماشین موتور جستجو با عنوان رنک برین (RankBrain) نیز مثال دیگری است که تعداد قابل توجهی از کوئری‌های جستجو، جایگزینی و تکمیل نتایج جستجوی مبتنی بر الگوریتم‌های ایستای سنتی را فراهم می‌کند. در حالی که TensorFlow یک ابزار قدرتمند برای یادگیری ماشین و هوش مصنوعی است، اما دارای برخی معایب نیز می‌باشد که ممکن است برای برخی کاربران چالش‌برانگیز باشد. این معایب شامل پیچیدگی یادگیری، نیاز به منابع سخت‌افزاری قوی، و تنظیمات پیچیده برای برخی پروژه‌ها است.

برای آن که ایجاد خط لوله در کتابخانه تنسورفلو در پایتون را به طور کامل یاد بگیرید؛ از روش همیشگی و مورد علاقه ام؛ یعنی مثال استفاده می کنم. برای این قسمت هم از همان مثال قبلی استفاده می کنیم که فهم آن آسان تر باشد. اگر خاطر مبارکتان باشد؛ در مثالی که قبل تر آورده ایم؛ سه مقدار به X_1 و سه مقدار به X_2 دادیم و این کار را به صورت دستی انجام دادیم. در این قسمت به شما می گویم که این مقادیر چگونه در Tensorflow بارگذاری می شوند. مرحله به مرحله با من همراه باشید تا به طور کامل این مبحث را یاد بگیرید و متوجه شوید یک خط لوله برای تغذیه شبکه های عصبی چگونه کار می کند.

در واقع، هوش مصنوعی به هر کاری که نیاز به فکر و هوش داشته باشه ربط پیدا می‌کنه؛ این حوزه واقعاً یه علم جهانیه. هوش مصنوعی در حال حاضر طیف وسیعی از زیرشاخه‌ها رو شامل می‌شه؛ از موضوعات کلی مثل یادگیری، استدلال و ادراک گرفته تا موضوعات خاص مثل بازی شطرنج، اثبات قضیه‌های ریاضی، سرودن شعر، رانندگی با ماشین، یا تشخیص بیماری‌ها. یه دانشجوی رشته‌های قدیمی‌تری مثل فیزیک ممکنه حس کنه بهترین ایده‌ها قبلاً توسط دانشمندانی مثل گالیله، نیوتن، ماری کوری، و انیشتین کشف شدن؛ درحالی‌که هوش مصنوعی هنوز جا برای ایده‌های تازه و نوآور داره. تکنوشاب، وب ‌سایت پیشرو درارائه مطالب واخبار دنیای تکنولوژی و فناوری است. ما با ارائه محتوای آموزنده و به‌روز به توسعه‌دهندگان، برنامه‌نویسان و علاقه‌مندان به فناوری کمک می‌کنیم تا درجریان آخرین تحولات صنعت باقی بمانند. NLTK برای کسانی که به تجزیه و تحلیل داده‌های متنی و پردازش زبان طبیعی علاقه دارند، یکی از بهترین انتخاب‌ها است.

توی تاریخچه این حوزه، محقق‌ها چند مسیر مختلف رو برای تعریف هوش مصنوعی دنبال کردن. بعضی‌ها هوش رو بر اساس شباهت به عملکرد انسان تعریف کردن، در حالی که یه عده دیگه تعریف رسمی‌تر و انتزاعی‌تری رو ترجیح دادن که بهش «عقلانیت» میگن – عقلانیت به زبون ساده، یعنی انجام دادن کار درست. این مقاله‌ای که الان می‌خونین، یه جمع‌بندی جامع از این مدل منابع معتبره. ما تلاش کردیم محتوا رو به زبون ساده و درعین‌حال کامل و دقیق ارائه بدیم، تا به سؤال «هوش مصنوعی چیست» یه جواب درخور و مفید داده باشیم. تمرکز ما روی بهترین و جامع‌ترین منبع، [یعنی] کتابه؛ و سعی می‌کنیم در گذر زمان سایر منابع رو هم دخیل کنیم.

اما یکی از مهم‌ترین اصلاحات صورت گرفته مربوط به نحوه ساخت مدل‌ها است. رابط کاربردی برنامه‌نویسی مقدماتی از نسخه 1.x به 2.0 تغییر چندانی نداشت، اما حالا Keras به رابط کاربردی برنامه‌نویسی پیش‌فرض تبدیل شده است. Keras مجموعه‌ای از لایه‌ها است که نحوه ساخت شبکه‌های عصبی با استفاده از یک استاندارد مشخص را توصیف می‌کند. Keras-tunerنیز یک کتابخانه اختصاصی برای افزایش پارامترهای بهینه‌سازی مدل‌های Keras است که در حال حاضر مراحل مقدماتی خود را پشت سر می‌گذارد و به خوبی با نسخه بتای Tensorflow 2.0 سازگار است. اگر توسعه‌دهنده نرم‌افزاری هستید که می‌خواهید الگوریتم‌های مقیاس‌پذیر مبتنی بر هوش مصنوعی بسازید، باید بدانید که چگونه از ابزارهای ساخت آنها استفاده کنید.

PyTorch به خاطر ساختار داینامیک خود و قابلیت‌هایی مانند اتوماتیک دیفرانسییشن (Automatic Differentiation) در ساخت و آموزش شبکه‌های عصبی بسیار محبوب است. امیدوارم این مبحث به تکمیل دانش پایتونی شما کمک کند تا بتوانید عملکرد حرفه ای تری داشته باشید. اولین باری که از تنسورفلو استفاده کردید چه حسی نسبت به کد های خود داشتید؟ تجربه خود را با ما به اشتراک بگذارید. دستور combined_string مستقیماً نتیجه اضافه شدن دو رشته نیست بلکه فقط عملی است که باید انجام شود. ابتدا باید مسیری را تعیین کنید و سپس نحوه پیمودن آن مسیر را مشخص کنید.

گزینه دیگر برای حصول اطمینان از صحت نصب، باز کردن «ژوپیتر نوت‌بوک» (Jupyter Notebook) و اجرای دستورات زیر است. یعنی نه تنها رویش انسان با انسان بلکه رویش انسان و ماشین هوشمند. باید همگی با هم، ماشین‌هایی را پرورش دهیم تا هر چه بهتر و سریع‌تر کارهای دشوار و زمان‌برمان را به دستشان بسپاریم. پس از آموزش، مدل خود را با استفاده از داده‌های آزمون ارزیابی کنید تا به دقت و کارایی آن پی ببرید. سپس معماری مدل خود را تعریف کرده و مدل را با استفاده از داده‌ها آموزش دهید.

نحوه استقرار تنسورفلو در پلتفرم تلفن همراه (TensorFlow Lite)، مرورگرهای وب (TensorFlow.js) و سرورها (TensorFlow Serving) است. Keras-tuner نیز یک کتابخانه اختصاصی برای افزایش پارامترهای بهینه‌سازی مدل‌های Keras است که در حال حاضر مراحل مقدماتی خود را پشت سر می‌گذارد و به خوبی با نسخه بتای Tensorflow 2.0 سازگار است. هنگام نصب TF 2.0 روی Colab، این امکان وجود دارد که از کاربر خواسته شود زمان اجرا (runtime) را بازنشانی کند. همچنین با خدمات متفاوت نسبت به سایر آکادمی ها جزو منحصر به فرد ترین آکادمی برنامه نویسی در  ایران و جهان می باشیم. مهارت‌ها و شایستگی‌های فناوری اطلاعات خود را تحت چارچوب گواهینامه فناوری اطلاعات اروپا از هر کجای دنیا به‌طور کامل آنلاین تأیید کنید. می‌توانید از منابع رسمی TensorFlow یا پیش‌پردازنده‌های مانند Anaconda استفاده کنید.

اما در نسخه دوم این چهارچوب اشکال‌زدایی به مراتب ساده‌تر شده است. TensorFlow در سال ۲۰۱۵ توسط تیم تحقیقاتی Google Brain توسعه یافت و به عنوان یک کتابخانه متن‌باز برای یادگیری ماشین و یادگیری عمیق منتشر شد. هدف از توسعه این کتابخانه، فراهم کردن ابزاری قدرتمند و انعطاف‌پذیر برای ساخت و آموزش مدل‌های هوش مصنوعی بود که همزمان بتواند به صورت گسترده‌ای توسط جامعه توسعه‌دهندگان مورد استفاده قرار گیرد. از زمان انتشار اولیه، TensorFlow به سرعت تبدیل به یکی از استانداردهای صنعتی در یادگیری ماشین و یادگیری عمیق شده است. تیم توسعه‌دهنده TensorFlow متشکل از مهندسان و دانشمندان برجسته در گوگل است که با کمک جامعه متن‌باز، این کتابخانه را بهبود و توسعه می‌دهند. TensorFlow در هسته خود، یک چارچوب برای ساخت و آموزش مدل‌های یادگیری ماشین، به‌ویژه شبکه‌های عصبی دارد.

این گراف‌ها شامل نقاطی هستند که محاسبات ریاضی را انجام می‌دهند و خطوطی که داده‌ها را بین این نقاط منتقل می‌کنند. این معماری به TensorFlow امکان می‌دهد تا محاسبات را بهینه‌سازی کرده و به صورت موازی اجرا کند، که باعث افزایش کارایی و سرعت پردازش می‌شود. معرفی کتابخانه TensorFlow نیازمند درک صحیحی از نقاط قوت و ضعف آن است. TensorFlow با ارائه قابلیت‌های گسترده و ابزارهای پیشرفته، یکی از انتخاب‌های اصلی برای توسعه‌دهندگان در حوزه یادگیری ماشین و یادگیری عمیق است. با این حال، این کتابخانه مانند هر ابزار دیگری دارای مزایا و معایب خاص خود است که در ادامه مقاله به طور مفصل به آنها خواهیم پرداخت.

کافی است که یک سر به گوگل درایو خود بزنید و این ویژگی را به درایو خود اضافه کنید. بعد از راه اندازی Colab شما می توانید با استفاده از منابع پردازشی مجازی قدرتمندی که گوگل در اختیارتان قرار می دهد استفاده کرده و کد های سنگین خود را اجرا بگیرید. برنامه های افزودنی و کتابخانه‌هایی برای کارهای خاص مانند پردازش تصویر (TensorFlow Image)، پردازش زبان طبیعی (TensorFlow NLP) و… دارد. تنسورفلو همچنین API های سطح پایینی را ارائه می‌دهد که انعطاف‌ پذیری و کنترل بیشتری را روی معماری مدل و فرآیند آموزش ایجاد می‌کند. این باعث ایجاد یک نمودار محاسباتی می‌شود که سرعت و شتاب بی‌ سابقه‌ای را به عملیات‌های محاسباتی می‌دهد.


برنامه نویسی حقوق