Shape

공개 최종 수업 모양

Tensor 또는 NdArray 의 모양입니다.

Shape 는 축을 따라 크기를 정의합니다. 축 중 하나에 대해 알 수 없는 크기가 포함되어 있거나 완전히 알려지지 않았을 수 있으며, 이 경우 축 수조차 알려지지 않았습니다. 축의 크기를 알 수 없는 경우 UNKNOWN_SIZE 크기로 사용해야 합니다.

필드

공개 정적 긴 UNKNOWN_SIZE 알 수 없는 축의 크기 또는 알 수 없는 Shape의 알 수 없는 총 크기입니다.

공개 방법

모양
추가 (긴 lastDimension)
새로운 마지막 차원이 추가된 새 Shape를 반환합니다.
모양
추가 (다른 모양 )
다른 Shape의 치수가 추가된 새 Shape를 반환합니다.
긴[]
asArray ()
이 Shape 축의 방어 복사본을 반환합니다.
부울
같음 (객체 객체)
Shapes 구현과 동일합니다.
부울
hasUnknownDimension ()
이 Shape의 하나 이상의 차원에 알 수 없는 크기가 있는지 여부를 반환합니다.
정수
모양
머리 ()
이 Shape의 첫 번째 차원과 일치하는 첫 번째 차원을 갖는 1차원 Shape를 반환합니다.
정적 부울
isCompatible (긴 희미함, 긴 otherDim)
두 가지 모양 치수가 호환되는지 테스트합니다.
부울
isCompatibleWith ( 모양 모양)
다른 모양이 이 모양과 호환되는지 여부를 결정합니다.
부울
isMatrix ()
이 Shape가 행렬의 형태인지 여부를 반환합니다.
부울
isScalar ()
이 Shape가 스칼라를 나타내는지 여부를 반환합니다.
부울
알 수 없음 ()
이 Shape의 차원수를 알 수 없는지 여부를 반환합니다.
부울
is벡터 ()
이 Shape가 벡터의 모양인지 여부를 반환합니다.
정수
numDimensions ()
이 Shape의 차원 수를 반환합니다.
정적 모양
( 긴... 차원 크기)
스칼라 또는 N차원 값을 나타내는 Shape를 만듭니다.
모양
앞에 추가 (다른 모양 )
다른 Shape의 크기가 앞에 추가된 새 Shape를 반환합니다.
모양
앞에 추가 (긴 firstDimension)
새로운 첫 번째 차원이 추가된 새 Shape를 반환합니다.
정적 모양
스칼라 ()
스칼라 값을 나타내는 Shape를 만듭니다.
크기 (int i)
지정된 인덱스가 있는 차원의 크기입니다.
사이즈 ()
이 Shape를 가진 Tensor가 가질 요소의 총 개수를 반환합니다.
모양
subShape (int 시작, int 끝)
begin 부터 end 이 Shape와 일치하는 차원을 갖는 end - begin 차원 모양을 반환합니다.
모양
꼬리 ()
이 Shape의 첫 번째 차원이 제거된 새 Shape를 반환합니다.
모양
(int n)을 취하다
이 도형의 처음 n 차원과 일치하는 차원을 가진 n차원 도형을 반환합니다.
모양
takeLast (int n)
이 Shape의 마지막 n 차원과 일치하는 차원을 가진 n차원 Shape를 반환합니다.
toString ()
디버깅을 위한 Shape에 대한 간결한 설명입니다.
정적 모양
알려지지 않은 ()
알 수 없는 차원 수를 나타내는 Shape를 만듭니다.

상속된 메서드

필드

공개 정적 긴 UNKNOWN_SIZE

알 수 없는 축의 크기 또는 알 수 없는 Shape의 알 수 없는 총 크기입니다.

공개 방법

공개 모양 추가 (긴 lastDimension)

새로운 마지막 차원이 추가된 새 Shape를 반환합니다. 이 호출이 성공하려면 isUnknown() false 여야 합니다.

매개변수
마지막차원 추가할 치수
보고
  • 이 Shape의 차원 다음에 주어진 차원이 따라오는 새로운 Shape, 결코 null이 아니다

공개 Shape 추가 ( Shape 기타)

다른 Shape의 치수가 추가된 새 Shape를 반환합니다. 이 Shape와 다른 Shape 모두에 대해 isUnknown() false를 반환해야 합니다. 예: @code Shape.of(3,4).append(Shape.of(1,2)) => Shape.of(3,4,1,2) }

매개변수
다른 다른 모양은 null 이거나 알 수 없어야 합니다.
보고
  • 이 Shape의 차원과 지정된 Shape의 차원으로 구성된 새로운 Shape

공개 long[] asArray ()

이 Shape 축의 방어 복사본을 반환합니다. 이 Shape의 상태를 변경하지 않도록 반환된 배열을 변경합니다. isUnknown() true인 경우 null을 반환합니다.

공개 부울은 (객체 obj)와 같습니다 .

Shapes 구현과 동일합니다. 다음과 같은 경우 두 모양이 동일한 것으로 간주됩니다.

  • 차원의 수가 정의되고 둘 다 동일합니다.
  • 각 차원의 크기가 정의되고 두 차원 모두 동일합니다.

두 Shape 중 하나에 알 수 없는 차원이 있거나(둘 다 동일하더라도) 두 셰이프 중 하나에 알 수 없는 개수의 차원이 있는 경우(둘 다 isUnknown() 에 대해 true 반환하더라도) 동일한 것으로 간주되지 않습니다! 그러나 모양은 알 수 없거나 크기를 알 수 없는 경우에도 항상 그 자체와 동일합니다.

공개 부울 hasUnknownDimension ()

이 Shape의 하나 이상의 차원에 알 수 없는 크기가 있는지 여부를 반환합니다.

공개 int hashCode ()

공개 모양 머리 ()

이 Shape의 첫 번째 차원과 일치하는 첫 번째 차원을 갖는 1차원 Shape를 반환합니다.

공개 정적 부울 isCompatible (긴 희미함, 긴 otherDim)

두 가지 모양 치수가 호환되는지 테스트합니다.

두 차원 중 하나가 Shape.UNKNOWN_SIZE 이거나 두 차원이 모두 동일한 경우 차원이 호환됩니다.

매개변수
어둑한 첫 번째 차원
otherDim 두 번째 차원
보고
  • true(두 차원이 모두 호환되는 경우)

공개 부울 isCompatibleWith ( 모양 모양)

다른 모양이 이 모양과 호환되는지 여부를 결정합니다.

두 모양이 모두 나타낼 수 있는 완전히 정의된 모양이 있는 경우 부분적으로 정의될 수 있는 두 모양이 호환됩니다. 따라서 호환성을 통해 모양 추론 코드는 부분적으로 정의된 모양을 추론할 수 있습니다. 예를 들어:

  • Shape.unknown() 모든 모양과 호환됩니다.
  • Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)Shape(32, 784)Shape.unknown() 과 같은 모든 2차원 도형과 호환됩니다. 예를 들어 Shape(UNKNOWN_SIZE) 또는 Shape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE) 와 호환되지 않습니다.
  • Shape(32, UNKNOWN_SIZE) 는 0차원에서 크기가 32인 모든 2차원 도형과 호환되며 Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)Shape.unknown() 도 호환됩니다. 예를 들어 Shape(32) , Shape(32, UNKNOWN_SIZE, 1) 또는 Shape(64, UNKNOWN_SIZE) 와 호환되지 않습니다.
  • Shape(32, 784) 는 그 자체와 호환되며 Shape(32, UNKNOWN_SIZE) , Shape(UNKNOWN_SIZE, 784) , Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)Shape.unknown() 도 호환됩니다. 예를 들어 Shape(32, 1, 784) 또는 Shape(UNKNOWN_SIZE) 와 호환되지 않습니다.

호환성 관계는 반사적이고 대칭적이지만 추이적이지는 않습니다. 예를 들어 Shape(32, 784)Shape.unknown() 과 호환되고 Shape.unknown() Shape(4, 4) 와 호환되지만 Shape(32, 784)Shape(4, 4) 와 호환되지 않습니다. Shape(4, 4) .

호환성은 방송과 다릅니다. 호환 가능한 도형은 동일한 수의 차원을 가져야 하며 각 차원 쌍에 대해 한 차원은 다른 차원과 동일해야 하거나 쌍의 차원 중 하나 이상이 UNKNOWN_SIZE여야 합니다.

브로드캐스팅에서는 다양한 차원이 허용되지만 쌍을 이루는 차원은 동일하거나 한 차원이 1이어야 합니다. 한 도형의 차원이 다른 도형보다 작은 경우 더 작은 도형은 차원 1로 "늘어납니다".

매개변수
모양 다른 모양
보고
  • 두 셰이프가 호환되는 경우 true입니다.

공개 부울 isMatrix ()

이 Shape가 행렬의 형태인지 여부를 반환합니다.

공개 부울 isScalar ()

이 Shape가 스칼라를 나타내는지 여부를 반환합니다.

공개 부울은 알 수 없음 ()

이 Shape의 차원수를 알 수 없는지 여부를 반환합니다.

공개 부울 isVector ()

이 Shape가 벡터의 모양인지 여부를 반환합니다.

공개 int numDimensions ()

이 Shape의 차원 수를 반환합니다. 알 수 없는 경우 -1, 스칼라의 경우 0, 벡터의 경우 1, 행렬의 경우 2 등입니다.

공개 정적 모양 ( 긴... 차원 크기)

스칼라 또는 N차원 값을 나타내는 Shape를 만듭니다.

각 차원에 대해 제공된 크기를 사용하여 스칼라 또는 N차원 값(N은 1 이상)을 나타내는 Shape를 만듭니다. -1은 해당 차원의 크기를 알 수 없음을 나타냅니다. 크기가 제공되지 않으면 스칼라를 나타내는 Shape가 생성됩니다. 예:

// 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()
 

매개변수
차원크기 이 도형의 각 차원에 있는 요소 수(있는 경우), 알 수 없는 경우 UNKNOWN_SIZE .
보고
  • 새로운 모양

공개 모양 앞에 추가 (다른 모양 )

다른 Shape의 크기가 앞에 추가된 새 Shape를 반환합니다. 이 Shape와 다른 Shape 모두에 대해 isUnknown() false를 반환해야 합니다. 예: Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)

매개변수
다른 다른 모양은 null 이거나 알 수 없어야 합니다.
보고
  • 주어진 Shape의 차원과 그 뒤의 이 Shape의 차원으로 구성된 새로운 Shape. 절대 null이 아닙니다.

공개 모양 앞에 추가 (긴 firstDimension)

새로운 첫 번째 차원이 추가된 새 Shape를 반환합니다. 이 호출이 성공하려면 isUnknown() false 여야 합니다.

매개변수
첫 번째 차원 앞에 추가할 치수
보고
  • 지정된 차원이 먼저 있고 그 뒤에 이 Shape의 차원이 오는 새 모양. 절대 null이 아닙니다.

공개 정적 모양 스칼라 ()

스칼라 값을 나타내는 Shape를 만듭니다.

보고
  • isScalar() 가 true인 차원이 없는 Shape이며 null이 아닙니다.

공개 긴 크기 (int i)

지정된 인덱스가 있는 차원의 크기입니다.

isUnknown() 이 true이거나 지정된 인덱스가 있는 차원의 크기를 알 수 없는 경우 UNKNOWN_SIZE 반환됩니다.

매개변수
크기를 구할 차원의 인덱스입니다. 이 Shape에 알려진 차원 수가 있는 경우 < numDimensions() 여야 합니다. 인덱스는 음수일 수 있으며, 이 경우 위치는 모양의 끝에서부터 계산됩니다. 예: size(-1) 마지막 차원의 크기를 반환하고, size(-2) 두 번째에서 마지막 차원의 크기 등을 반환합니다.
보고
  • 알려진 경우 지정된 인덱스가 있는 차원의 크기이고, 그렇지 않은 경우 UNKNOWN_SIZE .

퍼블릭 롱 사이즈 ()

이 Shape를 가진 Tensor가 가질 요소의 총 개수를 반환합니다.

isUnknown() 이 true이거나 hasUnknownDimension() 이 true이면 UNKNOWN_SIZE 가 반환됩니다.

보고
  • 계산할 수 있는 경우 이 모양을 가진 Tensor가 가질 요소의 총 개수입니다. 그렇지 않으면 UNKNOWN_SIZE .

공개 Shape subShape (int 시작, int 끝)

begin 부터 end 이 Shape와 일치하는 차원을 갖는 end - begin 차원 모양을 반환합니다.

매개변수
시작하다 하위 모양을 시작할 위치입니다.
하위 모양의 끝 위치(배타적)입니다.
보고
  • 시작과 끝으로 둘러싸인 하위 모양.

공개 모양 꼬리 ()

이 Shape의 첫 번째 차원이 제거된 새 Shape를 반환합니다.

공개 형태 취함 (int n)

이 도형의 처음 n 차원과 일치하는 차원을 가진 n차원 도형을 반환합니다.

매개변수
N 가져올 선행 차원의 수는 numDimensions() 보다 <=이어야 합니다.
보고
  • 이 Shape의 처음 n 차원과 일치하는 처음 n 차원을 갖는 n차원 Shape

공개 모양 takeLast (int n)

이 Shape의 마지막 n 차원과 일치하는 차원을 가진 n차원 Shape를 반환합니다.

매개변수
N 가져올 후행 차원의 수는 numDimensions() 보다 <=이어야 합니다.
보고
  • 이 Shape의 마지막 n 차원과 일치하는 차원을 갖는 n차원 셰이프. 절대로 null이 아닙니다.

공개 문자열 toString ()

디버깅을 위한 Shape에 대한 간결한 설명입니다.

공개 정적 형태 알 수 없음 ()

알 수 없는 차원 수를 나타내는 Shape를 만듭니다.

보고
  • isUnknown() 이 true인 Shape이며 null이 아닙니다.