Un array multidimensionale tipizzato staticamente i cui elementi sono del tipo descritto da T.
Le istanze di un tensore non sono thread-safe.
ATTENZIONE: le risorse consumate dall'oggetto Tensor devono essere liberate esplicitamente richiamando il metodo close()
quando l'oggetto non è più necessario. Ad esempio, utilizzando un blocco try-with-resources:
try (Tensor t = Tensor.create(...)) {
doSomethingWith(t);
}
Metodi pubblici
booleano | valore booleano () Restituisce il valore in un tensore Boolean scalare. |
byte[] | byteValore () Restituisce il valore in un tensore String scalare. |
vuoto | vicino () Rilascia risorse associate al Tensore. |
<U>U | copyTo (U dst) Copia il contenuto del tensore in dst e restituisce dst . |
Tensore statico <?> | creare (Oggetto oggetto) Crea un tensore da un oggetto la cui classe viene ispezionata per capire quale dovrebbe essere il tipo di dati sottostante. |
Tensore <T> statico <T> | creare (tipo Classe<T>, forma long[], dati ByteBuffer) Crea un tensore di qualsiasi tipo con i dati dal buffer specificato. |
Tensore statico <Doppio> | |
Tensore statico <Lungo> | |
Tensore statico <intero> | |
Tensore statico <Float> | |
Tensore <T> statico <T> | creare (Oggetto oggetto, tipo Classe<T>) Crea un tensore da un oggetto Java. |
Tipo di dati | |
raddoppiare | doppioValore () Restituisce il valore in un tensore scalare Double . |
<U> Tensore <U> | aspettarsi (tipo Classe <U>) Restituisce questo oggetto Tensore con il tipo Tensor<U> . |
galleggiante | floatValore () Restituisce il valore in un tensore Float scalare. |
int | |
lungo | valore lungo () Restituisce il valore in un tensore scalare Long . |
int | numByte () Restituisce la dimensione, in byte, dei dati del tensore. |
int | numerodimensioni () Restituisce il numero di dimensioni (a volte indicato come rango ) del Tensore. |
int | numElementi () Restituisce il numero di elementi in una vista appiattita (1-D) del tensore. |
lungo[] | |
Corda | aStringa () Restituisce una stringa che descrive il tipo e la forma del Tensore. |
vuoto | |
vuoto | |
vuoto | |
vuoto | writeTo (ByteBuffer dst) Scrivi i dati del tensore nel buffer specificato. |
vuoto |
Metodi ereditati
Metodi pubblici
booleano pubblico booleanoValore ()
Restituisce il valore in un tensore Boolean
scalare.
Lancia
IllegalArgumentException | se il Tensore non rappresenta uno scalare booleano. |
---|
byte pubblico[] bytesValore ()
Restituisce il valore in un tensore String
scalare.
Lancia
IllegalArgumentException | se il Tensore non rappresenta uno scalare booleano. |
---|
pubblico vuoto chiudi ()
Rilascia risorse associate al Tensore.
ATTENZIONE: Questo deve essere invocato per tutti i tensori che non sono stati prodotti da un'operazione di entusiasmo altrimenti la memoria verrà persa.
L'oggetto Tensor non è più utilizzabile dopo close
.
public U copyTo (U dst)
Copia il contenuto del tensore in dst
e restituisce dst
.
Per i tensori non scalari, questo metodo copia il contenuto del tensore sottostante in un array Java. Per i tensori scalari, utilizzare invece uno tra bytesValue()
, floatValue()
, doubleValue()
, intValue()
, longValue()
o booleanValue()
. Il tipo e la forma di dst
devono essere compatibili con il tensore. Per esempio:
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);
}
Parametri
dst |
---|
Lancia
IllegalArgumentException | se il tensore è uno scalare o se dst non è compatibile con il tensore (ad esempio, tipi di dati o forme non corrispondenti). |
---|
tensore statico pubblico <?> crea (oggetto obj)
Crea un tensore da un oggetto la cui classe viene ispezionata per capire quale dovrebbe essere il tipo di dati sottostante.
Parametri
ogg |
---|
Lancia
IllegalArgumentException | se obj non è compatibile con il sistema di tipo TensorFlow. |
---|
Tensore statico pubblico <T> creato (tipo Classe<T>, forma long[], dati ByteBuffer)
Crea un tensore di qualsiasi tipo con i dati dal buffer specificato.
Crea un tensore con la forma fornita di qualsiasi tipo in cui i dati del tensore sono stati codificati in data
secondo le specifiche dell'API TensorFlow C.
Parametri
tipo | il tipo di elemento tensore, rappresentato come un oggetto di classe. |
---|---|
forma | la forma del tensore. |
dati | un buffer contenente i dati del tensore. |
Lancia
IllegalArgumentException | Se il tipo di dati o la forma del tensore non è compatibile con il buffer |
---|
Tensore statico pubblico <Double> crea (forma lunga[], dati DoubleBuffer)
Crea un Double
tensore con i dati dal buffer specificato.
Crea un tensore con la forma data copiando gli elementi dal buffer (a partire dalla sua posizione corrente) nel tensore. Ad esempio, se shape = {2,3}
(che rappresenta una matrice 2x3) allora nel buffer devono rimanere 6 elementi, che verranno consumati da questo metodo.
Parametri
forma | la forma del tensore. |
---|---|
dati | un buffer contenente i dati del tensore. |
Lancia
IllegalArgumentException | Se la forma del tensore non è compatibile con il buffer |
---|
Tensore statico pubblico <Long> creato (forma long[], dati LongBuffer)
Crea un Long
tensore con i dati dal buffer specificato.
Crea un tensore con la forma data copiando gli elementi dal buffer (a partire dalla sua posizione corrente) nel tensore. Ad esempio, se shape = {2,3}
(che rappresenta una matrice 2x3) allora nel buffer devono rimanere 6 elementi, che verranno consumati da questo metodo.
Parametri
forma | la forma del tensore. |
---|---|
dati | un buffer contenente i dati del tensore. |
Lancia
IllegalArgumentException | Se la forma del tensore non è compatibile con il buffer |
---|
Tensore statico pubblico <Integer> crea (forma long[], dati IntBuffer)
Crea un tensore Integer
con i dati dal buffer specificato.
Crea un tensore con la forma data copiando gli elementi dal buffer (a partire dalla sua posizione corrente) nel tensore. Ad esempio, se shape = {2,3}
(che rappresenta una matrice 2x3) allora nel buffer devono rimanere 6 elementi, che verranno consumati da questo metodo.
Parametri
forma | la forma del tensore. |
---|---|
dati | un buffer contenente i dati del tensore. |
Lancia
IllegalArgumentException | Se la forma del tensore non è compatibile con il buffer |
---|
Tensore statico pubblico <Float> creato (forma long[], dati FloatBuffer)
Crea un tensore Float
con i dati dal buffer specificato.
Crea un tensore con la forma data copiando gli elementi dal buffer (a partire dalla sua posizione corrente) nel tensore. Ad esempio, se shape = {2,3}
(che rappresenta una matrice 2x3) allora nel buffer devono rimanere 6 elementi, che verranno consumati da questo metodo.
Parametri
forma | la forma del tensore. |
---|---|
dati | un buffer contenente i dati del tensore. |
Lancia
IllegalArgumentException | Se la forma del tensore non è compatibile con il buffer |
---|
Tensore statico pubblico <T> creato (oggetto oggetto, tipo Classe <T>)
Crea un tensore da un oggetto Java.
Un Tensor
è un insieme multidimensionale di elementi di un insieme limitato di tipi. Non tutti gli oggetti Java possono essere convertiti in un Tensor
. In particolare, l'argomento obj
deve essere una primitiva (float, double, int, long, boolean, byte) o un array multidimensionale di una di queste primitive. Il type
di argomento specifica come interpretare il primo argomento come tipo TensorFlow. Per esempio:
// 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);
String
sono array multidimensionali di sequenze di byte arbitrarie, quindi possono essere inizializzati da array di elementi byte[]
. Per esempio:// 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<String> 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<String> m = Tensor.create(matrix, String.class);
Parametri
ogg | Oggetto da convertire in Tensor<T> . Si noti che la compatibilità con il tipo T non viene verificata dal sistema dei tipi. Per la creazione indipendente dai tipi di tensori, utilizzare Tensors . |
---|---|
tipo | L'oggetto classe che rappresenta il tipo T. |
Lancia
IllegalArgumentException | se obj non è compatibile con il sistema di tipo TensorFlow. |
---|
public double doubleValue ()
Restituisce il valore in un tensore scalare Double
.
Lancia
IllegalArgumentException | se il Tensore non rappresenta un doppio scalare. |
---|
tensore pubblico <U> previsto (tipo Classe <U>)
Restituisce questo oggetto Tensore con il tipo Tensor<U>
. Questo metodo è utile quando viene fornito un valore di tipo Tensor<?>
.
Parametri
tipo | qualsiasi array (non nullo) del tipo corretto. |
---|
Lancia
IllegalArgumentException | se il tipo di dati effettivo di questo oggetto non corrisponde al tipo U . |
---|
public float floatValue ()
Restituisce il valore in un tensore Float
scalare.
Lancia
IllegalArgumentException | se il Tensore non rappresenta uno scalare float. |
---|
public int intValue ()
Restituisce il valore in un tensore scalare Integer
.
Lancia
IllegalArgumentException | se il Tensore non rappresenta uno scalare int. |
---|
public long longValue ()
Restituisce il valore in un tensore scalare Long
.
Lancia
IllegalArgumentException | se il Tensore non rappresenta uno scalare lungo. |
---|
public int numBytes ()
Restituisce la dimensione, in byte, dei dati del tensore.
public int numDimensioni ()
Restituisce il numero di dimensioni (a volte indicato come rango ) del Tensore.
Sarà 0 per uno scalare, 1 per un vettore, 2 per una matrice, 3 per un tensore tridimensionale ecc.
public int numElements ()
Restituisce il numero di elementi in una vista appiattita (1-D) del tensore.
forma pubblica lunga[] ()
Restituisce la forma del Tensore, ovvero le dimensioni di ciascuna dimensione.
Ritorni
- un array in cui l'i-esimo elemento è la dimensione dell'i-esima dimensione del tensore.
stringa pubblica toString ()
Restituisce una stringa che descrive il tipo e la forma del Tensore.
public void writeTo (LongBuffer dst)
Scrivi i dati di un tensore Long
nel buffer specificato.
Copia gli elementi numElements()
nel buffer.
Parametri
dst | il buffer di destinazione |
---|
Lancia
BufferOverflowException | Se lo spazio nel buffer specificato non è sufficiente per i dati in questo tensore |
---|---|
IllegalArgumentException | Se il tipo di dati del tensore non è Long |
public void writeTo (DoubleBuffer dst)
Scrivi i dati di un Double
tensore nel buffer specificato.
Copia gli elementi numElements()
nel buffer.
Parametri
dst | il buffer di destinazione |
---|
Lancia
BufferOverflowException | Se lo spazio nel buffer specificato non è sufficiente per i dati in questo tensore |
---|---|
IllegalArgumentException | Se il tipo di dati del tensore non è Double |
public void writeTo (IntBuffer dst)
Scrivi i dati di un tensore Integer
nel buffer specificato.
Copia gli elementi numElements()
nel buffer.
Parametri
dst | il buffer di destinazione |
---|
Lancia
BufferOverflowException | Se lo spazio nel buffer specificato non è sufficiente per i dati in questo tensore |
---|---|
IllegalArgumentException | Se il tipo di dati del tensore non è Integer |
public void writeTo (ByteBuffer dst)
Scrivi i dati del tensore nel buffer specificato.
Copia i byte numBytes()
nel buffer nell'ordine dei byte nativo per i tipi primitivi.
Parametri
dst | il buffer di destinazione |
---|
Lancia
BufferOverflowException | Se lo spazio nel buffer specificato non è sufficiente per i dati in questo tensore |
---|
public void writeTo (FloatBuffer dst)
Scrivere i dati di un tensore Float
nel buffer specificato.
Copia gli elementi numElements()
nel buffer.
Parametri
dst | il buffer di destinazione |
---|
Lancia
BufferOverflowException | Se lo spazio nel buffer specificato non è sufficiente per i dati in questo tensore |
---|---|
IllegalArgumentException | Se il tipo di dati del tensore non è Float |