TensorFlow یک کتابخانه منبع باز سازگار با پایتون برای محاسبات عددی است که یادگیری ماشین و توسعه شبکه های عصبی را سریعتر و آسان تر می کند.
- نحوه عملکرد TensorFlow
- استفاده از TensorFlow با پایتون
- استفاده از TensorFlow با جاوا اسکریپت
- TensorFlow Lite
- چرا از TensorFlow استفاده کنید
- آموزش مدل قطعی با TensorFlow
- TensorFlow در مقابل PyTorch، CNTK، و MXNet
یادگیری ماشینی رشتهای پیچیده است، اما به لطف چارچوبهای یادگیری ماشینی -مانند Google’s TensorFlow — که فرآیند به دست آوردن دادهها، مدلهای آموزشی، ارائه پیشبینیها و اصلاح نتایج آینده را آسان میکند.
TensorFlow که توسط تیم Google Brain ایجاد شد و در ابتدا در سال ۲۰۱۵ برای عموم منتشر شد، یک کتابخانه منبع باز برای محاسبات عددی و یادگیری ماشینی در مقیاس بزرگ است. TensorFlow مجموعهای از مدلها و الگوریتمهای یادگیری ماشین و یادگیری عمیق (با نام مستعار شبکههای عصبی) را در کنار هم قرار میدهد و آنها را از طریق استعارههای برنامهای رایج مفید میسازد. از Python یا JavaScript استفاده میکند تا یک API front-end مناسب برای ساخت برنامهها فراهم کند، در حالی که آن برنامهها را در C++ با کارایی بالا اجرا میکند.
TensorFlow، که با چارچوبهایی مانند PyTorch و Apache MXNet رقابت میکند، میتواند شبکههای عصبی عمیق را برای دستهبندی رقم دستنویس، تشخیص تصویر، جاسازی کلمات، عصبی مکرر آموزش و اجرا کند. شبکهها، مدلهای دنباله به دنباله برای ترجمه ماشینی، پردازش زبان طبیعی و شبیهسازیهای مبتنی بر PDE (معادله دیفرانسیل جزئی). بهتر از همه، TensorFlow از پیشبینی تولید در مقیاس، با همان مدلهایی که برای آموزش استفاده میشود، پشتیبانی میکند.
TensorFlow همچنین دارای کتابخانه گسترده ای از مدل های از پیش آموزش دیده است که می تواند در پروژه های خود استفاده شود. همچنین میتوانید از کد TensorFlow Model Garden بهعنوان نمونههایی از بهترین شیوهها برای آموزش استفاده کنید. مدل های خودتان.
نحوه عملکرد TensorFlow
TensorFlow به توسعه دهندگان اجازه می دهد گراف های جریان داده را ایجاد کنند – ساختارهایی که نحوه حرکت داده ها را در یک گراف یا مجموعه ای از گره های پردازشی توضیح می دهند. هر گره در نمودار یک عملیات ریاضی را نشان می دهد و هر اتصال یا لبه بین گره ها یک آرایه داده چند بعدی یا تانسور است.
برنامههای TensorFlow را میتوان بر روی هر هدفی که راحت است اجرا کرد: یک ماشین محلی، یک کلاستر در فضای ابری، دستگاههای iOS و Android، CPU یا GPU. اگر از ابر خود Google استفاده میکنید، میتوانید TensorFlow را در سیلیکون سفارشی TensorFlow Processing Unit (TPU) Google برای شتاب بیشتر اجرا کنید. با این حال، مدلهای ایجاد شده توسط TensorFlow میتوانند در اکثر دستگاههایی که برای ارائه پیشبینیها استفاده میشوند، مستقر شوند.
TensorFlow 2.0 که در اکتبر ۲۰۱۹ منتشر شد، چارچوب را از بسیاری جهات بر اساس بازخورد کاربران اصلاح کرد تا کار با آن را آسانتر کند (به عنوان مثال، با استفاده از API نسبتاً ساده Keras برای مدل. آموزش) و عملکرد بیشتر. به لطف یک API جدید، آموزش توزیعشده آسانتر اجرا میشود و پشتیبانی از TensorFlow Lite امکان استقرار مدلها را بر روی پلتفرمهای متنوعتری فراهم میکند. با این حال، کدهای نوشته شده برای نسخههای قبلی TensorFlow باید بازنویسی شود – گاهی اوقات فقط کمی و گاهی به میزان قابل توجهی – تا حداکثر استفاده را از ویژگیهای جدید TensorFlow 2.0 ببرید.
از یک مدل آموزشدیده میتوان برای ارائه پیشبینیها بهعنوان یک سرویس استفاده کرد از طریق یک ظرف Docker با استفاده از REST یا gRPC API. برای سناریوهای خدمات پیشرفته تر، می توانید از Kubernetes
استفاده کنید
استفاده از TensorFlow با پایتون
TensorFlow همه اینها را از طریق زبان پایتون برای برنامه نویس فراهم می کند. یادگیری و کار با پایتون آسان است و راه های مناسبی برای بیان اینکه چگونه انتزاعات سطح بالا را می توان با هم جفت کرد، ارائه می دهد. TensorFlow در نسخههای ۳.۷ تا ۳.۱۰ پایتون پشتیبانی میشود، و اگرچه ممکن است روی نسخههای قبلی پایتون کار کند، انجام این کار تضمینی نیست.
گره ها و تانسورها در TensorFlow اشیاء پایتون هستند و برنامه های TensorFlow خود برنامه های پایتون هستند. با این حال، عملیات ریاضی واقعی در پایتون انجام نمی شود. کتابخانه های تبدیل هایی که از طریق TensorFlow در دسترس هستند به صورت باینری های C++ با کارایی بالا نوشته می شوند. پایتون فقط ترافیک بین قطعات را هدایت می کند و انتزاعات برنامه نویسی سطح بالایی را برای اتصال آنها به یکدیگر ارائه می دهد.
کار سطح بالا در TensorFlow—ایجاد گره ها و لایه ها و پیوند دادن آنها به یکدیگر—از Keras کتابخانه Keras API به ظاهر ساده است. یک مدل پایه با سه لایه را می توان در کمتر از ۱۰ خط کد تعریف کرد و کد آموزشی برای آن فقط چند خط کد بیشتر می گیرد. اما اگر میخواهید “کاپوت را بلند کنید” و کارهای دقیق تری انجام دهید، مانند نوشتن خودتان حلقه آموزشی، می توانید این کار را انجام دهید.
استفاده از TensorFlow با جاوا اسکریپت
پایتون محبوب ترین زبان برای کار با TensorFlow و به طور کلی یادگیری ماشین است. اما جاوا اسکریپت اکنون یک زبان درجه یک برای TensorFlow نیز هست و یکی از مزایای بزرگ جاوا اسکریپت این است که در هر جایی که مرورگر وب وجود دارد اجرا می شود.
TensorFlow.js، همانطور که کتابخانه جاوا اسکریپت TensorFlow نامیده می شود، از WebGL API برای تسریع محاسبات از طریق هر GPU موجود در سیستم استفاده می کند. همچنین میتوان از یک WebAssembly برای اجرا استفاده کرد، و اگر فقط بر روی CPU کار میکنید، سریعتر از پشتیبان جاوا اسکریپت معمولی است، اگرچه بهتر است هر زمان که از GPU استفاده کنید. ممکن است. مدلهای از پیش ساخته شده به شما امکان میدهد با پروژههای ساده راهاندازی کنید و به شما ایدهای درباره نحوه کار ارائه دهد. کار.
TensorFlow Lite
مدلهای آموزشدیده TensorFlow همچنین میتوانند در رایانههای لبه یا دستگاههای تلفن همراه، مانند سیستمهای iOS یا Android، مستقر شوند. مجموعه ابزار TensorFlow Lite مدلهای TensorFlow را بهینه میکند تا در چنین دستگاههایی به خوبی اجرا شوند و به شما امکان میدهد بین مدلها معاوضه ایجاد کنید. اندازه و دقت مدل کوچکتر (یعنی ۱۲ مگابایت در مقابل ۲۵ مگابایت یا حتی ۱۰۰+ مگابایت) دقت کمتری دارد، اما افت دقت عموماً کم است و با سرعت و کارایی انرژی مدل بیش از آن جبران میشود.
چرا از TensorFlow استفاده کنید
بزرگترین مزیتی که TensorFlow برای توسعه یادگیری ماشین ارائه میکند، انتزاع است. توسعهدهنده میتواند بهجای پرداختن به جزئیات دقیق پیادهسازی الگوریتمها، یا یافتن راههای مناسب برای اتصال خروجی یک تابع به ورودی تابع دیگر، روی منطق کلی برنامه تمرکز کند. TensorFlow از جزئیات پشت صحنه مراقبت می کند.
TensorFlow امکانات بیشتری را برای توسعه دهندگانی که نیاز به اشکال زدایی و درون نگری در برنامه های TensorFlow دارند، ارائه می دهد. هر عملیات گراف را می توان به طور جداگانه و شفاف ارزیابی و اصلاح کرد، به جای اینکه کل نمودار را به عنوان یک شی مات واحد بسازیم و آن را به یکباره ارزیابی کنیم. این به اصطلاح “حالت اجرای مشتاق” که به عنوان گزینه ای در نسخه های قدیمی تر TensorFlow ارائه شده است، اکنون استاندارد است.
مجموعه تجسم TensorBoard به شما امکان می دهد نحوه اجرای نمودارها را از طریق تعاملی بررسی و نمایه کنید. داشبورد مبتنی بر وب سرویسی، Tensorboard.dev (میزبان شده توسط Google)، به شما امکان میدهد آزمایشهای یادگیری ماشینی نوشته شده در TensorFlow را میزبانی کرده و به اشتراک بگذارید. استفاده از آن با فضای ذخیرهسازی تا ۱۰۰ میلیون اسکالر، ۱ گیگابایت داده تانسور و ۱ گیگابایت داده شی باینری رایگان است. (توجه داشته باشید که هر داده ای که در Tensorboard.dev میزبانی می شود عمومی است، بنابراین از آن برای پروژه های حساس استفاده نکنید.)
TensorFlow همچنین مزایای بسیاری را از پشتوانه یک لباس تجاری A-list در Google به دست می آورد. Google سرعت توسعه سریع پروژه را تقویت کرده است و بسیاری از پیشنهادات مهم را ایجاد کرده است که استقرار و استفاده از TensorFlow را آسانتر میکند. سیلیکون TPU فوق الذکر برای عملکرد سریع در ابر Google تنها یک نمونه است.
آموزش مدل قطعی با TensorFlow
چند جزئیات اجرای TensorFlow به دست آوردن نتایج آموزش مدل کاملاً قطعی برای برخی از مشاغل آموزشی را دشوار می کند. گاهی اوقات، مدلی که در یک سیستم آموزش داده شده است، با مدلی که در سیستم دیگر آموزش داده شده است، کمی متفاوت است، حتی زمانی که آنها دقیقاً همان داده ها را تغذیه می کنند. دلایل این واریانس لغزنده است—یک دلیل این است که چگونه اعداد تصادفی ایجاد می شوند و کجا< /a>; دیگری مربوط به بعضی از رفتارهای غیر قطعی در هنگام استفاده از GPUها است. شاخه ۲.۰ TensorFlow گزینه ای برای فعال کردن جبر در کل گردش کار دارد. با چند خط کد با این حال، این ویژگی هزینه عملکرد دارد و فقط باید هنگام اشکالزدایی یک گردش کار استفاده شود.
ویدیوی مرتبط: یادگیری ماشینی و هوش مصنوعی رمزگشایی شد
با غلبه بر هیاهوی یادگیری ماشین و هوش مصنوعی، پانل ما در مورد تعاریف و پیامدهای این فناوری صحبت می کند.
TensorFlow در مقابل PyTorch، CNTK، و MXNet
TensorFlow با تعداد زیادی از دیگر چارچوبهای یادگیری ماشین رقابت میکند. PyTorch، CNTK و MXNet سه فریمورک اصلی هستند که بسیاری از نیازهای یکسان را برطرف می کنند. بیایید با نگاهی گذرا به جایی که آنها برجسته هستند و در مقابل TensorFlow کوتاه می آیند، پایان می دهیم:
- PyTorch با پایتون ساخته شده است و شباهتهای بسیار دیگری به TensorFlow دارد: اجزای سختافزاری شتابدهنده در زیر کاپوت، یک مدل توسعه بسیار تعاملی که اجازه میدهد تا کارهای طراحی شده را انجام دهید، و بسیاری اجزای مفید قبلاً گنجانده شده است. PyTorch عموماً انتخاب بهتری برای توسعه سریع پروژههایی است که باید در مدت زمان کوتاهی راهاندازی شوند، اما TensorFlow برای پروژههای بزرگتر و گردشهای کاری پیچیدهتر برنده است.
- CNTK، مجموعه ابزار شناختی مایکروسافت، مانند TensorFlow در استفاده از ساختار نمودار برای توصیف جریان داده است، اما بیشتر بر ایجاد شبکه های عصبی یادگیری عمیق تمرکز دارد. CNTK بسیاری از کارهای شبکه عصبی را سریعتر انجام میدهد و دارای مجموعه گستردهتری از APIها (Python، C++، C#، Java) است. اما در حال حاضر یادگیری یا استقرار آن به آسانی TensorFlow نیست. همچنین فقط تحت مجوز GNU GPL 3.0 در دسترس است، در حالی که TensorFlow تحت مجوز آزادتر آپاچی در دسترس است. و CNTK به آن شدت توسعه نیافته است. آخرین نسخه اصلی در سال ۲۰۱۹ بود.
- Apache MXNet که توسط آمازون به عنوان برترین چارچوب یادگیری عمیق در AWS پذیرفته شده است، میتواند تقریباً به صورت خطی در چندین GPU و چندین ماشین مقیاسبندی شود. MXNet همچنین از طیف گستردهای از APIهای زبان پشتیبانی میکند – Python، C++، Scala، R، JavaScript، Julia، Perl، Go—اگرچه کار کردن با APIهای اصلی آن به اندازه TensorFlow خوشایند نیست. همچنین دارای جامعه بسیار کوچکتری از کاربران و توسعه دهندگان است.
پست های مرتبط
TensorFlow چیست؟ کتابخانه یادگیری ماشین توضیح داد
TensorFlow چیست؟ کتابخانه یادگیری ماشین توضیح داد
TensorFlow چیست؟ کتابخانه یادگیری ماشین توضیح داد