Tổng quan về tensor

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 Tensortí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 , Int32Bool . 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.