Un tableau multidimensionnel de type statique dont les éléments sont d'un type décrit par T.
Les instances d'un Tensor ne sont pas thread-safe.
AVERTISSEMENT: les ressources consommées par l'objet Tensor doivent être explicitement libérées en appelant la méthode close()
lorsque l'objet n'est plus nécessaire. Par exemple, en utilisant un bloc try-with-resources:
try (Tensor t = Tensor.create(...)) {
doSomethingWith(t);
}
Méthodes publiques
booléen | valeur booléenne () Renvoie la valeur dans un tenseur Boolean scalaire. |
octet[] | bytesValue () Renvoie la valeur dans un tenseur de String scalaire. |
annuler | fermer () Libérez les ressources associées au Tensor. |
<U> U | copyTo (U dst) Copie le contenu du tenseur dans dst et renvoie dst . |
Tenseur statique <?> | create (objet obj) Crée un tenseur à partir d'un objet dont la classe est inspectée pour déterminer quel doit être le type de données sous-jacent. |
statique <T> Tensor <T> | create (type Classe <T>, forme longue [], données ByteBuffer) Créez un Tensor de n'importe quel type avec les données du tampon donné. |
Tenseur statique <Double> | |
Tenseur statique <Long> | |
Tenseur statique <Integer> | |
Tenseur statique <Float> | |
statique <T> Tensor <T> | create (objet objet, type Classe <T>) Crée un Tensor à partir d'un objet Java. |
Type de données | |
double | doubleValue () Renvoie la valeur dans un Double tenseur scalaire. |
<U> Tenseur <U> | expect (type de classe <U>) Renvoie cet objet Tensor avec le type Tensor<U> . |
flotter | floatValue () Renvoie la valeur dans un tenseur scalaire Float . |
int | |
longue | |
int | numBytes () Renvoie la taille, en octets, des données du tenseur. |
int | numDimensions () Renvoie le nombre de dimensions (parfois appelées rang ) du Tensor. |
int | numElements () Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur. |
longue[] | |
Chaîne | toString () Renvoie une chaîne décrivant le type et la forme du Tensor. |
annuler | |
annuler | |
annuler | |
annuler | writeTo (ByteBuffer dst) Ecrivez les données du tenseur dans le tampon donné. |
annuler |
Méthodes héritées
Méthodes publiques
public boolean booleanValue ()
Renvoie la valeur dans un tenseur Boolean
scalaire.
Jette
Exception d'argument illégal | si le Tensor ne représente pas un scalaire booléen. |
---|
octet public [] bytesValue ()
Renvoie la valeur dans un tenseur de String
scalaire.
Jette
Exception d'argument illégal | si le Tensor ne représente pas un scalaire booléen. |
---|
public void close ()
Libérez les ressources associées au Tensor.
AVERTISSEMENT: Ceci doit être invoqué pour tous les tenseurs qui n'ont pas été produits par une opération impatiente ou la mémoire sera perdue.
L'objet Tensor n'est plus utilisable après les retours de close
.
public U copyTo (U dst)
Copie le contenu du tenseur dans dst
et renvoie dst
.
Pour les tenseurs non scalaires, cette méthode copie le contenu du tenseur sous-jacent dans un tableau Java. Pour les tenseurs scalaires, utilisez bytesValue()
une des bytesValue()
, floatValue()
, doubleValue()
, intValue()
, longValue()
ou booleanValue()
. Le type et la forme de dst
doivent être compatibles avec le tenseur. Par exemple:
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);
}
}
Jette
Exception d'argument illégal | si le tenseur est un scalaire ou si dst n'est pas compatible avec le tenseur (par exemple, types de données ou formes incompatibles). |
---|
public static Tensor <?> create (Object obj)
Crée un tenseur à partir d'un objet dont la classe est inspectée pour déterminer quel doit être le type de données sous-jacent.
Jette
Exception d'argument illégal | si obj n'est pas compatible avec le système de type TensorFlow. |
---|
public static Tensor <T> create (type de classe <T>, forme longue [], données ByteBuffer)
Créez un Tensor de n'importe quel type avec les données du tampon donné.
Crée un Tensor avec la forme fournie de n'importe quel type où les données du Tensor ont été encodées en data
conformément à la spécification de l' API TensorFlow C.
Paramètres
taper | le type d'élément tensor, représenté comme un objet de classe. |
---|---|
façonner | la forme tenseur. |
Les données | un tampon contenant les données du tenseur. |
Jette
Exception d'argument illégal | Si le type de données ou la forme du tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Double> create (forme longue [], données DoubleBuffer)
Créez un Double
Tensor avec les données du tampon donné.
Crée un Tensor avec la forme donnée en copiant des éléments du buffer (à partir de sa position actuelle) dans le Tensor. Par exemple, si shape = {2,3
} (qui représente une matrice 2x3) alors le tampon doit avoir 6 éléments restants, qui seront consommés par cette méthode.
Paramètres
façonner | la forme tenseur. |
---|---|
Les données | un tampon contenant les données du tenseur. |
Jette
Exception d'argument illégal | Si la forme tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Long> create (forme longue [], données LongBuffer)
Créez un Long
Tensor avec les données du tampon donné.
Crée un Tensor avec la forme donnée en copiant des éléments du buffer (à partir de sa position actuelle) dans le Tensor. Par exemple, si shape = {2,3
} (qui représente une matrice 2x3) alors le tampon doit avoir 6 éléments restants, qui seront consommés par cette méthode.
Paramètres
façonner | la forme tenseur. |
---|---|
Les données | un tampon contenant les données du tenseur. |
Jette
Exception d'argument illégal | Si la forme tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Integer> create (forme longue [], données IntBuffer)
Créez un Tensor Integer
avec les données du tampon donné.
Crée un Tensor avec la forme donnée en copiant des éléments du buffer (à partir de sa position actuelle) dans le Tensor. Par exemple, si shape = {2,3
} (qui représente une matrice 2x3) alors le tampon doit avoir 6 éléments restants, qui seront consommés par cette méthode.
Paramètres
façonner | la forme tenseur. |
---|---|
Les données | un tampon contenant les données du tenseur. |
Jette
Exception d'argument illégal | Si la forme tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Float> create (forme longue [], données FloatBuffer)
Créez un Float
Tensor avec les données du tampon donné.
Crée un Tensor avec la forme donnée en copiant des éléments du buffer (à partir de sa position actuelle) dans le Tensor. Par exemple, si shape = {2,3
} (qui représente une matrice 2x3) alors le tampon doit avoir 6 éléments restants, qui seront consommés par cette méthode.
Paramètres
façonner | la forme tenseur. |
---|---|
Les données | un tampon contenant les données du tenseur. |
Jette
Exception d'argument illégal | Si la forme tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <T> create (Object obj, type Class <T>)
Crée un Tensor à partir d'un objet Java.
Un Tensor
est un tableau multidimensionnel d'éléments d'un ensemble limité de types. Tous les objets Java ne peuvent pas être convertis en Tensor
. En particulier, l'argument obj
doit être soit une primitive (float, double, int, long, boolean, byte), soit un tableau multidimensionnel de l'une de ces primitives. Le type
argument spécifie comment interpréter le premier argument en tant que type TensorFlow. Par exemple:
// 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
Tensors de type String
sont des tableaux multidimensionnels de séquences d'octets arbitraires, ils peuvent donc être initialisés à partir de tableaux d'éléments byte[]
. Par exemple: // 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"; Tensors = 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); }
Paramètres
obj | Objet à convertir en Tensor<T> . Notez que sa compatibilité avec le type T n'est pas vérifiée par le système de type. Pour créer des tenseurs de type sécurisé, utilisez des Tensors . |
---|---|
taper | L'objet de classe représentant le type T. |
Jette
Exception d'argument illégal | si obj n'est pas compatible avec le système de type TensorFlow. |
---|
public double doubleValue ()
Renvoie la valeur dans un Double
tenseur scalaire.
Jette
Exception d'argument illégal | si le Tensor ne représente pas un double scalaire. |
---|
public Tensor <U> expect (type de classe <U>)
Renvoie cet objet Tensor avec le type Tensor<U>
. Cette méthode est utile lorsqu'on lui donne une valeur de type Tensor<?>
.
Paramètres
taper | tout tableau (non nul) du type correct. |
---|
Jette
Exception d'argument illégal | si le type de données réel de cet objet ne correspond pas au type U |
---|
public float floatValue ()
Renvoie la valeur dans un tenseur Float
scalaire.
Jette
Exception d'argument illégal | si le Tensor ne représente pas un scalaire flottant. |
---|
public int intValue ()
Renvoie la valeur dans un tenseur Integer
scalaire.
Jette
Exception d'argument illégal | si le Tensor ne représente pas un scalaire int. |
---|
public long longValue ()
Renvoie la valeur dans un tenseur Long
scalaire.
Jette
Exception d'argument illégal | si le Tensor ne représente pas un long scalaire. |
---|
public int numBytes ()
Renvoie la taille, en octets, des données du tenseur.
public int numDimensions ()
Renvoie le nombre de dimensions (parfois appelées rang ) du Tensor.
Sera 0 pour un scalaire, 1 pour un vecteur, 2 pour une matrice, 3 pour un tenseur tridimensionnel etc.
public int numElements ()
Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur.
public long [] shape ()
Renvoie la forme du Tensor, c'est-à-dire les tailles de chaque dimension.
Retour
- un tableau où le i-ème élément est la taille de la i-ème dimension du tenseur.
chaîne publique toString ()
Renvoie une chaîne décrivant le type et la forme du Tensor.
public void writeTo (LongBuffer dst)
Ecrivez les données d'un Long
tenseur dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
dst | le tampon de destination |
---|
Jette
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données de ce tenseur |
---|---|
Exception d'argument illégal | Si le type de données du tenseur n'est pas Long |
public void writeTo (DoubleBuffer dst)
Ecrivez les données d'un Double
tenseur dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
dst | le tampon de destination |
---|
Jette
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données de ce tenseur |
---|---|
Exception d'argument illégal | Si le type de données du tenseur n'est pas Double |
public void writeTo (IntBuffer dst)
Ecrivez les données d'un tenseur Integer
dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
dst | le tampon de destination |
---|
Jette
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données de ce tenseur |
---|---|
Exception d'argument illégal | Si le type de données du tenseur n'est pas Integer |
public void writeTo (ByteBuffer dst)
Ecrivez les données du tenseur dans le tampon donné.
Copie numBytes()
octets dans la mémoire tampon dans l'ordre des octets natif pour les types primitifs.
Paramètres
dst | le tampon de destination |
---|
Jette
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données de ce tenseur |
---|
public void writeTo (FloatBuffer dst)
Ecrivez les données d'un tenseur Float
dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
dst | le tampon de destination |
---|
Jette
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données de ce tenseur |
---|---|
Exception d'argument illégal | Si le type de données du tenseur n'est pas Float |