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 đồ<Integer, List<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 đồ<String, Float> |
getMapWithFloatValue()
Nhận bản đồ liên kết nhãn để nổi.
|
| Bản đồ<String, TensorBuffer> |
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ên, Danh 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 đồ<String, Float> 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 đồ<String, TensorBuffer> 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.