Un tableau multidimensionnel typé statiquement 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[] | octetsValue () Renvoie la valeur dans un tenseur String scalaire. |
vide | 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 <?> | créer (objet obj) Crée un tenseur à partir d'un objet dont la classe est inspectée pour déterminer quel devrait être le type de données sous-jacent. |
Tenseur <T> statique <T> | créer (type Class<T>, forme long[], 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 <Entier> | |
Tenseur statique <Float> | |
Tenseur <T> statique <T> | créer (Objet obj, type Class<T>) Crée un Tensor à partir d'un objet Java. |
Type de données | Type de données () Renvoie le DataType des éléments stockés dans le Tensor. |
double | doubleValeur () Renvoie la valeur dans un tenseur Double scalaire. |
<U> Tenseur <U> | attendre (type Classe<U>) Renvoie cet objet Tensor avec le type Tensor<U> . |
flotter | valeur flottante () Renvoie la valeur dans un tenseur Float scalaire. |
int | |
long | valeur longue () Renvoie la valeur dans un tenseur Long scalaire. |
int | nombreOctets () Renvoie la taille, en octets, des données tensorielles. |
int | numDimensions () Renvoie le nombre de dimensions (parfois appelé rang ) du Tensor. |
int | numElements () Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur. |
long[] | |
Chaîne | àChaîne () Renvoie une chaîne décrivant le type et la forme du Tensor. |
vide | |
vide | |
vide | |
vide | writeTo (ByteBuffer dst) Écrivez les données du tenseur dans le tampon donné. |
vide |
Méthodes héritées
Méthodes publiques
booléen public booleanValue ()
Renvoie la valeur dans un tenseur Boolean
scalaire.
Jetés
IllegalArgumentException | si le Tensor ne représente pas un scalaire booléen. |
---|
octet public[] octetsValue ()
Renvoie la valeur dans un tenseur String
scalaire.
Jetés
IllegalArgumentException | si le Tensor ne représente pas un scalaire booléen. |
---|
public vide fermer ()
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 hâtive, sinon la mémoire sera perdue.
L'objet Tensor n'est plus utilisable après les retours 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 plutôt l'un 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);
}
}
Jetés
IllegalArgumentException | si le tenseur est un scalaire ou si dst n'est pas compatible avec le tenseur (par exemple, des types de données ou des formes ne correspondent pas). |
---|
Tensor statique public <?> créer (Objet obj)
Crée un tenseur à partir d'un objet dont la classe est inspectée pour déterminer quel devrait être le type de données sous-jacent.
Jetés
IllegalArgumentException | si obj n'est pas compatible avec le système de type TensorFlow. |
---|
public static Tensor <T> créer (type Class<T>, forme long[], 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 dans lequel les données du Tensor ont été codées en data
conformément à la spécification de l' API TensorFlow C.
Paramètres
taper | le type d'élément tensoriel, représenté comme un objet de classe. |
---|---|
forme | la forme du tenseur. |
données | un tampon contenant les données tensorielles. |
Jetés
IllegalArgumentException | Si le type de données ou la forme du tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Double> créer (forme long[], 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 les éléments du tampon (en commençant à partir de sa position actuelle) dans le tenseur. 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
forme | la forme du tenseur. |
---|---|
données | un tampon contenant les données tensorielles. |
Jetés
IllegalArgumentException | Si la forme du tenseur n'est pas compatible avec le tampon |
---|
création de Tensor statique public <Long> (forme long[], 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 les éléments du tampon (en commençant à partir de sa position actuelle) dans le tenseur. 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
forme | la forme du tenseur. |
---|---|
données | un tampon contenant les données tensorielles. |
Jetés
IllegalArgumentException | Si la forme du tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Integer> créer (forme long[], données IntBuffer)
Créez un tenseur Integer
avec les données du tampon donné.
Crée un Tensor avec la forme donnée en copiant les éléments du tampon (en commençant à partir de sa position actuelle) dans le tenseur. 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
forme | la forme du tenseur. |
---|---|
données | un tampon contenant les données tensorielles. |
Jetés
IllegalArgumentException | Si la forme du tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <Float> créer (forme long[], 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 les éléments du tampon (en commençant à partir de sa position actuelle) dans le tenseur. 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
forme | la forme du tenseur. |
---|---|
données | un tampon contenant les données tensorielles. |
Jetés
IllegalArgumentException | Si la forme du tenseur n'est pas compatible avec le tampon |
---|
public static Tensor <T> créer (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 d'une de ces primitives. Le type
d'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
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 | L'objet à convertir en Tensor<T> . Notez que sa compatibilité avec le type T n'est pas vérifiée par le système de types. Pour la création de tenseurs de type sécurisé, utilisez Tensors . |
---|---|
taper | L'objet de classe représentant le type T. |
Jetés
IllegalArgumentException | si obj n'est pas compatible avec le système de type TensorFlow. |
---|
public double doubleValue ()
Renvoie la valeur dans un tenseur Double
scalaire.
Jetés
IllegalArgumentException | si le Tensor ne représente pas un double scalaire. |
---|
public Tensor <U> attendu (type Class<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 | n’importe quel tableau (non nul) du type correct. |
---|
Jetés
IllegalArgumentException | 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.
Jetés
IllegalArgumentException | si le Tensor ne représente pas un scalaire flottant. |
---|
public int valeurint ()
Renvoie la valeur dans un tenseur Integer
scalaire.
Jetés
IllegalArgumentException | si le Tensor ne représente pas un scalaire int. |
---|
public long longValue ()
Renvoie la valeur dans un tenseur Long
scalaire.
Jetés
IllegalArgumentException | si le Tensor ne représente pas un long scalaire. |
---|
public int nombreOctets ()
Renvoie la taille, en octets, des données tensorielles.
public int numDimensions ()
Renvoie le nombre de dimensions (parfois appelé 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.
forme publique long[] ()
Renvoie la forme du Tenseur, c'est-à-dire les tailles de chaque dimension.
Retours
- un tableau où le i-ème élément est la taille de la i-ème dimension du tenseur.
chaîne publique versString ()
Renvoie une chaîne décrivant le type et la forme du Tensor.
public void writeTo (LongBuffer dst)
Écrivez les données d'un tenseur Long
dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
heure d'été | le tampon de destination |
---|
Jetés
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données dans ce tenseur |
---|---|
IllegalArgumentException | Si le type de données du tenseur n'est pas Long |
public void writeTo (DoubleBuffer dst)
Écrivez les données d'un tenseur Double
dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
heure d'été | le tampon de destination |
---|
Jetés
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données dans ce tenseur |
---|---|
IllegalArgumentException | Si le type de données du tenseur n'est pas Double |
public void writeTo (IntBuffer dst)
Écrivez les données d'un tenseur Integer
dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
heure d'été | le tampon de destination |
---|
Jetés
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données dans ce tenseur |
---|---|
IllegalArgumentException | Si le type de données du tenseur n'est pas Integer |
public void writeTo (ByteBuffer dst)
Écrivez les données du tenseur dans le tampon donné.
Copie numBytes()
dans le tampon dans l'ordre natif des octets pour les types primitifs.
Paramètres
heure d'été | le tampon de destination |
---|
Jetés
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données dans ce tenseur |
---|
public void writeTo (FloatBuffer dst)
Écrivez les données d'un tenseur Float
dans le tampon donné.
Copie les éléments numElements()
dans le tampon.
Paramètres
heure d'été | le tampon de destination |
---|
Jetés
BufferOverflowException | S'il n'y a pas suffisamment d'espace dans le tampon donné pour les données dans ce tenseur |
---|---|
IllegalArgumentException | Si le type de données du tenseur n'est pas Float |