Tensor

publiczna klasa końcowa Tensor

Statycznie typowana tablica wielowymiarowa, której elementy są typu opisanego przez T.

Instancje Tensora nie są bezpieczne dla wątków.

OSTRZEŻENIE: Zasoby zużywane przez obiekt Tensor muszą zostać jawnie zwolnione poprzez wywołanie metody close() , gdy obiekt nie jest już potrzebny. Na przykład użycie bloku try-with-resources:

try (Tensor t = Tensor.create(...)) {
   doSomethingWith(t);
 
 }

Metody publiczne

wartość logiczna
Wartość logiczna ()
Zwraca wartość w skalarnym tensorze Boolean .
bajt[]
bajtyWartość ()
Zwraca wartość w skalarnym tensorze String .
próżnia
zamknąć ()
Zwolnij zasoby powiązane z Tensorem.
<U> U
kopiujDo (U dst)
Kopiuje zawartość tensora do dst i zwraca dst .
statyczny Tensor <?>
utwórz (obiekt obiektu)
Tworzy tensor z obiektu, którego klasa jest sprawdzana w celu ustalenia, jaki powinien być podstawowy typ danych.
statyczny <T> Tensor <T>
utwórz (typ Class<T>, kształt long[], dane ByteBuffer)
Utwórz Tensor dowolnego typu z danymi z danego bufora.
statyczny Tensor <Double>
utwórz (długi [] kształt, dane DoubleBuffer)
Utwórz Double tensor z danymi z danego bufora.
statyczny Tensor <Długi>
utwórz (długi [] kształt, dane LongBuffer)
Utwórz Long tensor z danymi z danego bufora.
statyczny tensor <liczba całkowita>
utwórz (długi [] kształt, dane IntBuffer)
Utwórz tensor Integer z danymi z danego bufora.
statyczny Tensor <Float>
utwórz (długi [] kształt, dane FloatBuffer)
Utwórz tensor Float z danymi z podanego bufora.
statyczny <T> Tensor <T>
utwórz (obiekt obiektu, typ Class<T>)
Tworzy Tensor z obiektu Java.
Typ danych
typ danych ()
Zwraca DataType elementów przechowywanych w Tensorze.
podwójnie
podwójna wartość ()
Zwraca wartość w skalarnym tensorze Double .
<U> Tensor <U>
oczekiwać (typ Class<U>)
Zwraca ten obiekt Tensor o typie Tensor<U> .
platforma
wartość zmiennoprzecinkowa ()
Zwraca wartość w skalarnym tensorze Float .
wew
wartość całkowita ()
Zwraca wartość w skalarnym tensorze Integer .
długi
długa wartość ()
Zwraca wartość w skalarnym Long tensorze.
wew
liczba bajtów ()
Zwraca rozmiar danych tensora w bajtach.
wew
liczba wymiarów ()
Zwraca liczbę wymiarów (czasami nazywaną rangą ) tensora.
wew
liczba elementów ()
Zwraca liczbę elementów w spłaszczonym (1-W) widoku tensora.
długi[]
kształt ()
Zwraca kształt tensora, tj. rozmiary każdego wymiaru.
Strunowy
doString ()
Zwraca ciąg opisujący typ i kształt Tensora.
próżnia
writeTo (LongBuffer dst)
Zapisz dane Long tensora w podanym buforze.
próżnia
writeTo (DoubleBuffer dst)
Zapisz dane Double tensora w podanym buforze.
próżnia
writeTo (IntBuffer dst)
Zapisz dane tensora Integer w podanym buforze.
próżnia
writeTo (ByteBuffer dst)
Zapisz dane tensora w podanym buforze.
próżnia
writeTo (FloatBuffer dst)
Zapisz dane tensora Float w podanym buforze.

Metody dziedziczone

Metody publiczne

publiczna wartość logiczna booleanValue ()

Zwraca wartość w skalarnym tensorze Boolean .

Rzuca
Wyjątek IllegalArgument jeśli Tensor nie reprezentuje skalara logicznego.

publiczny bajt[] bajtyWartość ()

Zwraca wartość w skalarnym tensorze String .

Rzuca
Wyjątek IllegalArgument jeśli Tensor nie reprezentuje skalara logicznego.

publiczna pustka zamknij ()

Zwolnij zasoby powiązane z Tensorem.

OSTRZEŻENIE: Należy to wywołać w przypadku wszystkich tensorów, które nie zostały wygenerowane w wyniku operacji chętnie, w przeciwnym razie nastąpi wyciek pamięci.

Obiekt Tensor nie jest już użyteczny po close .

publiczny U copyTo (U dst)

Kopiuje zawartość tensora do dst i zwraca dst .

W przypadku tensorów nieskalarnych ta metoda kopiuje zawartość podstawowego tensora do tablicy Java. W przypadku tensorów skalarnych użyj zamiast tego jednego z bytesValue() , floatValue() , doubleValue() , intValue() , longValue() lub booleanValue() . Rodzaj i kształt dst muszą być zgodne z tensorem. Na przykład:

int matrix[2][2] = { {1,2,{3,4} };
 try(Tensor t = Tensor.create(matrix)) {
   // Succeeds and prints "3"
   int[][] copy = new int[2][2];
   System.out.println(t.copyTo(copy)[1][0]);

   // Throws IllegalArgumentException since the shape of dst does not match the shape of t.
   int[][] dst = new int[4][1];
   t.copyTo(dst);
 }
 }

Rzuca
Wyjątek IllegalArgument jeśli tensor jest skalarem lub jeśli dst nie jest zgodny z tensorem (na przykład niedopasowane typy danych lub kształty).

publiczny statyczny Tensor <?> utwórz (obiekt obiektu)

Tworzy tensor z obiektu, którego klasa jest sprawdzana w celu ustalenia, jaki powinien być podstawowy typ danych.

Rzuca
Wyjątek IllegalArgument jeśli obj nie jest kompatybilny z systemem typu TensorFlow.

public static Tensor <T> create (typ Class<T>, kształt long[], dane ByteBuffer)

Utwórz Tensor dowolnego typu z danymi z danego bufora.

Tworzy Tensor o podanym kształcie dowolnego typu, w którym dane tensora zostały zakodowane w data zgodnie ze specyfikacją interfejsu API TensorFlow C.

Parametry
typ typ elementu tensorowego, reprezentowany jako obiekt klasy.
kształt kształt tensora.
dane bufor zawierający dane tensora.
Rzuca
Wyjątek IllegalArgument Jeśli typ danych lub kształt tensora nie jest zgodny z buforem

public static Tensor <Double> utwórz (długi [] kształt, dane DoubleBuffer)

Utwórz Double tensor z danymi z danego bufora.

Tworzy Tensor o podanym kształcie, kopiując elementy z bufora (zaczynając od jego bieżącej pozycji) do tensora. Na przykład, jeśli shape = {2,3 } (co reprezentuje macierz 2x3), to w buforze musi pozostać 6 elementów, które zostaną wykorzystane przez tę metodę.

Parametry
kształt kształt tensora.
dane bufor zawierający dane tensora.
Rzuca
Wyjątek IllegalArgument Jeśli kształt tensora nie jest zgodny z buforem

publiczny statyczny Tensor <Long> utwórz (długi [] kształt, dane LongBuffer)

Utwórz Long tensor z danymi z danego bufora.

Tworzy Tensor o podanym kształcie, kopiując elementy z bufora (zaczynając od jego bieżącej pozycji) do tensora. Na przykład, jeśli shape = {2,3 } (co reprezentuje macierz 2x3), to w buforze musi pozostać 6 elementów, które zostaną wykorzystane przez tę metodę.

Parametry
kształt kształt tensora.
dane bufor zawierający dane tensora.
Rzuca
Wyjątek IllegalArgument Jeśli kształt tensora nie jest zgodny z buforem

public static Tensor <Integer> utwórz (długi [] kształt, dane IntBuffer)

Utwórz tensor Integer z danymi z danego bufora.

Tworzy Tensor o podanym kształcie, kopiując elementy z bufora (zaczynając od jego bieżącej pozycji) do tensora. Na przykład, jeśli shape = {2,3 } (co reprezentuje macierz 2x3), to w buforze musi pozostać 6 elementów, które zostaną wykorzystane przez tę metodę.

Parametry
kształt kształt tensora.
dane bufor zawierający dane tensora.
Rzuca
Wyjątek IllegalArgument Jeśli kształt tensora nie jest zgodny z buforem

public static Tensor <Float> utwórz (długi [] kształt, dane FloatBuffer)

Utwórz tensor Float z danymi z podanego bufora.

Tworzy Tensor o podanym kształcie, kopiując elementy z bufora (zaczynając od jego bieżącej pozycji) do tensora. Na przykład, jeśli shape = {2,3 } (co reprezentuje macierz 2x3), to w buforze musi pozostać 6 elementów, które zostaną wykorzystane przez tę metodę.

Parametry
kształt kształt tensora.
dane bufor zawierający dane tensora.
Rzuca
Wyjątek IllegalArgument Jeśli kształt tensora nie jest zgodny z buforem

public static Tensor <T> utwórz (obiekt obiektu, typ Class<T>)

Tworzy Tensor z obiektu Java.

Tensor to wielowymiarowa tablica elementów o ograniczonym zestawie typów. Nie wszystkie obiekty Java można przekonwertować na obiekt Tensor . W szczególności argument obj musi być albo liczbą pierwotną (float, double, int, long, boolean, byte) albo wielowymiarową tablicą jednego z tych elementów podstawowych. type argumentu określa, jak interpretować pierwszy argument jako typ TensorFlow. Na przykład:

// Valid: A 64-bit integer scalar.
 Tensor<Long> s = Tensor.create(42L, Long.class);

 // Valid: A 3x2 matrix of floats.
 float[][] matrix = new float[3][2];
 Tensor<Float> m = Tensor.create(matrix, Float.class);

 // Invalid: Will throw an IllegalArgumentException as an arbitrary Object
 // does not fit into the TensorFlow type system.
 Tensor<?> o = Tensor.create(new Object())

 // Invalid: Will throw an IllegalArgumentException since there are
 // a differing number of elements in each row of this 2-D array.
 int[][] twoD = new int[2][];
 twoD[0] = new int[1];
 twoD[1] = new int[2];
 Tensor<Integer> x = Tensor.create(twoD, Integer.class);
 
Tensory typu String to wielowymiarowe tablice dowolnych sekwencji bajtów, więc można je inicjować z tablic elementów byte[] . Na przykład:
// Valid: A String tensor.
 Tensor<String> s = Tensor.create(new byte[]{1, 2, 3, String.class);

 // Java Strings will need to be encoded into a byte-sequence.
 String mystring = "foo";
 Tensor s = Tensor.create(mystring.getBytes("UTF-8"), String.class);

 // Valid: Matrix of String tensors.
 // Each element might have a different length.
 byte[][][] matrix = new byte[2][2][];
 matrix[0][0] = "this".getBytes("UTF-8");
 matrix[0][1] = "is".getBytes("UTF-8");
 matrix[1][0] = "a".getBytes("UTF-8");
 matrix[1][1] = "matrix".getBytes("UTF-8");
 Tensor m = Tensor.create(matrix, String.class);
 }

Parametry
obj Obiekt do przekonwertowania na Tensor<T> . Należy pamiętać, że system typów nie sprawdza, czy jest on kompatybilny z typem T. Aby zapewnić bezpieczne tworzenie tensorów, użyj Tensors .
typ Obiekt klasy reprezentujący typ T.
Rzuca
Wyjątek IllegalArgument jeśli obj nie jest kompatybilny z systemem typu TensorFlow.

publiczny typ danych typ danych ()

Zwraca DataType elementów przechowywanych w Tensorze.

publiczny double doubleValue ()

Zwraca wartość w skalarnym tensorze Double .

Rzuca
Wyjątek IllegalArgument jeśli tensor nie reprezentuje podwójnego skalara.

publiczny Tensor <U> oczekuje (typ Klasy<U>)

Zwraca ten obiekt Tensor o typie Tensor<U> . Ta metoda jest przydatna, gdy podano wartość typu Tensor<?> .

Parametry
typ dowolna (różna od null) tablica prawidłowego typu.
Rzuca
Wyjątek IllegalArgument jeśli rzeczywisty typ danych tego obiektu nie jest zgodny z typem U .

publiczny float floatValue ()

Zwraca wartość w skalarnym tensorze Float .

Rzuca
Wyjątek IllegalArgument jeśli Tensor nie reprezentuje skalara zmiennoprzecinkowego.

publiczna int intValue ()

Zwraca wartość w skalarnym tensorze Integer .

Rzuca
Wyjątek IllegalArgument jeśli Tensor nie reprezentuje skalara typu int.

publiczna długa długa wartość ()

Zwraca wartość w skalarnym Long tensorze.

Rzuca
Wyjątek IllegalArgument jeśli tensor nie reprezentuje długiego skalara.

public int numBytes ()

Zwraca rozmiar danych tensora w bajtach.

public int numDimensions ()

Zwraca liczbę wymiarów (czasami nazywaną rangą ) tensora.

Będzie wynosić 0 dla skalara, 1 dla wektora, 2 dla macierzy, 3 dla trójwymiarowego tensora itp.

public int numElements ()

Zwraca liczbę elementów w spłaszczonym (1-W) widoku tensora.

publiczny długi [] kształt ()

Zwraca kształt tensora, tj. rozmiary każdego wymiaru.

Zwroty
  • tablica, w której i-ty element jest rozmiarem i-tego wymiaru tensora.

publiczny ciąg do ciągu ()

Zwraca ciąg opisujący typ i kształt Tensora.

public void writeTo (LongBuffer dst)

Zapisz dane Long tensora w podanym buforze.

Kopiuje elementy numElements() do bufora.

Parametry
dst bufor docelowy
Rzuca
Wyjątek BufferOverflow Jeśli w danym buforze nie ma wystarczającej ilości miejsca na dane w tym tensorze
Wyjątek IllegalArgument Jeśli typ danych tensora nie jest Long

public void writeTo (DoubleBuffer dst)

Zapisz dane Double tensora w podanym buforze.

Kopiuje elementy numElements() do bufora.

Parametry
dst bufor docelowy
Rzuca
Wyjątek BufferOverflow Jeśli w danym buforze nie ma wystarczającej ilości miejsca na dane w tym tensorze
Wyjątek IllegalArgument Jeśli typ danych tensora nie jest Double

public void writeTo (IntBuffer dst)

Zapisz dane tensora Integer w podanym buforze.

Kopiuje elementy numElements() do bufora.

Parametry
dst bufor docelowy
Rzuca
Wyjątek BufferOverflow Jeśli w danym buforze nie ma wystarczającej ilości miejsca na dane w tym tensorze
Wyjątek IllegalArgument Jeśli typ danych tensora nie jest Integer

public void writeTo (ByteBuffer dst)

Zapisz dane tensora w podanym buforze.

Kopiuje bajty numBytes() do bufora w natywnej kolejności bajtów dla typów pierwotnych.

Parametry
dst bufor docelowy
Rzuca
Wyjątek BufferOverflow Jeśli w danym buforze nie ma wystarczającej ilości miejsca na dane w tym tensorze

public void writeTo (FloatBuffer dst)

Zapisz dane tensora Float w podanym buforze.

Kopiuje elementy numElements() do bufora.

Parametry
dst bufor docelowy
Rzuca
Wyjątek BufferOverflow Jeśli w danym buforze nie ma wystarczającej ilości miejsca na dane w tym tensorze
Wyjątek IllegalArgument Jeśli typem danych tensora nie jest Float