API Swift dành cho TensorFlow sử dụng loại Tensor
làm phương tiện chính để thực hiện tính toán tăng tốc. Tensor
đại diện cho một mảng giá trị đa chiều và các hoạt động trên Tensor
s được tự động gửi đến các bộ tăng tốc có sẵn bằng cách sử dụng một trong hai chương trình phụ trợ.
Một Tensor
có tính chất chung chung về loại giá trị mà nó chứa. Loại của các giá trị này phải tuân theo TensorFlowScalar
, với các loại phổ biến là Float
, Int32
và Bool
. Ví dụ: để khởi tạo hai Tensor
chứa Float
với một số giá trị được xác định trước, bạn có thể thực hiện như sau:
let tensor1 = Tensor<Float>([0.0, 1.0, 2.0])
let tensor2 = Tensor<Float>([1.5, 2.5, 3.5])
Nếu bạn bỏ tham số loại <Float>
, Swift sẽ suy ra một loại Tensor<Double>
. Double
là loại mặc định cho các ký tự dấu phẩy động trong Swift. Giá trị Float
có xu hướng phổ biến hơn trong tính toán học máy, vì vậy chúng tôi đang sử dụng giá trị đó ở đây.
Nhiều toán tử phổ biến hoạt động trên Tensor
s. Ví dụ: để cộng hai trong số chúng và thu được kết quả, bạn có thể làm như sau:
let tensor3 = tensor1 + tensor2
Danh sách đầy đủ các thao tác bạn có thể thực hiện trên Tensor
có sẵn trong tài liệu API .
_Raw
động thô
Các hoạt động Tensor
được hỗ trợ bởi hai phương tiện làm việc khác nhau với bộ tăng tốc, nhưng chúng có giao diện cấp cao thống nhất. Dưới mui xe, các hoạt động _Raw
được xác định sẽ gửi tới các phiên bản _RawXLA
hoặc _RawTFEager
, tùy thuộc vào phần phụ trợ được sử dụng cho các Tensor
được đề cập. Các liên kết _Raw
này với TensorFlow hoặc X10 được tạo tự động.
Thông thường, bạn sẽ không cần phải tương tác trực tiếp với các thao tác _Raw
. Các giao diện Swift thành ngữ đã được xây dựng dựa trên những giao diện này và đó là cách bạn thường thực hiện các phép tính Tensor
.
Tuy nhiên, không phải tất cả các hoạt động cơ bản của TensorFlow đều có giao diện Swift phù hợp, do đó, đôi khi bạn có thể cần truy cập các toán tử _Raw
trong mã của mình. Nếu bạn cần làm như vậy, có sẵn hướng dẫn tương tác để minh họa cách thức hoạt động của tính năng này.