TensorLabel

lớp công khai TensorLabel

TensorLabel là một trình bao bọc tiện ích cho TensorBuffers với 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ó một tensor đầu ra có hình dạng {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ể hãy gắn nhãn cho từng tensor phụ bằng tên hoặc 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 bản đồ từ nhãn được xác định trước đến tensor phụ. Trong trường hợp này, nếu cung cấp 10 nhãn cho trục 2, TensorLabel có thể chuyển đổi {1, 10} Tensor ban đầu thành bản đồ 10 phần tử, mỗi giá trị mà 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 ánh xạ cho nhãn đầu tiên có kích thước lớn hơn hơn 1.

Công ty xây dựng công cộng

TensorLabel(Bản đồ<IntegerList<Chuỗi>> axis buộc, 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(List<String> axislabels, TensorBuffer tensorBuffer)
Tạo một đối tượng TensorLabel có thể gắn nhãn trên một trục của các tensor đa chiều.

Phương thức công khai

Danh sách<Danh mục>
getCategoryList()
Lấy danh sách Category từ đối tượng TensorLabel.
Bản đồ<StringFloat>
getMapWithFloatValue()
Nhận bản đồ liên kết nhãn để nổi.
Bản đồ<StringTensorBuffer>
getMapWithTensorBuffer()
Lấy bản đồ bằng một cặp nhãn và TensorBuffer tương ứng.

Phương thức kế thừa

Công ty xây dựng công cộng

công khai TensorLabel (Bản đồ<Số nguyênDanh sách<Chuỗi>> axislabels, 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.

Tham số
axisLabels Một bản đồ có khoá là mã trục (bắt đầu từ 0) và giá trị 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 là giá trị rỗng hoặc bất kỳ giá trị nào giá trị trong axisLabels là rỗng.
IllegalArgumentException nếu có khoá nào trong axisLabels nằm ngoài phạm vi (so với hình dạng của tensorBuffer hoặc giá trị (nhãn) bất kỳ có kích thước khác với tensorBuffer trên kích thước nhất định.

công khai TensorLabel (Danh sách<Chuỗi> axislabels, TensorBuffer tensorBuffer)

Tạo một đối tượng TensorLabel có thể gắn nhãn trên một trục của các 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.

Tham số
axisLabels Danh sách các nhãn, có kích thước phải bằ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 từ đối tượng TensorLabel.

Trục của nhãn phải là trục cuối cùng thực sự (có nghĩa là mỗi tensor phụ được chỉ định bởi trục này sẽ có kích thước phẳng là 1), sao cho mỗi tensor phụ được gắn nhãn có thể là được chuyển đổi thành đ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ì bạn không thể chuyển đổi trục đó thành Category.

getMapWithFloatValue() là phương án thay thế nhưng trả về Map dưới dạng kết quả.

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

công khai Bản đồ<StringFloat> getMapWithFloatValue ()

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

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

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

công khai Bản đồ<StringTensorBuffer> getMapWithTensorBuffer ()

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