TensorLabel

lớp công khai TensorLabel

TensorLabel là một trình bao bọc tiện dụng 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 tenxơ đầu ra có 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 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 đơn giản trong TensorBuffer thành bản đồ từ các nhãn được xác định trước sang các tensor phụ. Trong trường hợp này, nếu được 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ị trong đó là Tensor có hình dạng {} (vô hướng). Ví dụ 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-to-map cho nhãn đầu tiên có kích thước lớn hơn 1.

Nhà xây dựng công cộng

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

Phương pháp công cộng

Danh sách < Danh mục >
getDanh sách danh mục ()
Lấy danh sách Category từ đối tượng TensorLabel .
Bản đồ < Chuỗi , Nổi >
getMapWithFloatValue ()
Nhận một bản đồ ánh xạ nhãn để nổi.
Bản đồ < Chuỗi , TensorBuffer >
getMapWithTensorBuffer ()
Lấy bản đồ với một cặp nhãn và TensorBuffer tương ứng.

Phương pháp kế thừa

Nhà xây dựng công cộng

TensorLabel công khai ( Bản đồ < Số nguyên , Danh sách < Chuỗi >> axisLabels, TensorBuffer tensorBuffer)

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

Thông số
trụcNhãn Bản đồ có khóa là id 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 đó.
bộ đệm tensor TensorBuffer cần được gắn nhãn.
Ném
NullPointerNgoại lệ nếu axisLabels hoặc tensorBuffer là null hoặc bất kỳ giá trị nào trong axisLabels là null.
Ngoại lệ Đối số bất hợp pháp nếu bất kỳ khóa 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ị (nhãn) nào có kích thước khác với tensorBuffer trên thứ nguyên đã cho.

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

Tạo một đối tượng TensorLabel có khả năng 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 tenxơ là [1, 10, 3] thì 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ố
trụcNhãn 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.
bộ đệm tensor TensorBuffer cần được gắn nhãn.

Phương pháp công cộng

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

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

Trục của nhãn thực sự 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), sao cho mỗi tensor phụ được gắn nhãn có thể được chuyển đổi thành điểm giá trị float. Ví dụ: Một 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, nó không thể được chuyển đổi thành Category .

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

Ném
Ngoại lệ nhà nước bất hợp pháp nếu kích thước của một tenxơ phụ trên mỗi nhãn không phải là 1.

Bản đồ công khai < String , Float > getMapWithFloatValue ()

Nhận một bản đồ ánh xạ 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 1 và trục đó thực sự 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).

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

Ném
Ngoại lệ nhà nước bất hợp pháp nếu kích thước của một tenxơ phụ trên mỗi nhãn không phải là 1.

Bản đồ công khai < String , TensorBuffer > getMapWithTensorBuffer ()

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