نمای کلی تانسور

Swift for TensorFlow APIها از نوع Tensor به عنوان ابزار اولیه برای انجام محاسبات شتابدار استفاده می کنند. یک Tensor یک آرایه چند بعدی از مقادیر را نشان می دهد و عملیات روی Tensor s به طور خودکار با استفاده از یکی از دو backend به شتاب دهنده های موجود ارسال می شود.

یک Tensor در مورد نوع مقادیری که در آن قرار دارد، عمومی است. نوع این مقادیر باید با TensorFlowScalar مطابقت داشته باشد، با انواع رایج Float ، Int32 و Bool . به عنوان مثال، برای مقداردهی اولیه دو Tensor حاوی Float با مقادیر از پیش تعیین شده، می توانید کارهای زیر را انجام دهید:

let tensor1 = Tensor<Float>([0.0, 1.0, 2.0])
let tensor2 = Tensor<Float>([1.5, 2.5, 3.5])

اگر پارامتر نوع <Float> را کنار گذاشته بودید، سوئیفت یک نوع Tensor<Double> استنتاج می کرد. Double نوع پیش‌فرض برای حرف ممیز شناور در سوئیفت است. مقادیر Float معمولاً در محاسبات یادگیری ماشین رایج‌تر هستند، بنابراین ما در اینجا از آن استفاده می‌کنیم.

بسیاری از عملگرهای رایج روی Tensor s کار می کنند. به عنوان مثال، برای اضافه کردن دو مورد از آنها و به دست آوردن نتیجه، می توانید موارد زیر را انجام دهید:

let tensor3 = tensor1 + tensor2

لیست کامل عملیاتی که می توانید روی یک Tensor انجام دهید در اسناد API موجود است.

_عملیات _Raw

عملیات Tensor توسط دو ابزار مختلف کار با شتاب دهنده ها پشتیبانی می شود، با این حال آنها یک رابط سطح بالا یکپارچه دارند. در زیر هود، عملیات _Raw تعریف شده است که بسته به پشتیبان مورد استفاده برای Tensor های مورد نظر، به نسخه های _RawXLA یا _RawTFEager ارسال می شود. این اتصالات _Raw به TensorFlow یا X10 به طور خودکار تولید می شوند.

به طور معمول، شما نیازی به تعامل مستقیم با عملیات _Raw ندارید. اینترفیس‌های Swift اصطلاحی در بالای اینها ساخته شده‌اند، و شما معمولاً محاسبات Tensor را به این ترتیب انجام می‌دهید.

با این حال، همه عملیات‌های زیربنایی TensorFlow دارای رابط‌های Swift منطبق نیستند، بنابراین ممکن است گاهی نیاز به دسترسی به عملگرهای _Raw در کد خود داشته باشید. اگر نیاز به انجام این کار دارید، یک آموزش تعاملی برای نشان دادن نحوه کارکرد آن در دسترس است.