Tensor またはNdArray
の形状。
Shape
軸に沿ったサイズを定義します。軸の 1 つに不明なサイズが含まれているか、まったく不明の場合があり、その場合は軸の数さえもわかりません。軸のサイズが不明な場合は、 UNKNOWN_SIZE
そのサイズとして使用する必要があります。
フィールド
パブリック静的ロング | UNKNOWN_SIZE | 不明な軸のサイズ、または不明なシェイプの不明な合計サイズ。 |
パブリックメソッド
形 | 追加(長い最後の次元) 新しい最後の寸法が追加された新しい Shape を返します。 |
形 | |
長さ[] | asArray () この Shape の軸の防御コピーを返します。 |
ブール値 | 等しい(オブジェクトオブジェクト) Shape の実装と同等です。 |
ブール値 | 未知の次元を持つ() この Shape の 1 つ以上の寸法のサイズが不明かどうかを返します。 |
整数 | ハッシュコード() |
形 | 頭() 最初の次元がこの Shape の最初の次元と一致する 1 次元の Shape を返します。 |
静的ブール値 | 互換性があります(長い調光、長いその他の調光) 2 つの形状寸法に互換性があるかどうかをテストして確認します。 |
ブール値 | |
ブール値 | isMatrix () この Shape が行列の形状であるかどうかを返します。 |
ブール値 | isScalar () この Shape がスカラーを表すかどうかを返します。 |
ブール値 | 不明です() この Shape の次元数が不明かどうかを返します。 |
ブール値 | isVector () この Shape がベクトルの形状であるかどうかを返します。 |
整数 | numDimensions () この Shape の次元数を返します。 |
静的な形状 | (長い...寸法サイズ) スカラーまたは N 次元値を表す 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 ()
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 で囲まれたサブシェイプ。
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 の簡潔な説明。