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를 만듭니다.

상속된 메서드

부울
같음 (개체 arg0)
마지막 수업<?>
getClass ()
정수
해시코드 ()
최종 무효
알림 ()
최종 무효
통지모두 ()
toString ()
최종 무효
대기 (long arg0, int arg1)
최종 무효
기다리세요 (긴 arg0)
최종 무효
기다리다 ()

전지

공개 정적 긴 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이 아닙니다.