موضوع مقاله: تنسورفلو | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تنسورفلو | مقدمه: این کتابخانه در طیف گسترده‌ای از وظایف قابل استفاده است، اما عمدتاً برای آموزش و استنتاجِ شبکه‌های عصبی مصنوعی به‌کار می‌رود. | ## بخش 1: تنسورفلو | «این یک نرم‌افزار یادگیری ماشین است که برای انواع گوناگونی از وظایف ادراکی و درک زبان مورد استفاده قرار می‌گیرد» — جفری دین، دقیقهٔ ۰:۴۷ از ۲:۱۷ در ویدئوی یوتیوب این کتابخانه یکی از محبوب‌ترین چارچوب‌های یادگیری عمیق به‌شمار می‌رود و در کنار چارچوب‌هایی مانند پای‌تورچ قرار دارد. این کتابخانه توسط تیم گوگل برین برای استفاده داخلی گوگل در پژوهش و محیط‌های تولیدی توسعه داده شد. در دقیقهٔ ۰:۱۵ از ۲:۱۷ در دقیقهٔ ۰:۲۶ از ۲:۱۷ نسخه اولیه آن در سال ۲۰۱۵ تحت مجوز آپاچی ۲٫۰ منتشر شد. تنسورفلو را می‌توان در طیف گسترده‌ای از زبان‌های برنامه‌نویسی، از جمله پایتون، جاوااسکریپت، C++ و جاوا به‌کار برد، که این امر استفاده از آن را در دامنه گسترده‌ای از کاربردها در بخش‌های مختلف تسهیل می‌کند. تاریخچه دیست‌بیلیف از سال ۲۰۱۱، تیم گوگل برین سامانه دیست‌بیلیف را به‌عنوان یک سیستم مالکیتیِ یادگیری ماشین مبتنی بر یادگیری عمیق و شبکه‌های عصبی مصنوعی توسعه داد. استفاده از این سامانه به سرعت در میان شرکت‌های مختلف آلفابت، هم در پژوهش و هم در کاربردهای تجاری، گسترش یافت. گوگل چندین دانشمند علوم رایانه، از جمله جف دین، را مأمور کرد تا پایگاه کد دیست‌بیلیف را ساده‌سازی کرده و آن را بازآرایی کنند تا به یک کتابخانه سریع‌تر و مقاوم‌تر در سطح کاربردهای تولیدی/عملیاتی تبدیل شود؛ کتابخانه‌ای که بعدها به تنسورفلو تبدیل شد. در سال ۲۰۰۹، این تیم به رهبری جفری هینتون، با پیاده‌سازی تعمیم‌یافته پس‌انتشار خطا و همچنین در کنار بهبودهای دیگر، این امکان را ایجاد کردند که دقت به مراتب بالاتری از مدلهای پیشین را در شبکه‌های عصبی بدست آید. در حالی که پیاده‌سازی مرجع آن تنها بر روی یک دستگاه‌ه قابل اجرا است، ولی تنسورفلو می‌تواند بر روی چندین سی‌پی‌یو و جی‌پی‌یو اجرا شود، که با به کار گیری افزونه‌های اختیاری کودا و SYCL برای محاسبات همه‌منظوره بر روی واحدهای پردازش گرافیکی قابل انجام است. تنسورفلو بر روی نسخه‌های ۶۴ بیتی لینوکس، مک‌اواس، ویندوز و همچنین سکوهای رایانش همراه، از جمله اندروید و آی‌اواس در دسترس است. معماری انعطاف‌پذیر آن امکان استقرار آسان محاسبات را بر روی انواع گوناگونی از سکوها (سی‌پی‌یو و جی‌پی‌یو، و حتی تی‌پی‌یو) و از رایانه‌های رومیزی تا خوشه‌های سرور و دستگاه‌های همراه و لبه‌ای فراهم می‌کند. محاسبات تنسورفلو به شکل حالت‌دار و در قالب برنامه‌نویسی جریان داده با استفاده از گراف‌های جهت‌دار بیان می‌شوند. نام تنسورفلو نیز از عملیاتی گرفته شده است که چنین شبکه‌های عصبی بر روی آرایه‌های داده‌ای چندبعدی انجام می‌دهند. در مه ۲۰۱۹، گوگل محصول تنسورفلو گرافیکس را برای کاربردهای یادگیری عمیق در گرافیک رایانه‌ای معرفی کرد. واحد پردازشی تنسور (تی‌پی‌یو) در مه ۲۰۱۶، گوگل واحد پردازشی تنسور (تی‌پی‌یو) خود را معرفی کرد؛ یک مدار مجتمع با کاربرد خاص (اِی‌سیک، یک تراشه سخت‌افزاری) که به طور ویژه برای یادگیری ماشین ساخته شده و برای تنسورفلو بهینه‌سازی شده است. تی‌پی‌یو یک شتاب‌دهنده هوش مصنوعی قابل برنامه‌ریزی است که برای فراهم‌سازی گذردهی بالا در محاسبات با دقت پایین (برای مثال، ۸ بیتی) طراحی شده و بیشتر بر استفاده یا اجرای مدل‌ها تمرکز دارد تا آموزش آن‌ها. گوگل اعلام کرد که بیش از یک سال است تی‌پی‌یوها را در مراکز داده خود به‌کار گرفته و دریافتند که این واحدها برای یادگیری ماشین، عملکرد به ازای وات بهینه‌تری در حد یک مرتبه بزرگی ارائه می‌دهند. در مه ۲۰۱۷، گوگل از نسل دوم تی‌پی‌یوها رونمایی کرد و همچنین در دسترس قرار گرفتن آن‌ها را در گوگل کامپیوت انجین اعلام نمود. تی‌پی‌یوهای نسل دوم تا ۱۸۰ ترافلاپس توان پردازشی ارائه می‌دهند و هنگامی که در قالب خوشه‌هایی شامل ۶۴ تی‌پی‌یو سازمان‌دهی می‌شوند، تا ۱۱٫۵ پتافلاپس توان پردازشی فراهم می‌کنند. در مه ۲۰۱۸، گوگل از تی‌پی‌یوهای نسل سوم با توان پردازشی تا ۴۲۰ ترافلاپس و ۱۲۸ گیگابایت حافظه با پهنای باند بالا خبر داد. در فوریه ۲۰۱۸، گوگل اعلام کرد که تی‌پی‌یوها را به صورت نسخه آزمایشی (بتا) در سکوی ابری گوگل در دسترس قرار می‌دهد. تی‌پی‌یو لبه تراشه اِی‌سیک اختصاصی گوگل است که برای اجرای مدل‌های یادگیری ماشین تنسورفلو لایت بر روی دستگاه‌های کوچک سمت کاربر، مانند تلفن‌های هوشمند، طراحی شده است که در حوزه رایانش لبه‌ای به‌کار می‌روند. تنسورفلو لایت در مه ۲۰۱۷، گوگل تنسورفلو لایت را به‌عنوان یک پشته نرم‌افزاری برای پشتیبانی از مدل‌های یادگیری ماشین در دستگاه‌های همراه و نهفته معرفی کرد و در نوامبر ۲۰۱۷ پیش‌نمایش توسعه‌دهندگان آن را ارائه داد. | ## بخش 2: تنسورفلو | در مه ۲۰۱۹، گوگل اعلام کرد که تنسورفلو لایت میکرو (که با نام تنسورفلو لایت برای میکروکنترلر نیز شناخته می‌شود) با یوتنسور متعلق به آرم ادغام خواهد شد. تنسورفلو ۲٫۰ در حالی که سهم تنسورفلو از بازار مقالات پژوهشی به نفع پای‌تورچ رو به کاهش بود، تیم تنسورفلو در سپتامبر ۲۰۱۹ انتشار یک نسخه اصلی جدید از این کتابخانه را اعلام کرد. تنسورفلو ۲٫۰ تغییرات بسیاری را معرفی کرد که مهم‌ترین آن‌ها تنسورفلو ایگر بود؛ قابلیتی که طرح مشتق‌گیری خودکار را از گراف محاسباتی ایستا، به الگوی «تعریف در زمان اجرا» تغییر داد. دیگر تغییرات مهم شامل حذف کتابخانه‌های قدیمی، سازگاری متقابل میان مدل‌های آموزش‌دیده در نسخه‌های مختلف تنسورفلو و بهبودهای چشمگیر در عملکرد بر روی جی‌پی‌یو بود. ویژگی‌ها مشتق‌گیری خودکار مشتق‌گیری خودکار فرایندی است که در آن بردار گرادیان یک مدل نسبت به هر یک از پارامترهای آن به صورت خودکار محاسبه می‌شود. با استفاده از این قابلیت، تنسورفلو می‌تواند گرادیان‌های مربوط به پارامترهای یک مدل را به طور خودکار محاسبه کند. این قابلیت برای الگوریتم‌هایی مانند پس‌انتشار که برای بهینه‌سازی عملکرد به گرادیان نیاز دارند، بسیار مفید است. برای انجام این کار، چارچوب باید ترتیب عملیات انجام‌شده بر روی تنسورهای ورودی در یک مدل را ثبت کند و سپس گرادیان‌ها را نسبت به پارامترهای مناسب محاسبه نماید. بدین معنا که عملیات بلافاصله ارزیابی می‌شوند، نه اینکه به یک گراف محاسباتی افزوده شوند که بعداً اجرا گردد. کدی که به‌صورت آنی اجرا می‌شود را می‌توان گام‌به‌گام از طریق اشکال‌زدا بررسی کرد، زیرا داده‌ها در هر خط از کد به‌روزرسانی می‌شوند، نه اینکه بعداً در یک گراف محاسباتی پردازش شوند. این الگوی اجرا به دلیل شفافیت گام‌به‌گام خود، در اشکال‌زدایی کد خیلی سهولت ایجاد کرده است. توزیع تنسورفلو هم در حالت اجرای آنی و هم در اجرای مبتنی بر گراف، یک اِی‌پی‌آی ارائه می‌دهد که با استفاده از راهبردهای گوناگون توزیع، امکان توزیع محاسبات میان چندین دستگاه را به کاربر می‌دهد. این رایانش توزیع‌شده اغلب می‌تواند اجرای فرایند آموزش و ارزیابی مدل‌های تنسورفلو را سرعت ببخشد و یک رویه رایج در حوزه هوش مصنوعی به شمار می‌رود. تلفات برای آموزش و ارزیابی مدل‌ها، تنسورفلو مجموعه‌ای از توابع تلفات (که با عنوان توابع هزینه نیز شناخته می‌شوند) را فراهم می‌کند. از نمونه‌های رایج این توابع می‌توان به میانگین مربعات خطا و آنتروپی متقاطع دودویی اشاره کرد. معیارهای اندازه‌گیری و ارزیابی تنسورفلو برای ارزیابی عملکرد مدل‌های یادگیری ماشین، دسترسی به معیارهای پرکاربرد را از طریق اِی‌پی‌آی فراهم می‌کند. از جمله این معیارها می‌توان به انواع مختلف معیارهای دقت (دودویی، رده‌ای و رده‌ای تنک) و همچنین معیارهایی مانند دقت و بازیابی و اشتراک بر اجتماع اشاره کرد. بهینه‌سازها تنسورفلو مجموعه‌ای از بهینه‌سازها را برای آموزش شبکه‌های عصبی ارائه می‌دهد که از جمله آن‌ها می‌توان به آدام، آداگراد و گرادیان کاهشی تصادفی اشاره کرد. هنگام آموزش یک مدل، بهینه‌سازهای مختلف شیوه‌های متفاوتی برای تنظیم پارامترها ارائه می‌دهند که این امر اغلب بر همگرایی و عملکرد مدل تأثیر می‌گذارد. توسعه‌ها و به‌کارگیری تنسورفلو تنسورفلو به عنوان یک سکوی هسته‌ای و کتابخانه‌ای برای یادگیری ماشین عمل می‌کند. اِی‌پی‌آی‌های تنسورفلو از کراس استفاده می‌کنند تا به کاربران امکان دهند مدل‌های یادگیری ماشین خود را ایجاد کنند. تنسورفلو افزون بر ساخت و آموزش مدل، می‌تواند در بارگذاری داده‌ها برای آموزش مدل و همچنین استقرار آن با استفاده از تنسورفلو سروینگ نیز کمک کند. تنسورفلو یک پایتون پایدار واسط برنامه‌نویسی کاربردی (اِی‌پی‌آی) ارائه می‌دهد، و همچنین اِی‌پی‌آی‌هایی بدون تضمین سازگاری با نسخه‌های پیشین برای جاوااسکریپت، C++ و جاوا ارائه می‌کند. | ## بخش 3: تنسورفلو | افزون بر این، بسته‌های اتصال زبانیِ شخص ثالث نیز برای زبان‌های سی‌شارپ، هسکل، جولیا، متلب، آبجکت پاسکال، آر، اسکالا، راست، اکمل و Crystal در دسترس هستند. اتصال‌هایی که در حال حاضر بایگانی شده و دیگر پشتیبانی نمی‌شوند شامل گو و سوئیفت هستند. لایت‌آرتی لایت‌آرتی که پیش‌تر با نام تنسورفلو لایت شناخته می‌شد، رابط‌های برنامه‌نویسی کاربردی را برای برنامه‌های تلفن همراه یا دستگاه‌های توکار فراهم می‌کند تا مدل‌های تنسورفلو تولید و مستقر شوند. این مدل‌ها به‌منظور افزایش کارایی و دستیابی به عملکرد بالاتر روی دستگاه‌هایی با ظرفیت محدودتر، فشرده و بهینه‌سازی می‌شوند. لایت‌آرتی از فلت‌بافر به‌عنوان قالب سریال‌سازی داده برای مدل‌های شبکه استفاده می‌کند و از قالب پروتکل بافرز که در مدل‌های استاندارد تنسورفلو به‌کار می‌رود، اجتناب می‌کند. این مؤلفه‌ها شامل بارگذاری، اعتبارسنجی و تبدیل داده‌ها، تنظیم ابرپارامترها، آموزش و ارزیابی مدل یادگیری ماشین، و در نهایت استقرار خود مدل در محیط تولید هستند. یکپارچه‌سازی‌ها نام‌پای نام‌پای یکی از محبوب‌ترین کتابخانه‌های داده در پایتون است و تنسورفلو یکپارچگی و سازگاری با ساختارهای داده‌ای آن را فراهم می‌کند. آرایه‌های چندبعدی نام‌پای (NDarrayها) که نوع داده بومی این کتابخانه هستند، به طور خودکار در عملیات تنسورفلو به تنسورهای تنسورفلو تبدیل می‌شوند و برعکس، این تبدیل نیز انجام‌پذیر است. این ویژگی امکان می‌دهد که این دو کتابخانه بدون نیاز به نوشتن تبدیل‌های صریح داده توسط کاربر، به صورت هماهنگ با یکدیگر کار کنند. افزون بر این، این یکپارچگی به بهینه‌سازی حافظه نیز گسترش می‌یابد، به‌طوری که تنسورهای تنسورفلو در صورت امکان، نمایش حافظه زیربنایی آرایه‌های نام‌پای را با آن‌ها به‌اشتراک می‌گذارند. توسعه‌ها تنسورفلو مجموعه متنوعی از کتابخانه‌ها و افزونه‌ها را برای توسعه و گسترش مدل‌ها و روش‌های مورد استفاده ارائه می‌دهد. برای نمونه، تنسورفلو ریکامندرز و تنسورفلو گرافیکس، کتابخانه‌هایی برای کارکردهای تخصصی مربوط به خود هستند. این محیط بر بستر سکوی ابری گوگل اجرا می‌شود و به کاربران امکان دسترسی رایگان به واحدهای پردازش گرافیکی (جی‌پی‌یو) و همچنین قابلیت ذخیره و به‌اشتراک‌گذاری نوت‌بوک‌ها در گوگل درایو را می‌دهد. کاربردها پزشکی جی‌ای هلث‌کر از تنسورفلو برای افزایش سرعت و دقت اِم‌آر‌آی در شناسایی بخش‌های مشخصی از بدن استفاده کرد. گوگل از تنسورفلو برای ایجاد DermAssist، یک برنامه تلفن همراه رایگان، استفاده کرد که به کاربران امکان می‌دهد از پوست خود عکس بگیرند و عوارض بالقوه سلامتی را شناسایی کنند. سینوویشن ونچرز از تنسورفلو برای شناسایی و طبقه‌بندی بیماری‌های چشمی از اسکن‌های مقطع‌نگاری همدوسی اپتیکی استفاده کرد. رسانه‌های اجتماعی توییتر از تنسورفلو برای رتبه‌بندی توییت‌ها بر اساس میزان اهمیت آن‌ها برای هر کاربر استفاده کرد و پلتفرم خود را به‌گونه‌ای تغییر داد که توییت‌ها بر اساس این رتبه‌بندی نمایش داده شوند. برنامه اشتراک‌گذاری عکس وی‌اس‌سی‌او از تنسورفلو برای کمک به پیشنهاد فیلترهای سفارشی برای تصاویر استفاده کرد. موتور جستجو گوگل به‌طور رسمی رنک برین را در ۲۶ اکتبر ۲۰۱۵ منتشر کرد که مبتنی بر تنسورفلو بود. آموزش InSpace، یک پلتفرم یادگیری مجازی، از تنسورفلو برای فیلتر کردن پیام‌های سمی در گفت‌وگوهای کلاسی استفاده کرد. Liulishuo، یک پلتفرم آنلاین آموزش زبان انگلیسی، از تنسورفلو برای ایجاد یک برنامه درسی تطبیقی برای هر دانش‌آموز استفاده کرد. تنسورفلو برای ارزیابی توانایی‌های فعلی دانش‌آموزان به‌کار گرفته شد و همچنین در تصمیم‌گیری درباره این‌که بر اساس این توانایی‌ها چه محتوایی نمایش داده شود، نقش داشت. خرده‌فروشی پلتفرم تجارت الکترونیک کاروسیل از تنسورفلو برای ارائه پیشنهادهای شخصی‌سازی‌شده به مشتریان استفاده کرد. | ## جمع‌بندی | شرکت لوازم آرایشی مدیفیس از تنسورفلو برای ایجاد یک تجربه واقعیت افزوده استفاده کرد تا مشتریان بتوانند سایه‌های مختلف آرایش را روی چهره خود امتحان کنند.