مفاهیم مقدماتی
برای اینکه بتوان با TensorFlow مدل های عمیق یا سایر مدل های یادگیری ماشین را پیاده سازی کرد، باید با برخی مفاهیم اولیه کار با TensorFlow که در سایر زبان های برنامه نویسی معمول کمتر دیده می شوند، آشنا شد.
این مفاهیم عبارتند از :
- بازنمایی به صورت تانسور
- گراف محاسباتی
- جلسه (Session)
- خوراند و واکشی(feed و fetch)
بازنمایی به صورت تانسور
تانسور (Tensor) در حقیقت یک ماتریس چند بعدی یا به عبارتی یک بردار چند بعدی است. ایده استفاده از حامل های داده های چند بعدی ایده ی زیاد جدیدی نیست و پیش تر نرم افزارهایی مانند Matlab یا به بیانی Matrix Laboratory از این ایده ماتریس برای نگه داری داده ها و انجام محاسبات استفاده نموده اند و نشان دادند که به خوبی می توان مسئلات بسیار زیادی از دامنه های مختلف کاربردی (برق، کامپیوتر، مکانیک و…) به خوبی پاسخ گفت. همان طور که می دانید شبکه های عمیق مستلزم محاسبات بسیار زیاد بر روی داده ها است و وزن هایی شبکه در طول فرآیند آموزش شبکه در حال تغییر هست، این سبب می شود اطلاعات بسیار زیادی ایجاد شود که نگه داری آن ها مستلزم مدیریت چندین ماتریس دو بعدی است. در اینجا است که استفاده از تانسورها، روند پردازش داده ها را سرعت و سهولت می بخشد. در بخش های بعدی بیشتر متوجه کاربرد این مسئله خواهید بود.
گراف محاسباتی
گراف محاسباتی (Computionl Graph) ایده ی بسیار کار آمدی است که بسیاری از ساز و کار های محاسباتی نظیر دیفرانسیل گیری در آموزش شبکه عمیق را سرعت می بخشد. هم چنین این امکان را فراهم می نماید که بتوان مدل یادگیری عمیق خود را بر روی چند پردازنده اعم از CPU و GPU توزیع نمود.