آنچه در این صفحه می خوانید:
- معرفی تنسورفلو
- مزایای تنسورفلو
- اکوسیستم تنسورفلو
- کاربرد تنسورفلو
- تنسورفلو در R
- تنسورفلو در پایتون
- تنسورفلو در سی پلاس پلاس
- تنسورفلو در جاوا
- تنسورفلو در متلب
معرفی تنسورفلو
TensorFlow یک کتابخانه نرم افزاری اوپن سورس برای برنامه ریزی داده ها و برنامه نویسی متفاوت با طیف وسیعی از کارها است. این یک کتابخانه ریاضی است و همچنین برای برنامه های یادگیری ماشین مانند شبکه های عصبی استفاده می شود. از تنسور فلو برای تحقیق و تولید در Google استفاده می شود. در نوامبر 2015 تحت مجوز Apache 2.0 منتشر شد. تنسورفلو یک کتابخانه نرم افزاری است که برای محاسبه عددی با گراف های جریان داده ها مورد استفاده قرار می گیرد که به کاربران اجازه می دهد محاسبات دلخواه را به عنوان یک گراف جریان های داده بیان کنند. گره ها در این گراف عملیات ریاضی را نشان می دهند درحالیکه edge داده ای را نشان می دهد که از یک گره با گره دیگر ارتباط دارد.
تنسورفلو در اصل توسط Google Brain Team در سازمان پژوهشی هوش ماشینی گوگل برای یادگیری ماشینی و پژوهش شبکه های عصبی عمیق ایجاد شد. Trensorflow چند سکویی است و بر روی تقریبا همه چیز مانند GPU و CPU از جمله پلتفرم های موبایل و جاسازی شده و حتی واحد پردازش تنسور (TPU) که سخت افزار تخصصی برای انجام ریاضی تانسور هستند اجرا می شود. داده های موجود در TensorFlow به عنوان تنسور نشان داده می شوند که آرایه های چند بعدی هستند. API لایه های رابط ساده تری برای لایه های مورد استفاده در مدل های یادگیری عمیق دارد. در بالای آن API های سطح بالا مانند API Keras و Estimator API و Core API قرار دارد که آموزش و ارزیابی مدل های توزیع شده را آسان می کند.
مزایای تنسورفلو
بزرگترین فایده ای که TensorFlow برای توسعه یادگیری ماشین فراهم می کند انتزاع است. توسعه دهنده به جای پرداختن به جزئیات کوچک از اجرای الگوریتم ها یا فهمیدن راه های مناسب برای خروج یک عملکرد به ورودی عملکرد دیگر، می تواند روی منطق کلی برنامه تمرکز کند. TensorFlow از جزئیات بک اند مراقبت می کند. TensorFlow برای برنامه نویسان که نیاز به اشکال زدایی و جلب توجه درون برنامه های TensorFlow دارند، امکانات اضافی ارائه می دهد. حالت اجرای مشتاق به شما امکان می دهد به جای ساختن کل نمودار به عنوان یک شی مات و ارزیابی آن، همه عملکردهای گراف را بطور جداگانه و شفاف ارزیابی و اصلاح کنید. مجموعه TensorBoard به شما امکان می دهد تا نحوه اجرای نمودارها از طریق یک داشبورد تعاملی و مبتنی بر وب را بازرسی و معرفی کنید.
TensorFlow همچنین از پشتوانه لباس تجاری A-list در گوگل، مزایای بسیاری کسب می کند. گوگل نه تنها به سرعت پیشرفت در پشت این پروژه دامن زده است، بلکه بسیاری از پیشنهادات قابل توجهی را نیز در اطراف TensorFlow ایجاد کرده است که امکان استفاده را آسان تر می کند. تراشه TPU برای عملکرد سریع در ابر Google است. یک مرکز آنلاین برای به اشتراک گذاری مدل های ایجاد شده با این فریمورک که ویژگی های این چارچوب در مرورگر و سازگار با موبایل را ارایه می دهد.
در زیر به دیگر مزایای تنسور فلو اشاره شده است:
- قابل حمل
- قابل تبدیل و بهینه سازی
- پشتیبانی از اجرای توزیع شده
- بررسی و اشکال زدایی مقادیر متوسط در گراف
- استفاده از جریان کنترل پایتون با TensorFlow API، توابع، خوشه ها، حلقه ها، conditionals و غیره
- دارای سینتکس "define-by-run" برای ساده سازی آموزش و ایجاد گراف های پویا
- متن باز و چندسکویی
- دارای استانداردهای بالا دراندازه گیری و شفافیت
اکوسیستم تنسورفلو
اکوسیستم تنسورفلو دارای ابزارها و کتابخانه هایی است که به شما در کارکرد بهینه کمک می کند.
TensorBoard: مجموعه ای از اپلیکیشن های وب برای بازرسی، مصورسازی و درک اجراها و گراف ها
Datalab: محیطی مبتنی بر Jupyterرا با تمام ابزارهای Apache Beam ،Jupyter notebooks ،BigQuery ،NumPy ،Pandas ،Scikit-learn و Matplotlib همراه با TensorFlow جهت بررسی داده ها و تعریف مدل های تنسورفلو را فراهم می کند.
Facets: به شما کمک می کند تا اطلاعات مجموعه داده های یادگیری ماشینی و مفهوم شکل و کاراکترهای هر یک از ویژگی ها را درک کنید و در یک نگاه ببینید که چگونه ویژگی ها با یکدیگر ارتباط برقرار می کنید.
Tfdbg: یک ابزار TensorFlow debugger
کاربرد تنسور فلو
یک فریمورک قدرتمند یادگیری ماشین است.
TensorFlow یک فریمورک یادگیری ماشین است که اگر داده های زیادی را در اختیار دارید و یا بعد از جدیدترین موارد موجود در هوش مصنوعی، یادگیری عمیق، بهترین دوست شما خواهد بود. از TensorFlow برای شکار سیارات جدید، جلوگیری از نابینایی با کمک پزشکان به غربالگری دیابتی و کمک به نجات جنگل ها با هشدار مقامات به علائم فعالیت غیرقانونی جنگل زدایی استفاده شده است. این چیزی است که AlphaGo و Google Cloud Vision در بالای آن ساخته شده اند و بازی با شماست. TensorFlow اوپن سورس است، می توانید آن را به صورت رایگان دانلود کنید و بلافاصله شروع به کار کنید.
شما می توانید شبکه های عصبی را به صورت خط بسازید.
Keras + TensorFlow = ساخت شبکه عصبی آسان تر! در Keras همه چیز در مورد کاربرپسندی و نمونه سازی آسان است، چیزی که TensorFlow قدیمی به شدت دلهره بیشتری از آن دارد. اگر تفکر شی گرا را دوست دارید و دوست دارید شبکه های عصبی را به یکباره یک لایه بسازید، tf.keras را دوست خواهید داشت.
شما می توانید هر کاری را در مرورگر انجام دهید.
صحبت از JavaScript است و شما می توانید مدلهای موجود در مرورگر را با TensorFlow.js آموزش داده و اجرا کنید.
نسخه Lite برای دستگاه های کوچک وجود دارد.
TensorFlow Lite اجرای مدل را به دستگاههای مختلفی از جمله موبایل و IoT منتقل می کند و بیش از 3 برابر افزایش سرعت استنتاج نسبت به TensorFlow اصلی را به شما می دهد. اکنون می توانید یادگیری ماشین را در Raspberry Pi یا تلفن خود دریافت کنید.
ساختمان مدل آسان
TensorFlow چندین سطح انتزاع را ارائه می دهد تا بتوانید یکی از موارد مناسب را برای نیازهای خود انتخاب کنید. با استفاده از API سطح بالا Keras مدل هایی را ایجاد و آموزش دهید، که کار با TensorFlow و یادگیری ماشین را آسان می کند. اگر به انعطاف پذیری بیشتری نیاز دارید، اجرای مشتاق امکان تکرار فوری و اشکال زدایی بصری را فراهم می آورد. برای کارهای بزرگ آموزش ML، از API Strategy Distribution برای آموزش توزیع شده در تنظیمات سخت افزاری مختلف بدون تغییر تعریف مدل استفاده کنید.
تنسورفلو در R
همیشه انتخاب موضوع بین R و Python مورد بحث بوده است. دنیای Machine Learning بر ترجیح یک زبان بر دیگری بحث شده است. اما با انفجار Deep Learning، تعادل به سمت پایتون تغییر یافت زیرا لیست عظیمی از کتابخانه ها و فریمورک های Deep Learning وجود داشت که R از آنها فاقد آن بود. یکی از دلایلی که از R فقط به پایتون تغییر دادم این است که میتوان به درون Deep Learning شیرجه زد اما با R تقریباً غیرممكن بود. اما دیگر نه! این موضوع با راه اندازی Keras در R حل شد. پایتون به آرامی به زبان de-facto برای مدلهای Deep Learning تبدیل می شد. اما با انتشار کتابخانه Keras در R با tensorflow (سازگاری CPU و GPU) در باطن تاکنون، این احتمال وجود دارد که R حتی در فضای Deep Learning مجدداً با پایتون برای تریبون بجنگد.
تنسورفلو در پایتون
کتابخانه یادگیری عمیق پایتون TensorFlow یک کتابخانه Python برای محاسبات سریع عددی است که توسط Google ایجاد و منتشر شده است. این یک کتابخانه بنیادی است که می تواند برای ایجاد مدل های Deep Learning بطور مستقیم یا با استفاده از کتابخانه های بسته بندی شده ساخته شود که فرایند ساخته شده در بالای TensorFlow را ساده می کند. اگر از جامعه آن بپرسید که ابزار مورد علاقه آنها کدام است، معمول ترین پاسخ TensorFlow و Python خواهد بود. TensorFlow فقط برای نسخه های Python 3.5 و بالاتر در دسترس است، بنابراین مطمئن شوید که نسخه صحیح Python را در سیستم خود نصب کرده اید.
تنسورفلو در سی پلاس پلاس
API سی پلاس پلاس سازوکارهایی برای ساخت و اجرای نمودار جریان داده فراهم می کند. API به صورت ساده و مختصر طراحی شده است. عملیات گرافیکی با استفاده از یک سبک ساختاری "کاربردی" از جمله مشخصات آسان نام ها، قرار دادن دستگاه و غیره به وضوح بیان می شود و نمودار حاصل می تواند به صورت کارآمد اجرا شود و خروجی های مورد نظر در یک چند خط کد این راهنما مفاهیم اساسی و ساختار داده ها را برای شروع کار با ساخت و اجرای نمودار TensorFlow در ++C توضیح می دهد. ++API C فقط برای همکاری با ساخت بازار TensorFlow طراحی شده است. اگر به گزینه مستقل نیاز دارید، از API C استفاده کنید.
تنسورفلو در جاوا
زبان اصلی که در آن مدل های یادگیری ماشین TensorFlow ایجاد و آموزش می شود، پایتون است. با این حال، بسیاری از برنامه های سرور سازمانی در جاوا نوشته شده اند. بنابراین، شما اغلب در شرایطی قرار خواهید گرفت که برای استناد به مدلی که در Python آموزش داده اید، نیاز به یک برنامه جاوا دارید. اگر از Cloud ML Engine در Google Cloud Platform استفاده می کنید، این هیچ مشکلی نیست، در Cloud ML Engine پیش بینی ها از طریق تماس REST API انجام می شود و بنابراین می توانید این کار را از هر زبان برنامه نویسی انجام دهید.
تنسورفلو در متلب
با الهام از رابط TensorFlow شبکه های عصبی Playground که به راحتی بصورت آنلاین در موجود است، این یک اجرای متلب از همان رابط شبکه عصبی برای استفاده از شبکه های عصبی مصنوعی برای رگرسیون و طبقه بندی داده های بسیار غیر خطی است. این رابط از سیستم گرافیکی HG1 استفاده می کند تا با نسخه های قدیمی MATLAB سازگار باشد. هدف ثانویه این پروژه نوشتن یک اجرای برداری از آموزش شبکه های عصبی مصنوعی با نزول گرادیان تصادفی به عنوان ابزاری برای آموزش و نشان دادن قدرت MATLAB و ماتریس است. هدف از این چارچوب داده های آموزشی و تست تصادفی تولید شده است که در دو طبقه قرار می گیرند که با اشکال یا مشخصات خاصی مطابقت دارند و با توجه به پیکربندی یک شبکه عصبی، هدف این است که یا رگرسیون یا طبقه بندی باینری از این داده ها و به صورت تعاملی انجام شود. نتایج را به کاربر، به طور خاص نقشه طبقه بندی یا رگرسیون داده ها، و همچنین اقدامات عملکرد عددی مانند آموزش و از دست دادن تست و مقادیر آنها، که بر روی منحنی عملکرد برای هر تکرار ترسیم شده است، نشان دهد.