Una matriz multidimensional tipada estáticamente cuyos elementos son de un tipo descrito por T.
Las instancias de un tensor no son seguras para subprocesos.
ADVERTENCIA: Los recursos consumidos por el objeto Tensor deben liberarse explícitamente invocando el método close()
cuando el objeto ya no sea necesario. Por ejemplo, usando un bloque de prueba con recursos:
try (Tensor t = Tensor.create(...)) {
doSomethingWith(t);
}
Métodos públicos
booleano | valor booleano () Devuelve el valor en un tensor Boolean escalar. |
byte[] | bytesValor () Devuelve el valor en un tensor String escalar. |
vacío | cerca () Liberar recursos asociados con el Tensor. |
<U>U | copiar a (U dst) Copia el contenido del tensor a dst y devuelve dst . |
Tensor estático <?> | crear (objeto objeto) Crea un tensor a partir de un objeto cuya clase se inspecciona para determinar cuál debería ser el tipo de datos subyacente. |
estático <T> Tensor <T> | crear (tipo Class<T>, forma larga[], datos ByteBuffer) Cree un tensor de cualquier tipo con datos del búfer dado. |
Tensor estático <Doble> | |
Tensor estático <largo> | |
Tensor estático <Entero> | |
Tensor estático <Flotante> | |
estático <T> Tensor <T> | crear (Objeto obj, tipo Clase<T>) Crea un tensor a partir de un objeto Java. |
Tipo de datos | tipo de datos () Devuelve el DataType de los elementos almacenados en el tensor. |
doble | valor doble () Devuelve el valor en un tensor Double escalar. |
<U> Tensor <U> | esperar (tipo Clase<U>) Devuelve este objeto Tensor con el tipo Tensor<U> . |
flotar | valor flotante () Devuelve el valor en un tensor Float escalar. |
entero | |
largo | valorlargo () Devuelve el valor en un tensor escalar Long . |
entero | número de bytes () Devuelve el tamaño, en bytes, de los datos del tensor. |
entero | númDimensiones () Devuelve el número de dimensiones (a veces denominado rango ) del tensor. |
entero | númElementos () Devuelve el número de elementos en una vista aplanada (1D) del tensor. |
largo[] | |
Cadena | a cadena () Devuelve una cadena que describe el tipo y la forma del tensor. |
vacío | escribir en (horario de búfer largo) Escriba los datos de un tensor Long en el búfer dado. |
vacío | escribir en (horario de DoubleBuffer) Escriba los datos de un tensor Double en el búfer dado. |
vacío | escribir en (IntBuffer dst) Escriba los datos de un tensor Integer en el búfer dado. |
vacío | escribir en (ByteBuffer dst) Escriba los datos del tensor en el búfer dado. |
vacío | escribir en (FloatBuffer horario de verano) Escriba los datos de un tensor Float en el búfer dado. |
Métodos heredados
Métodos públicos
valor booleano booleano público ()
Devuelve el valor en un tensor Boolean
escalar.
Lanza
Excepción de argumento ilegal | si el tensor no representa un escalar booleano. |
---|
byte público[] bytesValor ()
Devuelve el valor en un tensor String
escalar.
Lanza
Excepción de argumento ilegal | si el tensor no representa un escalar booleano. |
---|
cierre público vacío ()
Liberar recursos asociados con el Tensor.
ADVERTENCIA: Esto debe invocarse para todos los tensores que no fueron producidos por una operación ansiosa o se perderá memoria.
El objeto Tensor ya no se puede utilizar después de que close
el retorno.
copia U pública a (U dst)
Copia el contenido del tensor a dst
y devuelve dst
.
Para tensores no escalares, este método copia el contenido del tensor subyacente en una matriz Java. Para tensores escalares, utilice uno de bytesValue()
, floatValue()
, doubleValue()
, intValue()
, longValue()
o booleanValue()
en su lugar. El tipo y forma de dst
debe ser compatible con el tensor. Por ejemplo:
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);
}
}
Lanza
Excepción de argumento ilegal | si el tensor es un escalar o si dst no es compatible con el tensor (por ejemplo, formas o tipos de datos que no coinciden). |
---|
Tensor estático público <?> crear (Objeto obj)
Crea un tensor a partir de un objeto cuya clase se inspecciona para determinar cuál debería ser el tipo de datos subyacente.
Lanza
Excepción de argumento ilegal | si obj no es compatible con el sistema de tipos TensorFlow. |
---|
Creación de tensor estático público <T> (tipo Class<T>, forma larga[], datos ByteBuffer)
Cree un tensor de cualquier tipo con datos del búfer dado.
Crea un tensor con la forma proporcionada de cualquier tipo donde los datos del tensor se han codificado en data
según la especificación de la API de TensorFlow C.
Parámetros
tipo | el tipo de elemento tensor, representado como un objeto de clase. |
---|---|
forma | la forma del tensor. |
datos | un búfer que contiene los datos del tensor. |
Lanza
Excepción de argumento ilegal | Si el tipo de datos o la forma del tensor no es compatible con el búfer |
---|
Tensor estático público <Double> crear (forma larga [], datos de DoubleBuffer)
Cree un Double
tensor con datos del búfer dado.
Crea un tensor con la forma dada copiando elementos del búfer (comenzando desde su posición actual) en el tensor. Por ejemplo, si shape = {2,3
} (que representa una matriz de 2x3), entonces al búfer le deben quedar 6 elementos, que serán consumidos por este método.
Parámetros
forma | la forma del tensor. |
---|---|
datos | un búfer que contiene los datos del tensor. |
Lanza
Excepción de argumento ilegal | Si la forma del tensor no es compatible con el buffer |
---|
Tensor estático público <Long> crear (forma larga [], datos LongBuffer)
Cree un tensor Long
con datos del búfer dado.
Crea un tensor con la forma dada copiando elementos del búfer (comenzando desde su posición actual) en el tensor. Por ejemplo, si shape = {2,3
} (que representa una matriz de 2x3), entonces al búfer le deben quedar 6 elementos, que serán consumidos por este método.
Parámetros
forma | la forma del tensor. |
---|---|
datos | un búfer que contiene los datos del tensor. |
Lanza
Excepción de argumento ilegal | Si la forma del tensor no es compatible con el buffer |
---|
Creación de tensor estático público <Integer> (forma larga [], datos IntBuffer)
Cree un tensor Integer
con datos del búfer dado.
Crea un tensor con la forma dada copiando elementos del búfer (comenzando desde su posición actual) en el tensor. Por ejemplo, si shape = {2,3
} (que representa una matriz de 2x3), entonces al búfer le deben quedar 6 elementos, que serán consumidos por este método.
Parámetros
forma | la forma del tensor. |
---|---|
datos | un búfer que contiene los datos del tensor. |
Lanza
Excepción de argumento ilegal | Si la forma del tensor no es compatible con el buffer |
---|
Creación de tensor estático público <Float> (forma larga [], datos FloatBuffer)
Cree un tensor Float
con datos del búfer dado.
Crea un tensor con la forma dada copiando elementos del búfer (comenzando desde su posición actual) en el tensor. Por ejemplo, si shape = {2,3
} (que representa una matriz de 2x3), entonces al búfer le deben quedar 6 elementos, que serán consumidos por este método.
Parámetros
forma | la forma del tensor. |
---|---|
datos | un búfer que contiene los datos del tensor. |
Lanza
Excepción de argumento ilegal | Si la forma del tensor no es compatible con el buffer |
---|
Creación de tensor estático público <T> (Objeto obj, tipo Clase<T>)
Crea un tensor a partir de un objeto Java.
Un Tensor
es una matriz multidimensional de elementos de un conjunto limitado de tipos. No todos los objetos Java se pueden convertir en Tensor
. En particular, el argumento obj
debe ser una primitiva (flotante, doble, int, larga, booleana, byte) o una matriz multidimensional de una de esas primitivas. El type
argumento especifica cómo interpretar el primer argumento como un tipo de TensorFlow. Por ejemplo:
// 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);
Los tensores de tipo String
son matrices multidimensionales de secuencias de bytes arbitrarias, por lo que se pueden inicializar a partir de matrices de elementos byte[]
. Por ejemplo: // 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); }
Parámetros
objeto | El objeto que se va a convertir en Tensor<T> . Tenga en cuenta que el sistema de tipos no comprueba si es compatible con el tipo T. Para la creación de tensores con seguridad de tipos, utilice Tensors . |
---|---|
tipo | El objeto de clase que representa el tipo T. |
Lanza
Excepción de argumento ilegal | si obj no es compatible con el sistema de tipos TensorFlow. |
---|
tipo de datos público tipo de datos ()
Devuelve el DataType
de los elementos almacenados en el tensor.
público doble valor doble ()
Devuelve el valor en un tensor Double
escalar.
Lanza
Excepción de argumento ilegal | si el Tensor no representa un doble escalar. |
---|
Tensor público <U> esperado (tipo Clase<U>)
Devuelve este objeto Tensor con el tipo Tensor<U>
. Este método es útil cuando se le da un valor de tipo Tensor<?>
.
Parámetros
tipo | cualquier matriz (no nula) del tipo correcto. |
---|
Lanza
Excepción de argumento ilegal | si el tipo de datos real de este objeto no coincide con el tipo U |
---|
flotador público floatValue ()
Devuelve el valor en un tensor Float
escalar.
Lanza
Excepción de argumento ilegal | si el tensor no representa un escalar flotante. |
---|
público int intValue ()
Devuelve el valor en un tensor Integer
escalar.
Lanza
Excepción de argumento ilegal | si el Tensor no representa un escalar int. |
---|
público largo longValue ()
Devuelve el valor en un tensor escalar Long
.
Lanza
Excepción de argumento ilegal | si el tensor no representa un escalar largo. |
---|
público int númBytes ()
Devuelve el tamaño, en bytes, de los datos del tensor.
public int numDimensiones ()
Devuelve el número de dimensiones (a veces denominado rango ) del tensor.
Será 0 para un escalar, 1 para un vector, 2 para una matriz, 3 para un tensor tridimensional, etc.
public int numElements ()
Devuelve el número de elementos en una vista aplanada (1D) del tensor.
forma pública larga [] ()
Devuelve la forma del Tensor, es decir, los tamaños de cada dimensión.
Devoluciones
- una matriz donde el i-ésimo elemento es el tamaño de la i-ésima dimensión del tensor.
cadena pública a cadena ()
Devuelve una cadena que describe el tipo y la forma del tensor.
escritura vacía pública en (LongBuffer dst)
Escriba los datos de un tensor Long
en el búfer dado.
Copia elementos numElements()
al búfer.
Parámetros
horario de verano | el buffer de destino |
---|
Lanza
Excepción de desbordamiento de búfer | Si no hay suficiente espacio en el buffer dado para los datos en este tensor |
---|---|
Excepción de argumento ilegal | Si el tipo de datos del tensor no es Long |
escritura vacía pública en (DoubleBuffer dst)
Escriba los datos de un tensor Double
en el búfer dado.
Copia elementos numElements()
al búfer.
Parámetros
horario de verano | el buffer de destino |
---|
Lanza
Excepción de desbordamiento de búfer | Si no hay suficiente espacio en el buffer dado para los datos en este tensor |
---|---|
Excepción de argumento ilegal | Si el tipo de datos del tensor no es Double |
escritura vacía pública en (IntBuffer dst)
Escriba los datos de un tensor Integer
en el búfer dado.
Copia elementos numElements()
al búfer.
Parámetros
horario de verano | el buffer de destino |
---|
Lanza
Excepción de desbordamiento de búfer | Si no hay suficiente espacio en el buffer dado para los datos en este tensor |
---|---|
Excepción de argumento ilegal | Si el tipo de datos del tensor no es Integer |
escritura vacía pública en (ByteBuffer dst)
Escriba los datos del tensor en el búfer dado.
Copia numBytes()
bytes al búfer en el orden de bytes nativo para tipos primitivos.
Parámetros
horario de verano | el buffer de destino |
---|
Lanza
Excepción de desbordamiento de búfer | Si no hay suficiente espacio en el buffer dado para los datos en este tensor |
---|
escritura vacía pública en (FloatBuffer dst)
Escriba los datos de un tensor Float
en el búfer dado.
Copia elementos numElements()
al búfer.
Parámetros
horario de verano | el buffer de destino |
---|
Lanza
Excepción de desbordamiento de búfer | Si no hay suficiente espacio en el buffer dado para los datos en este tensor |
---|---|
Excepción de argumento ilegal | Si el tipo de datos del tensor no es Float |