Hình dạng của Tensor hoặc NdArray
.
Shape
xác định kích thước dọc theo trục của nó. Nó có thể chứa kích thước không xác định đối với một trong các trục hoặc có thể hoàn toàn không xác định được, trong trường hợp đó thậm chí số lượng trục cũng không được biết. Nếu kích thước của trục không xác định thì nên sử dụng UNKNOWN_SIZE
làm kích thước của trục.
Trường
công tĩnh dài | UNKNOWN_SIZE | Kích thước của trục không xác định hoặc tổng kích thước không xác định đối với Hình dạng không xác định. |
Phương pháp công cộng
Hình dạng | nối thêm (kích thước cuối cùng dài) Trả về một Hình dạng mới, với kích thước cuối cùng mới được thêm vào. |
Hình dạng | |
dài[] | asArray () Trả về bản sao phòng thủ của các trục của Hình dạng này. |
boolean | bằng (Đối tượng obj) Triển khai tương đương cho Hình dạng. |
boolean | hasUnknownDimension () Trả về xem một hoặc nhiều kích thước của Hình dạng này có kích thước không xác định. |
int | mã băm () |
Hình dạng | cái đầu () Trả về Hình dạng 1 chiều với chiều thứ nhất khớp với chiều thứ nhất của Hình dạng này. |
boolean tĩnh | isCompatible (dim dài, long otherDim) Kiểm tra xem hai kích thước hình dạng có tương thích hay không. |
boolean | isCompatibleWith ( Hình dạng) Xác định xem hình dạng khác có tương thích với hình dạng này hay không. |
boolean | isMatrix () Trả về xem Hình dạng này có phải là hình dạng của ma trận hay không |
boolean | làScalar () Trả về xem Hình dạng này có đại diện cho một đại lượng vô hướng hay không. |
boolean | là Không xác định () Trả về số lượng kích thước của Hình dạng này có phải là không xác định hay không. |
boolean | isVector () Trả về xem Hình dạng này có phải là hình dạng của vectơ hay không. |
int | numKích thước () Trả về số kích thước của Hình dạng này. |
hình dạng tĩnh | của (dài... kích thước) Tạo Hình dạng biểu thị giá trị vô hướng hoặc N chiều. |
Hình dạng | |
Hình dạng | trả trước (thứ nguyên đầu tiên dài) Trả về một Hình dạng mới, với chiều thứ nguyên đầu tiên mới được thêm vào. |
hình dạng tĩnh | vô hướng () Tạo một Hình dạng biểu thị một giá trị vô hướng. |
dài | kích thước (int i) Kích thước của kích thước với chỉ số đã cho. |
dài | kích cỡ () Trả về tổng số phần tử mà Tensor có Hình dạng này sẽ có. |
Hình dạng | hình dạng con (int bắt đầu, int kết thúc) Trả về một hình dạng có chiều end - begin với các kích thước khớp với Hình dạng này từ begin đến end . |
Hình dạng | đuôi () Trả về một Hình dạng mới, với chiều thứ nhất của Hình dạng này đã bị loại bỏ. |
Hình dạng | lấy (int n) Trả về Hình dạng n chiều có kích thước khớp với n kích thước đầu tiên của hình dạng này |
Hình dạng | takeLast (int n) Trả về một Hình dạng n chiều với các kích thước khớp với n kích thước cuối cùng của Hình dạng này. |
Sợi dây | toString () Mô tả ngắn gọn về Hình dạng dùng để gỡ lỗi. |
hình dạng tĩnh | không rõ () Tạo một Hình dạng đại diện cho một số kích thước không xác định. |
Phương pháp kế thừa
Trường
tĩnh công khai dài UNKNOWN_SIZE
Kích thước của trục không xác định hoặc tổng kích thước không xác định đối với Hình dạng không xác định.
Phương pháp công cộng
phần bổ sung Hình dạng công khai (kích thước cuối cùng dài)
Trả về một Hình dạng mới, với kích thước cuối cùng mới được thêm vào. Để lệnh gọi này thành công, isUnknown()
phải là false
.
Thông số
kích thước cuối cùng | kích thước để nối thêm |
---|
Trả lại
- một Hình dạng mới có các kích thước của Hình dạng này theo sau là kích thước đã cho, không bao giờ rỗng
Hình dạng công cộng nối thêm ( Hình dạng khác)
Trả về một Hình dạng mới, với các kích thước của Hình dạng khác được thêm vào. Đối với cả Hình dạng này và Hình dạng khác, isUnknown()
phải trả về false. Ví dụ: @code Shape.of(3,4).append(Shape.of(1,2)) => Shape.of(3,4,1,2) }
Thông số
khác | Hình dạng khác, không được null , không được biết |
---|
Trả lại
- Hình dạng mới bao gồm các kích thước của Hình dạng này, theo sau là các kích thước của Hình dạng đã cho
công khai dài[] asArray ()
Trả về bản sao phòng thủ của các trục của Hình dạng này. Thay đổi mảng được trả về để không thay đổi trạng thái của Hình dạng này. Trả về null nếu isUnknown()
là đúng.
boolean công khai bằng (Object obj)
Triển khai tương đương cho Hình dạng. Hai hình dạng được coi là bằng nhau nếu:
- số lượng kích thước được xác định và bằng nhau cho cả hai
- kích thước của mỗi chiều được xác định và bằng nhau cho cả hai
Nếu một trong hai Hình dạng có kích thước không xác định (ngay cả khi chúng giống nhau ở cả hai) hoặc nếu một trong hai hình dạng có số kích thước không xác định (ngay cả khi cả hai đều trả về true
cho isUnknown()
), thì chúng không được coi là bằng nhau! Tuy nhiên, một hình sẽ luôn bằng chính nó, ngay cả khi nó không xác định hoặc chứa các kích thước không xác định.
boolean công khai hasUnknownDimension ()
Trả về xem một hoặc nhiều kích thước của Hình dạng này có kích thước không xác định.
mã băm int công khai ()
đầu hình dạng công cộng ()
Trả về Hình dạng 1 chiều với chiều thứ nhất khớp với chiều thứ nhất của Hình dạng này.
boolean tĩnh công khai isCompatible (long dim, long otherDim)
Kiểm tra xem hai kích thước hình dạng có tương thích hay không.
Các thứ nguyên tương thích nếu một trong hai thứ nguyên là Shape.UNKNOWN_SIZE
hoặc cả hai thứ nguyên đều bằng nhau
Thông số
mờ | chiều thứ nhất |
---|---|
khácDim | chiều thứ hai |
Trả lại
- đúng, nếu cả hai chiều đều tương thích
boolean công khai isCompatibleWith ( Hình dạng)
Xác định xem hình dạng khác có tương thích với hình dạng này hay không.
Hai hình dạng có thể được xác định một phần sẽ tương thích nếu tồn tại một hình dạng được xác định đầy đủ mà cả hai hình dạng đều có thể biểu diễn. Do đó, tính tương thích cho phép mã suy luận hình dạng suy luận về các hình dạng được xác định một phần. Ví dụ:
-
Shape.unknown()
tương thích với tất cả các hình dạng. -
Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
tương thích với tất cả các hình dạng hai chiều, chẳng hạn nhưShape(32, 784)
và cảShape.unknown()
. Ví dụ: nó không tương thích vớiShape(UNKNOWN_SIZE)
hoặcShape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE)
. -
Shape(32, UNKNOWN_SIZE)
tương thích với tất cả các hình dạng hai chiều có kích thước 32 ở chiều thứ 0, cũng nhưShape(UNKNOWN_SIZE, UNKNOWN_SIZE)
vàShape.unknown()
. Nó không tương thích với, ví dụ:Shape(32)
,Shape(32, UNKNOWN_SIZE, 1)
hoặcShape(64, UNKNOWN_SIZE)
. -
Shape(32, 784)
tương thích với chính nó và cảShape(32, UNKNOWN_SIZE)
,Shape(UNKNOWN_SIZE, 784)
,Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
vàShape.unknown()
. Ví dụ: nó không tương thích vớiShape(32, 1, 784)
hoặcShape(UNKNOWN_SIZE)
.
Mối quan hệ tương thích có tính chất phản xạ và đối xứng nhưng không mang tính bắc cầu. Ví dụ: Shape(32, 784)
tương thích với Shape.unknown()
và Shape.unknown()
tương thích với Shape(4, 4)
, nhưng Shape(32, 784)
không tương thích với Shape(4, 4)
.
Khả năng tương thích không giống như phát sóng. Các hình dạng tương thích phải có cùng số thứ nguyên và đối với mỗi cặp thứ nguyên, một thứ nguyên phải bằng các thứ nguyên khác hoặc ít nhất một trong các thứ nguyên trong cặp phải là UNKNOWN_SIZE.
Việc phát sóng cho phép các kích thước khác nhau nhưng các kích thước được ghép nối phải bằng nhau hoặc một kích thước phải bằng 1. Nếu một hình có ít kích thước hơn hình khác thì hình nhỏ hơn sẽ được "kéo dài" với kích thước là 1.
Thông số
hình dạng | Hình dạng khác |
---|
Trả lại
- đúng, nếu hai hình dạng tương thích.
boolean công khai isMatrix ()
Trả về xem Hình dạng này có phải là hình dạng của ma trận hay không
boolean công khai isScalar ()
Trả về xem Hình dạng này có đại diện cho một đại lượng vô hướng hay không.
boolean công khai isUnknown ()
Trả về số lượng kích thước của Hình dạng này có phải là không xác định hay không.
boolean công khai isVector ()
Trả về xem Hình dạng này có phải là hình dạng của vectơ hay không.
public int numDimensions ()
Trả về số kích thước của Hình dạng này. -1 nếu không xác định, 0 cho đại lượng vô hướng, 1 cho vectơ, 2 cho ma trận, v.v.
hình dạng tĩnh công khai của (kích thước... chiều dài)
Tạo Hình dạng biểu thị giá trị vô hướng hoặc N chiều.
Tạo Hình dạng biểu thị giá trị vô hướng hoặc N chiều (N ít nhất là 1), với kích thước được cung cấp cho mỗi chiều. A -1 chỉ ra rằng kích thước của kích thước tương ứng là không xác định. Nếu không có kích thước nào được cung cấp thì Hình dạng đại diện cho vô hướng sẽ được tạo. Ví dụ:
// A 2-element vector.
Shape vector = Shape.of(2);
// A 2x3 matrix.
Shape matrix = Shape.of(2, 3);
// A matrix with 4 columns but an unknown number of rows.
// This is typically used to indicate the shape of tensors that represent
// a variable-sized batch of values. The Shape below might represent a
// variable-sized batch of 4-element vectors.
Shape batch = Shape.of(-1, 4);
// A scalar. For readability, you should prefer calling Shape.scalar()
Shape scalar = Shape.of()
Thông số
kích thướcKích thước | số phần tử trong mỗi chiều của hình này, nếu có, hoặc UNKNOWN_SIZE nếu không xác định. |
---|
Trả lại
- một hình dạng mới
Hình dạng công khai trả trước ( Hình dạng khác)
Trả về một Hình dạng mới, với các kích thước của Hình dạng khác được thêm vào trước. Đối với cả Hình dạng này và Hình dạng khác, isUnknown()
phải trả về false. Ví dụ: Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)
Thông số
khác | Hình dạng khác, không được null , không được biết |
---|
Trả lại
- Hình dạng mới bao gồm các kích thước của Hình dạng đã cho, theo sau là các kích thước của Hình dạng này, không bao giờ rỗng
Hình dạng công khai trả trước (thứ nguyên đầu tiên dài)
Trả về một Hình dạng mới, với chiều thứ nguyên đầu tiên mới được thêm vào. Để lệnh gọi này thành công, isUnknown()
phải là false
.
Thông số
kích thước đầu tiên | kích thước để thêm vào trước |
---|
Trả lại
- trước tiên là một hình dạng mới có kích thước nhất định, tiếp theo là kích thước của Hình dạng này, không bao giờ rỗng
hình dạng tĩnh công khai vô hướng ()
Tạo một Hình dạng biểu thị một giá trị vô hướng.
Trả lại
- Một Hình dạng không có kích thước mà
isScalar()
là đúng, không bao giờ rỗng.
kích thước dài công khai (int i)
Kích thước của kích thước với chỉ số đã cho.
Nếu isUnknown()
là đúng hoặc kích thước của thứ nguyên với chỉ mục đã cho có kích thước không xác định thì UNKNOWN_SIZE
sẽ được trả về.
Thông số
Tôi | chỉ mục của thứ nguyên để lấy kích thước. Nếu Hình dạng này có số kích thước đã biết thì nó phải là < numDimensions() . Chỉ số có thể âm, trong trường hợp đó vị trí được tính từ cuối hình. Ví dụ: size(-1) trả về kích thước của chiều cuối cùng, size(-2) kích thước của chiều thứ hai đến chiều cuối cùng, v.v. |
---|
Trả lại
- Kích thước của thứ nguyên với chỉ mục đã cho nếu biết, nếu không thì
UNKNOWN_SIZE
.
kích thước dài công khai ()
Trả về tổng số phần tử mà Tensor có Hình dạng này sẽ có.
Nếu isUnknown()
là đúng hoặc hasUnknownDimension()
là đúng thì UNKNOWN_SIZE
sẽ được trả về.
Trả lại
- Tổng số phần tử mà một Tensor có hình dạng này sẽ có nếu nó có thể được tính toán, nếu không thì
UNKNOWN_SIZE
.
hình dạng con công khai (int bắt đầu, int kết thúc)
Trả về một hình dạng có chiều end - begin
với các kích thước khớp với Hình dạng này từ begin
đến end
.
Thông số
bắt đầu | Bắt đầu hình dạng phụ từ đâu. |
---|---|
kết thúc | Nơi kết thúc hình dạng phụ, độc quyền. |
Trả lại
- hình dạng phụ được giới hạn bởi điểm bắt đầu và kết thúc.
Hình dạng công khai lấy (int n)
Trả về Hình dạng n chiều có kích thước khớp với n kích thước đầu tiên của hình dạng này
Thông số
N | số thứ nguyên hàng đầu cần lấy phải <= hơn numDimensions() |
---|
Trả lại
- Hình dạng n chiều có n chiều đầu tiên khớp với n chiều đầu tiên của Hình dạng này
hình dạng công khai takeLast (int n)
Trả về một Hình dạng n chiều với các kích thước khớp với n kích thước cuối cùng của Hình dạng này.
Thông số
N | số thứ nguyên cuối cần lấy phải <= hơn numDimensions() |
---|
Trả lại
- một hình dạng n chiều có kích thước khớp với n chiều cuối cùng của Hình dạng này, không bao giờ rỗng
Chuỗi công khai toString ()
Mô tả ngắn gọn về Hình dạng dùng để gỡ lỗi.
hình dạng tĩnh công khai không xác định ()
Tạo một Hình dạng đại diện cho một số kích thước không xác định.
Trả lại
- Hình dạng mà
isUnknown()
là đúng, không bao giờ rỗng.