Keras: API سطح بالا برای TensorFlow

Keras API سطح بالای پلت فرم TensorFlow است. این یک رابط قابل دسترس و بسیار سازنده برای حل مشکلات یادگیری ماشین (ML) با تمرکز بر یادگیری عمیق مدرن ارائه می دهد. Keras هر مرحله از گردش کار یادگیری ماشین را پوشش می دهد، از پردازش داده تا تنظیم فراپارامتر تا استقرار. این با تمرکز بر امکان آزمایش سریع توسعه داده شد.

با Keras، شما به مقیاس پذیری و قابلیت های چند پلتفرمی TensorFlow دسترسی کامل دارید. می‌توانید Keras را روی یک TPU Pod یا دسته‌های بزرگی از GPU اجرا کنید، و می‌توانید مدل‌های Keras را برای اجرا در مرورگر یا دستگاه‌های تلفن همراه صادر کنید. همچنین می‌توانید مدل‌های Keras را از طریق وب API ارائه دهید.

Keras برای کاهش بار شناختی با دستیابی به اهداف زیر طراحی شده است:

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

چه کسی باید از Keras استفاده کند

پاسخ کوتاه این است که هر کاربر TensorFlow باید از APIهای Keras به طور پیش فرض استفاده کند. چه مهندس، چه محقق یا یک متخصص ML باشید، باید با Keras شروع کنید.

چند مورد استفاده وجود دارد (به عنوان مثال، ساخت ابزار در بالای TensorFlow یا توسعه پلت فرم با کارایی بالا خود) که به APIهای سطح پایین TensorFlow Core نیاز دارند. اما اگر مورد استفاده شما در یکی از برنامه های Core API قرار نمی گیرد، باید Keras را ترجیح دهید.

اجزای Keras API

ساختارهای داده اصلی Keras لایه ها و مدل ها هستند. یک لایه یک تبدیل ورودی/خروجی ساده است و یک مدل یک گراف غیر چرخه ای جهت دار (DAG) از لایه ها است.

لایه های

کلاس tf.keras.layers.Layer انتزاع اساسی در Keras است. یک Layer یک حالت (وزن ها) و مقداری محاسبات (تعریف شده در روش tf.keras.layers.Layer.call ) را کپسوله می کند.

وزن های ایجاد شده توسط لایه ها می توانند آموزش پذیر یا غیر قابل آموزش باشند. لایه ها به صورت بازگشتی ترکیب می شوند: اگر یک نمونه لایه را به عنوان ویژگی لایه دیگری اختصاص دهید، لایه بیرونی شروع به ردیابی وزن های ایجاد شده توسط لایه داخلی می کند.

همچنین می‌توانید از لایه‌ها برای انجام وظایف پیش‌پردازش داده‌ها مانند عادی‌سازی و بردارسازی متن استفاده کنید. لایه‌های پیش‌پردازش را می‌توان مستقیماً در یک مدل، در حین یا بعد از آموزش، گنجاند، که باعث می‌شود مدل قابل حمل باشد.

مدل ها

مدل شیئی است که لایه ها را با هم گروه بندی می کند و می تواند بر روی داده ها آموزش داده شود.

ساده ترین نوع مدل، مدل Sequential است که یک پشته خطی از لایه ها است. برای معماری‌های پیچیده‌تر، می‌توانید از API عملکردی Keras استفاده کنید، که به شما امکان می‌دهد نمودارهای دلخواه لایه‌ها را بسازید، یا از کلاس‌بندی فرعی برای نوشتن مدل‌ها از ابتدا استفاده کنید .

کلاس tf.keras.Model دارای روش های آموزشی و ارزیابی داخلی است:

  • tf.keras.Model.fit : مدل را برای تعداد ثابتی از دوره ها آموزش می دهد.
  • tf.keras.Model.predict : پیش بینی های خروجی را برای نمونه های ورودی ایجاد می کند.
  • tf.keras.Model.evaluate : مقادیر تلفات و معیارها را برای مدل برمی‌گرداند. از طریق روش tf.keras.Model.compile پیکربندی شده است.

این روش ها به شما امکان دسترسی به ویژگی های آموزشی داخلی زیر را می دهند:

  • تماس های تلفنی می‌توانید از تماس‌های داخلی برای توقف زودهنگام، بررسی مدل‌ها و نظارت بر TensorBoard استفاده کنید. شما همچنین می توانید تماس های سفارشی را پیاده سازی کنید .
  • آموزش توزیع شده شما به راحتی می توانید آموزش خود را به چندین GPU، TPU یا دستگاه افزایش دهید.
  • گام فیوزینگ. با آرگومان steps_per_execution در tf.keras.Model.compile ، می توانید چندین دسته را در یک تماس tf.function پردازش کنید، که استفاده از دستگاه را در TPU ها بسیار بهبود می بخشد.

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

سایر APIها و ابزارها

Keras بسیاری از APIها و ابزارهای دیگر را برای یادگیری عمیق ارائه می دهد، از جمله:

برای فهرست کامل APIهای موجود، به مرجع Keras API مراجعه کنید. برای کسب اطلاعات بیشتر در مورد سایر پروژه ها و ابتکارات Keras، به اکوسیستم Keras مراجعه کنید.

مراحل بعدی

برای شروع استفاده از Keras با TensorFlow، موضوعات زیر را بررسی کنید:

برای کسب اطلاعات بیشتر در مورد Keras، به موضوعات زیر در keras.io مراجعه کنید: