Shape

lớp cuối cùng công khai

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
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.
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
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
thêm vào ( 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.
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 đại diện cho 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ới Shape(UNKNOWN_SIZE) hoặc Shape(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)Shape.unknown() . Nó không tương thích với, ví dụ: Shape(32) , Shape(32, UNKNOWN_SIZE, 1) hoặc Shape(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)Shape.unknown() . Ví dụ: nó không tương thích với Shape(32, 1, 784) hoặc Shape(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()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.

đuôi công khai ()

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 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.