TensorLabel

lớp công khai TensorLabel

TensorLabel là một trình bao bọc tiện dụng cho TensorBuffers có các nhãn có ý nghĩa trên một trục.

Ví dụ: một mô hình phân loại hình ảnh có thể có tensor đầu ra với hình dạng là {1, 10}, trong đó 1 là kích thước lô và 10 là số lượng danh mục. Trên thực tế, trên trục thứ 2, chúng ta có thể gắn nhãn cho mỗi tensor con bằng tên hoặc nội dung mô tả của từng danh mục tương ứng. TensorLabel có thể giúp chuyển đổi Tensor thuần tuý trong TensorBuffer thành một bản đồ từ các nhãn được xác định trước thành tensor phụ. Trong trường hợp này, nếu cung cấp 10 nhãn cho trục thứ 2, TensorLabel có thể chuyển đổi Tensor {1, 10} ban đầu thành bản đồ 10 phần tử, mỗi giá trị là Tensor có hình dạng {} (vô hướng). Ví dụ về cách sử dụng:

   TensorBuffer outputTensor = ...;
   List<String> labels = FileUtil.loadLabels(context, labelFilePath);
   // labels the first axis with size greater than one
   TensorLabel labeled = new TensorLabel(labels, outputTensor);
   // If each sub-tensor has effectively size 1, we can directly get a float value
   Map<String, Float> probabilities = labeled.getMapWithFloatValue();
   // Or get sub-tensors, when each sub-tensor has elements more than 1
   Map<String, TensorBuffer> subTensors = labeled.getMapWithTensorBuffer();
 

Lưu ý: hiện tại, chúng tôi chỉ hỗ trợ chuyển đổi tensor sang bản đồ cho nhãn đầu tiên có kích thước lớn hơn 1.

Công trình công cộng

TensorLabel(Bản đồ<Số nguyênDanh sách<Chuỗi>> Trục các nhãn, TensorBuffer tensorBuffer)
Tạo một đối tượng TensorLabel có thể gắn nhãn trên các trục của tensor đa chiều.
TensorLabel(Danh sách<Chuỗi> Trục các nhãn, TensorBuffer tensorBuffer)
Tạo một đối tượng TensorLabel có thể gắn nhãn trên một trục của tensor đa chiều.

Phương thức công khai

List<Category>
Hàm getCategoryList()
Lấy danh sách Category qua đối tượng TensorLabel.
Map<StringFloat>
Hàm getMapWithFloatValue()
Lấy một bản đồ ánh xạ nhãn thành số thực có độ chính xác đơn.
Map<StringTensorBuffer>
Hàm getMapWithTensorBuffer()
Lấy bản đồ bằng một cặp nhãn và TensorBuffer tương ứng.

Các phương thức kế thừa

Công trình công cộng

công khai TensorLabel (Bản đồ<IntegerDanh sách<Chuỗi>> TrụcLabel, TensorBuffer tensorBuffer)

Tạo một đối tượng TensorLabel có thể gắn nhãn trên các trục của tensor đa chiều.

Thông số
axisLabels Một bản đồ có khoá là mã trục (bắt đầu từ 0) và giá trị là các nhãn tương ứng. Lưu ý: Kích thước của nhãn phải giống với kích thước của tensor trên trục đó.
tensorBuffer TensorBuffer sẽ được gắn nhãn.
Gửi
NullPointerException nếu axisLabels hoặc tensorBuffer có giá trị rỗng, hoặc bất kỳ giá trị nào trong axisLabels đều rỗng.
IllegalArgumentException nếu bất kỳ khoá nào trong axisLabels nằm ngoài phạm vi (so với hình dạng của tensorBuffer, hoặc bất kỳ giá trị nào (nhãn) có kích thước khác với tensorBuffer theo kích thước đã cho.

công khai TensorLabel (Danh sách<Chuỗi> Trục các nhãn, TensorBuffer tensorBuffer)

Tạo một đối tượng TensorLabel có thể gắn nhãn trên một trục của tensor đa chiều.

Lưu ý: Nhãn được áp dụng trên trục đầu tiên có kích thước lớn hơn 1. Ví dụ: nếu hình dạng của tensor là [1, 10, 3], các nhãn sẽ được áp dụng trên trục 1 (id bắt đầu từ 0) và kích thước của axisLabels cũng phải là 10.

Thông số
axisLabels Danh sách các nhãn có kích thước phải giống với kích thước của tensor trên trục được gắn nhãn.
tensorBuffer TensorBuffer sẽ được gắn nhãn.

Phương thức công khai

công khai Danh sách<Danh mục> getCategoryList ()

Lấy danh sách Category qua đối tượng TensorLabel.

Trục của nhãn phải là trục cuối cùng (có nghĩa là mỗi tensor phụ được chỉ định bởi trục này phải có kích thước phẳng là 1), để mỗi tensor phụ được gắn nhãn có thể được chuyển đổi thành một điểm giá trị số thực. Ví dụ: TensorLabel có hình dạng {2, 5, 3} và trục 2 là hợp lệ. Nếu trục là 1 hoặc 0 thì không chuyển đổi được trục này thành Category.

getMapWithFloatValue() là một giải pháp thay thế nhưng kết quả trả về là Map.

Gửi
IllegalStateException nếu kích thước của tensor con trên mỗi nhãn không phải là 1.

công khai Map<StringFloat> getMapWithFloatValue ()

Lấy một bản đồ ánh xạ nhãn thành số thực có độ chính xác đơn. Chỉ cho phép ánh xạ trên trục đầu tiên có kích thước lớn hơn 1 và trục này phải là trục cuối cùng (nghĩa là mỗi tensor phụ do trục này chỉ định phải có kích thước phẳng là 1).

getCategoryList() là một API thay thế để nhận kết quả.

Gửi
IllegalStateException nếu kích thước của tensor con trên mỗi nhãn không phải là 1.

công khai Bản đồ<ChuỗiTensorBuffer> getMapWithTensorBuffer ()

Lấy bản đồ bằng một cặp nhãn và TensorBuffer tương ứng. Hiện chỉ cho phép liên kết trên trục đầu tiên có kích thước lớn hơn 1.