Shape

publiczna klasa końcowa Shape

Kształt Tensora lub NdArray .

Shape definiuje rozmiary wzdłuż swoich osi. Może zawierać nieznany rozmiar jednej z osi lub może być całkowicie nieznany, w takim przypadku nie jest znana nawet liczba osi. Jeżeli rozmiar osi nie jest znany, jako jej rozmiar należy przyjąć UNKNOWN_SIZE .

Pola

publiczny statyczny długi NIEZNANY_ROZMIAR Rozmiar nieznanej osi lub całkowity nieznany rozmiar nieznanego kształtu.

Metody publiczne

Kształt
dołącz (długi ostatni wymiar)
Zwraca nowy Shape z dodanym nowym ostatnim wymiarem.
Kształt
dołącz ( kształtuj inny)
Zwraca nowy kształt z dołączonymi wymiarami innego kształtu.
długi[]
asArray ()
Zwraca kopię obronną osi tego kształtu.
wartość logiczna
równa się (obiekt obiektu)
Równa się implementacji dla kształtów.
wartość logiczna
ma nieznany wymiar ()
Zwraca informację, czy jeden lub więcej wymiarów tego Shape ma nieznany rozmiar.
wew
Kształt
głowa ()
Zwraca jednowymiarowy Shape, w którym pierwszy wymiar odpowiada pierwszemu wymiarowi tego Shape.
statyczna wartość logiczna
jest kompatybilny (długi przyciemniony, długi inny przyciemniony)
Sprawdź, czy dwa wymiary kształtu są zgodne.
wartość logiczna
jest kompatybilny z (kształt kształtu )
Określa, czy inny kształt jest zgodny z tym.
wartość logiczna
isMatrix ()
Zwraca czy ten Shape jest kształtem macierzy
wartość logiczna
jestSkalarny ()
Zwraca czy ten Shape reprezentuje skalar.
wartość logiczna
jest nieznany ()
Zwraca informację, czy liczba wymiarów tego Shape jest nieznana.
wartość logiczna
jestWektor ()
Zwraca, czy ten Shape jest kształtem wektora.
wew
liczba wymiarów ()
Zwraca liczbę wymiarów tego Shape.
statyczny kształt
z (długie... wymiaryRozmiary)
Utwórz kształt reprezentujący wartość skalarną lub N-wymiarową.
Kształt
dołącz ( kształt inny)
Zwraca nowy Shape z dołączonymi wymiarami innego Shape.
Kształt
dołącz (długi pierwszy wymiar)
Zwraca nowy Shape z dodanym nowym pierwszym wymiarem.
statyczny kształt
skalarny ()
Tworzy Shape reprezentujący wartość skalarną.
długi
rozmiar (int i)
Rozmiar wymiaru o podanym indeksie.
długi
rozmiar ()
Zwraca całkowitą liczbę elementów, jakie miałby Tensor z tym kształtem.
Kształt
subShape (int początek, int koniec)
Zwróć kształt wymiarowy end - begin o wymiarach pasujących do tego kształtu od begin do end .
Kształt
ogon ()
Zwraca nowy Shape z usuniętym pierwszym wymiarem tego Shape.
Kształt
weź (int n)
Zwraca n-wymiarowy Shape o wymiarach odpowiadających pierwszym n wymiarom tego kształtu
Kształt
weźOstatnie (int n)
Zwraca n-wymiarowy Shape o wymiarach pasujących do ostatnich n wymiarów tego Shape.
Strunowy
doString ()
Zwięzły opis kształtu przeznaczonego do debugowania.
statyczny kształt
nieznany ()
Tworzy Shape reprezentujący nieznaną liczbę wymiarów.

Metody dziedziczone

Pola

publiczny statyczny długi UNKNOWN_SIZE

Rozmiar nieznanej osi lub całkowity nieznany rozmiar nieznanego kształtu.

Metody publiczne

publiczne dołączanie kształtu (długie wymiary)

Zwraca nowy Shape z dodanym nowym ostatnim wymiarem. Aby to wywołanie zakończyło się sukcesem, isUnknown() musi mieć false .

Parametry
ostatni wymiar wymiar do dołączenia
Zwroty
  • nowy kształt z wymiarami tego kształtu, po których następuje podany wymiar, nigdy zerowy

publiczny Kształt dołącz ( kształt inny)

Zwraca nowy kształt z dołączonymi wymiarami innego kształtu. Zarówno w przypadku tego kształtu, jak i drugiego kształtu funkcja isUnknown() musi zwracać wartość false. Np. @kod Kształt.of(3,4).append(Kształt.of(1,2)) => Kształt.of(3,4,1,2) }

Parametry
Inny inny kształt nie może mieć null i nie może być nieznany
Zwroty
  • Nowy Shape składający się z wymiarów tego Shape, po których następują wymiary danego Shape

public long[] asArray ()

Zwraca kopię obronną osi tego kształtu. Zmiany w zwróconej tablicy, aby nie zmieniać stanu tego kształtu. Zwraca wartość null, jeśli isUnknown() ma wartość true.

publiczna wartość logiczna równa się (obiekt obiektu)

Równa się implementacji dla kształtów. Dwa Kształty są uważane za równe, jeśli:

  • liczba wymiarów jest zdefiniowana i równa dla obu
  • wielkość każdego wymiaru jest zdefiniowana i równa dla obu

Jeśli którykolwiek z kształtów ma nieznane wymiary (nawet jeśli są takie same w obu przypadkach) lub jeśli którykolwiek kształt ma nieznaną liczbę wymiarów (nawet jeśli oba zwrócą true dla funkcji isUnknown() ), nie są one uważane za równe! Jednak kształt zawsze będzie sobie równy, nawet jeśli jest nieznany lub zawiera nieznane wymiary.

publiczna wartość logiczna maUnknownDimension ()

Zwraca informację, czy jeden lub więcej wymiarów tego Shape ma nieznany rozmiar.

publiczny int hashCode ()

publiczna głowa kształtu ()

Zwraca jednowymiarowy Shape, w którym pierwszy wymiar odpowiada pierwszemu wymiarowi tego Shape.

publiczna statyczna wartość logiczna isCompatible (długie przyciemnienie, długie inne przyciemnienie)

Sprawdź, czy dwa wymiary kształtu są zgodne.

Wymiary są zgodne, jeśli którykolwiek z wymiarów to Shape.UNKNOWN_SIZE lub oba wymiary są równe

Parametry
ciemny pierwszy wymiar
innePrzyciemnienie drugi wymiar
Zwroty
  • prawda, jeśli oba wymiary są zgodne

publiczna wartość logiczna isCompatibleWith (kształt kształtu )

Określa, czy inny kształt jest zgodny z tym.

Dwa potencjalnie częściowo zdefiniowane kształty są kompatybilne, jeśli istnieje w pełni zdefiniowany kształt, który oba kształty mogą reprezentować. Zatem zgodność umożliwia kodowi wnioskowania o kształcie wnioskowanie o częściowo zdefiniowanych kształtach. Na przykład:

  • Shape.unknown() jest kompatybilna ze wszystkimi kształtami.
  • Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) jest kompatybilny ze wszystkimi kształtami dwuwymiarowymi, takimi jak Shape(32, 784) , a także Shape.unknown() . Nie jest kompatybilny na przykład z Shape(UNKNOWN_SIZE) lub Shape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE) .
  • Shape(32, UNKNOWN_SIZE) jest kompatybilny ze wszystkimi dwuwymiarowymi kształtami o rozmiarze 32 w wymiarze 0, a także Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) i Shape.unknown() . Nie jest kompatybilny na przykład z Shape(32) , Shape(32, UNKNOWN_SIZE, 1) lub Shape(64, UNKNOWN_SIZE) .
  • Shape(32, 784) jest kompatybilny sam ze sobą, a także Shape(32, UNKNOWN_SIZE) , Shape(UNKNOWN_SIZE, 784) , Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) i Shape.unknown() . Nie jest kompatybilny na przykład z Shape(32, 1, 784) lub Shape(UNKNOWN_SIZE) .

Relacja zgodności jest zwrotna i symetryczna, ale nie przechodnia. Na przykład Shape(32, 784) jest zgodna z Shape.unknown() , a Shape.unknown() jest zgodna z Shape(4, 4) , ale Shape(32, 784) nie jest zgodna z Shape(4, 4) .

Kompatybilność to nie to samo, co nadawanie. Kompatybilne kształty muszą mieć tę samą liczbę wymiarów i dla każdej pary wymiarów jeden wymiar musi być równy pozostałym wymiarom lub co najmniej jeden z wymiarów w parze musi mieć wartość UNKNOWN_SIZE.

Rozgłaszanie umożliwia różne wymiary, ale wymiary w parach muszą być równe lub jeden wymiar musi wynosić 1. Jeśli jeden kształt ma mniejsze wymiary niż inny, mniejszy kształt jest „rozciągany” i ma wymiary 1.

Parametry
kształt Drugi kształt
Zwroty
  • prawda, jeśli te dwa kształty są kompatybilne.

publiczna wartość logiczna isMatrix ()

Zwraca czy ten Shape jest kształtem macierzy

publiczna wartość logiczna isScalar ()

Zwraca czy ten Shape reprezentuje skalar.

publiczna wartość logiczna jest nieznana ()

Zwraca informację, czy liczba wymiarów tego Shape jest nieznana.

publiczna wartość logiczna isVector ()

Zwraca, czy ten Shape jest kształtem wektora.

public int numDimensions ()

Zwraca liczbę wymiarów tego Shape. -1 jeśli nieznane, 0 dla skalara, 1 dla wektora, 2 dla macierzy itd.

publiczny statyczny Kształt ( długi... wymiarRozmiary)

Utwórz kształt reprezentujący wartość skalarną lub N-wymiarową.

Tworzy Shape reprezentujący wartość skalarną lub N-wymiarową (N wynosi co najmniej 1) z podanym rozmiarem dla każdego wymiaru. Wartość -1 wskazuje, że rozmiar odpowiedniego wymiaru jest nieznany. Jeśli nie podano żadnych rozmiarów, tworzony jest Shape reprezentujący skalar. Na przykład:

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

Parametry
wymiarRozmiary liczba elementów w każdym wymiarze tego kształtu, jeśli istnieje, lub UNKNOWN_SIZE jeśli nie jest znana.
Zwroty
  • nowy kształt

publiczny Kształt dodawany na początku ( kształt inny)

Zwraca nowy Shape z dołączonymi wymiarami innego Shape. Zarówno w przypadku tego kształtu, jak i drugiego kształtu funkcja isUnknown() musi zwracać wartość false. Np. Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)

Parametry
Inny inny kształt nie może mieć null i nie może być nieznany
Zwroty
  • Nowy Shape składający się z wymiarów danego Shape, po których następują wymiary tego Shape, nigdy o wartości null

Dodatek publicznego kształtu (długi pierwszy wymiar)

Zwraca nowy Shape z dodanym nowym pierwszym wymiarem. Aby to wywołanie zakończyło się sukcesem, isUnknown() musi mieć false .

Parametry
pierwszy wymiar wymiar do dodania
Zwroty
  • najpierw nowy kształt o podanym wymiarze, po którym następują wymiary tego kształtu, nigdy o wartości null

publiczny statyczny Kształt skalarny ()

Tworzy Shape reprezentujący wartość skalarną.

Zwroty
  • Kształt bez wymiarów, dla którego isScalar() ma wartość true, nigdy nie ma wartości null.

publiczny długi rozmiar (int i)

Rozmiar wymiaru o podanym indeksie.

Jeśli isUnknown() ma wartość true lub rozmiar wymiaru o podanym indeksie ma nieznany rozmiar, zwracana jest UNKNOWN_SIZE .

Parametry
I indeks wymiaru, dla którego ma zostać pobrany rozmiar. Jeśli ten kształt ma znaną liczbę wymiarów, musi to być < numDimensions() . Indeks może być ujemny, w takim przypadku pozycja jest liczona od końca kształtu. Np.: size(-1) zwraca rozmiar ostatniego wymiaru, size(-2) rozmiar przedostatniego wymiaru itd.
Zwroty
  • Rozmiar wymiaru o podanym indeksie, jeśli jest znany, w przeciwnym razie UNKNOWN_SIZE .

publiczny długi rozmiar ()

Zwraca całkowitą liczbę elementów, jakie miałby Tensor z tym kształtem.

Jeśli isUnknown() ma wartość true lub hasUnknownDimension() ma wartość true, zwracana jest UNKNOWN_SIZE .

Zwroty
  • Całkowita liczba elementów, jakie miałby Tensor o tym kształcie, gdyby można ją było obliczyć, w przeciwnym razie UNKNOWN_SIZE .

publiczny podkształt kształtu (int początek, int koniec)

Zwróć kształt wymiarowy end - begin o wymiarach pasujących do tego kształtu od begin do end .

Parametry
zaczynać Od czego zacząć kształt podrzędny.
koniec Gdzie zakończyć podkształt, ekskluzywny.
Zwroty
  • podkształt ograniczony początkiem i końcem.

publiczny kształt ogona ()

Zwraca nowy Shape z usuniętym pierwszym wymiarem tego Shape.

publiczny Przyjmowanie kształtu (int n)

Zwraca n-wymiarowy Shape o wymiarach odpowiadających pierwszym n wymiarom tego kształtu

Parametry
N liczba wymiarów wiodących do uzyskania musi wynosić <= niż numDimensions()
Zwroty
  • n-wymiarowy Kształt, którego pierwsze n wymiary odpowiadają pierwszym n wymiarom tego Kształtu

public Kształt TakeLast (int n)

Zwraca n-wymiarowy Shape o wymiarach pasujących do ostatnich n wymiarów tego Shape.

Parametry
N liczba końcowych wymiarów do pobrania musi być <= niż numDimensions()
Zwroty
  • n-wymiarowy kształt o wymiarach odpowiadających n ostatnim wymiarom tego kształtu, nigdy zerowy

publiczny ciąg do ciągu ()

Zwięzły opis kształtu przeznaczonego do debugowania.

publiczny statyczny Kształt nieznany ()

Tworzy Shape reprezentujący nieznaną liczbę wymiarów.

Zwroty
  • Kształt, dla którego isUnknown() ma wartość true, nigdy nie ma wartości null.