ภาพรวมเทนเซอร์

Swift สำหรับ TensorFlow API ใช้ประเภท Tensor เป็นวิธีหลักในการดำเนินการคำนวณแบบเร่งความเร็ว Tensor แสดงถึงอาร์เรย์ของค่าหลายมิติ และการดำเนินการบน Tensor จะถูกส่งไปยังตัวเร่งความเร็วที่มีอยู่โดยอัตโนมัติโดยใช้แบ็กเอนด์หนึ่งในสองแบ็กเอนด์

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> ไว้ Swift จะอนุมานประเภทของ Tensor<Double> Double เป็นประเภทเริ่มต้นสำหรับตัวอักษรทศนิยมใน Swift ค่า Float มักจะพบได้ทั่วไปในการคำนวณของ Machine Learning ดังนั้นเราจึงใช้ค่าดังกล่าวที่นี่

ตัวดำเนินการทั่วไปหลายตัวทำงานกับ Tensor s ตัวอย่างเช่น หากต้องการเพิ่มสองรายการและรับผลลัพธ์ คุณสามารถทำสิ่งต่อไปนี้:

let tensor3 = tensor1 + tensor2

รายการการดำเนินการทั้งหมดที่คุณสามารถทำได้บน Tensor มีอยู่ใน เอกสารประกอบ API

_การดำเนินงาน _Raw

การทำงานของ Tensor ได้รับการสนับสนุนโดยวิธีการทำงานกับตัวเร่งความเร็วที่แตกต่างกันสองวิธี แต่ก็มีอินเทอร์เฟซระดับสูงที่เป็นหนึ่งเดียว ภายใต้ประทุนนั้น การดำเนินการ _Raw ถูกกำหนดให้ส่งไปยังเวอร์ชัน _RawXLA หรือ _RawTFEager ขึ้นอยู่กับแบ็กเอนด์ที่ใช้สำหรับ Tensor ที่เป็นปัญหา การเชื่อมโยง _Raw เหล่านี้กับ TensorFlow หรือ X10 จะถูกสร้างขึ้นโดยอัตโนมัติ

โดยปกติ คุณไม่จำเป็นต้องโต้ตอบกับการดำเนินการ _Raw โดยตรง อินเทอร์เฟซ Idiomatic Swift ได้รับการสร้างขึ้นจากสิ่งเหล่านี้ และนั่นคือวิธีการคำนวณ Tensor โดยทั่วไป

อย่างไรก็ตาม การดำเนินการพื้นฐานของ TensorFlow ไม่ใช่ทั้งหมดที่มีอินเทอร์เฟซ Swift ที่ตรงกัน ดังนั้นคุณอาจต้องเข้าถึงตัวดำเนินการ _Raw ในโค้ดของคุณเป็นครั้งคราว หากคุณต้องการทำเช่นนั้น มี บทช่วยสอนแบบโต้ตอบ เพื่อสาธิตวิธีการทำงาน