Shape

パブリック最終クラスShape

Tensor またはNdArrayの形状。

Shapeは軸に沿ったサイズを定義します。軸の 1 つに不明なサイズが含まれているか、まったく不明の場合があり、その場合は軸の数さえもわかりません。軸のサイズが不明な場合は、 UNKNOWN_SIZEそのサイズとして使用する必要があります。

田畑

パブリック静的ロングUNKNOWN_SIZE不明な軸のサイズ、または不明なシェイプの不明な合計サイズ。

パブリックメソッド

追加(長い最後の次元)
新しい最後の寸法が追加された新しい Shape を返します。
追加(その他の形状)
別の Shape の寸法を追加した新しい Shape を返します。
長さ[]
asArray ()
この Shape の軸の防御コピーを返します。
ブール値
等しい(オブジェクトオブジェクト)
Shape の実装と同等です。
ブール値
未知の次元を持つ()
この Shape の 1 つ以上の寸法のサイズが不明かどうかを返します。
整数
()
最初の次元がこの Shape の最初の次元と一致する 1 次元の Shape を返します。
静的ブール値
互換性があります(長い調光、長いその他の調光)
2 つの形状寸法に互換性があるかどうかをテストして確認します。
ブール値
互換性があります(形状形状)
別のシェイプがこのシェイプと互換性があるかどうかを判断します。
ブール値
isMatrix ()
この Shape が行列の形状であるかどうかを返します。
ブール値
isScalar ()
この Shape がスカラーを表すかどうかを返します。
ブール値
不明です()
この Shape の次元数が不明かどうかを返します。
ブール値
isVector ()
この Shape がベクトルの形状であるかどうかを返します。
整数
numDimensions ()
この Shape の次元数を返します。
静的な形状
(長い...寸法サイズ)
スカラーまたは N 次元値を表す Shape を作成します。
先頭に追加(その他の形状)
別の Shape の寸法を先頭に付けた新しい Shape を返します。
先頭に追加(長い firstDimension)
新しい最初の次元が追加された新しい Shape を返します。
静的な形状
スカラー()
スカラー値を表す Shape を作成します。
長さ
サイズ(int i)
指定されたインデックスを持つディメンションのサイズ。
長さ
サイズ()
この Shape を持つ Tensor が持つ要素の合計数を返します。
subShape (int begin、int end)
この Shape のbeginからendまで一致する寸法を持つend - beginシェイプを返します。
しっぽ()
この Shape の最初の次元を削除した、新しい Shape を返します。
take (int n)
この形状の最初の n 次元と一致する次元を持つ n 次元の Shape を返します。
takeLast (int n)
この Shape の最後の n 次元と一致する次元を持つ n 次元 Shape を返します。
toString ()
デバッグを目的とした Shape の簡潔な説明。
静的な形状
未知()
未知の次元数を表す Shape を作成します。

継承されたメソッド

田畑

パブリック静的ロングUNKNOWN_SIZE

不明な軸のサイズ、または不明なシェイプの不明な合計サイズ。

パブリックメソッド

public Shape追加(long lastDimension)

新しい最後の寸法が追加された新しい Shape を返します。この呼び出しが成功するには、 isUnknown() falseである必要があります。

パラメーター
最後の次元追加する寸法
戻り値
  • この Shape の寸法の後に指定された寸法が続く新しい Shape、決して null ではありません

public Shape追加( Shape other)

別の Shape の寸法を追加した新しい Shape を返します。この Shape と他の Shape の両方で、 isUnknown() false を返す必要があります。例 @code Shape.of(3,4).append(Shape.of(1,2)) => Shape.of(3,4,1,2) }

パラメーター
他の別の Shape、 nullであってはならず、不明であってはなりません
戻り値
  • この Shape の寸法とその後に指定された Shape の寸法で構成される新しい Shape

public long[] asArray ()

この Shape の軸の防御コピーを返します。この Shape の状態を変更しないように、返された配列を変更します。 isUnknown() true の場合は null を返します。

public booleanに等しい(オブジェクト obj)

Shape の実装と同等です。 2 つの Shape は、次の場合に等しいとみなされます。

  • 次元数が定義されており、両方とも等しい
  • 各次元のサイズが定義されており、両方とも等しい

どちらかの Shape の寸法が不明な場合 (両方で同じである場合でも)、またはどちらかの Shape の寸法数が不明な場合 (両方ともisUnknown()に対してtrueを返した場合でも)、それらは等しいとみなされません。ただし、形状が未知であるか、未知の寸法を含んでいる場合でも、形状は常にそれ自体と等しくなります。

public boolean hasUnknownDimension ()

この Shape の 1 つ以上の寸法のサイズが不明かどうかを返します。

public int hashCode ()

パブリックシェイプヘッド()

最初の次元がこの Shape の最初の次元と一致する 1 次元の Shape を返します。

public static boolean isCompatibility (long dim、long otherDim)

2 つの形状寸法に互換性があるかどうかをテストして確認します。

いずれかの寸法がShape.UNKNOWN_SIZEであるか、両方の寸法が等しい場合、寸法は互換性があります。

パラメーター
薄暗い最初の次元
その他薄暗い二次元
戻り値
  • true、両方の次元に互換性がある場合

public boolean isCompatibilityWith ( Shapeシェイプ)

別のシェイプがこのシェイプと互換性があるかどうかを判断します。

部分的に定義された可能性のある 2 つの形状は、両方の形状で表現できる完全に定義された形状が存在する場合に互換性があります。したがって、互換性により、形状推論コードは部分的に定義された形状について推論することができます。例えば:

  • 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)

互換性はブロードキャストとは異なります。互換性のある形状は同じ数の次元を持つ必要があり、各次元ペアについて、一方の次元が他方の次元と等しいか、ペアの少なくとも 1 つの次元が UNKNOWN_SIZE である必要があります。

ブロードキャストでは異なる次元が許可されますが、ペアの次元が等しいか、一方の次元が 1 である必要があります。一方の形状の次元が別の形状よりも小さい場合、小さい方の形状は次元 1 で「引き伸ばされ」ます。

パラメーター
他の形
戻り値
  • 2 つの形状に互換性がある場合は true。

パブリックブール値isMatrix ()

この Shape が行列の形状であるかどうかを返します。

パブリックブール値isScalar ()

この Shape がスカラーを表すかどうかを返します。

パブリックブール値はUnknown ()

この Shape の次元数が不明かどうかを返します。

パブリックブール値isVector ()

この Shape がベクトルの形状であるかどうかを返します。

public int numDimensions ()

この Shape の次元数を返します。不明な場合は -1、スカラーの場合は 0、ベクトルの場合は 1、行列の場合は 2 などです。

public static Shape of (長い...寸法サイズ)

スカラーまたは 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
戻り値
  • 新しい形

public Shape prepend ( Shape other)

別の Shape の寸法を先頭に付けた新しい Shape を返します。この Shape と他の Shape の両方で、 isUnknown() false を返す必要があります。例: Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)

パラメーター
他の別の Shape、 nullであってはならず、不明であってはなりません
戻り値
  • 指定された Shape の寸法の後にこの Shape の寸法が続く新しい Shape です。null ではありません

public Shape prepend (long firstDimension)

新しい最初の次元が追加された新しい Shape を返します。この呼び出しが成功するには、 isUnknown() falseである必要があります。

パラメーター
最初の次元先頭に追加するディメンション
戻り値
  • 指定された寸法が最初にあり、次にこの Shape の寸法が続く新しい形状、null は不可

public static Shapeスカラー()

スカラー値を表す Shape を作成します。

戻り値
  • isScalar()が true である次元のない Shape であり、null になることはありません。

パブリックなロングサイズ( int i)

指定されたインデックスを持つディメンションのサイズ。

isUnknown()が true の場合、または指定されたインデックスを持つディメンションのサイズが不明な場合は、 UNKNOWN_SIZEが返されます。

パラメーター
サイズを取得するディメンションのインデックス。この Shape に既知の次元数がある場合、それは < numDimensions()である必要があります。インデックスは負の値になる場合があります。その場合、位置は形状の端から数えられます。例: size(-1)最後の次元のサイズを返し、 size(-2)最後から 2 番目の次元のサイズなどを返します。
戻り値
  • 既知の場合は指定されたインデックスを持つディメンションのサイズ、そうでない場合はUNKNOWN_SIZE

公開ロングサイズ

この Shape を持つ Tensor が持つ要素の合計数を返します。

isUnknown()が true またはhasUnknownDimension()が true の場合、 UNKNOWN_SIZEが返されます。

戻り値
  • 計算できる場合はこの形状の Tensor が持つ要素の合計数、そうでない場合はUNKNOWN_SIZE

public Shape subShape (int begin, int end)

この Shape のbeginからendまで一致する寸法を持つend - beginシェイプを返します。

パラメーター
始めるサブシェイプを開始する場所。
終わりサブシェイプを終了する場所 (排他的)。
戻り値
  • begin と end で囲まれたサブシェイプ。

パブリックシェイプテール()

この Shape の最初の次元を削除した、新しい Shape を返します。

public Shape take (int n)

この形状の最初の n 次元と一致する次元を持つ n 次元の Shape を返します。

パラメーター
n取得する先頭の次元の数は、 numDimensions()以下でなければなりません
戻り値
  • 最初の n 次元がこの Shape の最初の n 次元と一致する n 次元の Shape

public Shape takeLast (int n)

この Shape の最後の n 次元と一致する次元を持つ n 次元 Shape を返します。

パラメーター
n取得する後続の次元の数は、 numDimensions()以下である必要があります。
戻り値
  • この Shape の最後の n 次元と一致する次元を持つ n 次元のシェイプ、null はありません

public String toString ()

デバッグを目的とした Shape の簡潔な説明。

public static形状不明()

未知の次元数を表す Shape を作成します。

戻り値
  • isUnknown()が true である Shape であり、null になることはありません。