La forma de un tensor o NdArray
.
Una Shape
define tamaños a lo largo de sus ejes. Puede contener un tamaño desconocido para uno de los ejes o puede ser totalmente desconocido, en cuyo caso ni siquiera se conoce el número de ejes. Si se desconoce el tamaño de un eje, se debe usar UNKNOWN_SIZE
como su tamaño.
Campos
público estático largo | UNKNOWN_SIZE | El tamaño de un eje desconocido o el tamaño total desconocido de una Forma desconocida. |
Métodos públicos
Forma | append (long lastDimension) Devuelve una nueva forma, con una nueva última dimensión agregada. |
Forma | |
largo[] | asArray () Devuelve una copia defensiva de los ejes de esta forma. |
booleano | es igual a (Objeto obj) Implementación igual para Shapes. |
booleano | hasUnknownDimension () Devuelve si una o más dimensiones de esta forma tienen un tamaño desconocido. |
En t | hashCode () |
Forma | cabeza () Devuelve una forma unidimensional con la primera dimensión que coincide con la primera dimensión de esta forma. |
booleano estático | isCompatible (long dim, long otherDim) Pruebe para ver si dos dimensiones de forma son compatibles. |
booleano | |
booleano | isMatrix () Devuelve si esta forma es la forma de una matriz |
booleano | isScalar () Devuelve si esta forma representa un escalar. |
booleano | isUnknown () Devuelve si se desconoce el número de dimensiones de esta forma. |
booleano | isVector () Devuelve si esta forma es la forma de un vector. |
En t | numDimensions () Devuelve el número de dimensiones de esta forma. |
forma estática | de (long ... dimensionSizes) Cree una forma que represente un valor escalar o N-dimensional. |
Forma | |
Forma | anteponer (primera dimensión larga) Devuelve una nueva forma, con una nueva primera dimensión agregada. |
forma estática | escalar () Crea una forma que representa un valor escalar. |
largo | tamaño (int i) El tamaño de la dimensión con el índice dado. |
largo | tamaño () Devuelve el número total de elementos que tendría un tensor con esta forma. |
Forma | subShape (inicio int, fin int) Devolver un end - begin forma tridimensional con las dimensiones que coinciden con la Forma de begin a end . |
Forma | cola () Devuelve una nueva forma, con la primera dimensión de esta forma eliminada. |
Forma | tomar (int n) Devuelve una forma n-dimensional con las dimensiones que coinciden con las primeras n dimensiones de esta forma |
Forma | takeLast (int n) Devuelve una forma n-dimensional con las dimensiones que coinciden con las últimas n dimensiones de esta forma. |
Cuerda | toString () Descripción sucinta de la forma destinada a la depuración. |
forma estática | desconocido () Crea una forma que representa un número desconocido de dimensiones. |
Métodos heredados
Campos
public static long UNKNOWN_SIZE
El tamaño de un eje desconocido o el tamaño total desconocido de una Forma desconocida.
Métodos públicos
pública en forma de adición (tiempo lastDimension)
Devuelve una nueva forma, con una nueva última dimensión agregada. Para que esta llamada isUnknown()
éxito, isUnknown()
debe ser false
.
Parámetros
lastDimension | la dimensión para agregar |
---|
Devoluciones
- una nueva forma con las dimensiones de esta forma seguida de la dimensión dada, nunca nula
Anexar forma pública ( Forma otra)
Devuelve una nueva forma, con las dimensiones de otras formas adjuntas. Tanto para esta forma como para la otra forma, isUnknown()
debe devolver falso. Por ejemplo, @code Shape.of (3,4) .append (Shape.of (1,2)) => Shape.of (3,4,1,2)}
Parámetros
otro | otra forma, no debe ser null , no debe ser desconocida |
---|
Devoluciones
- Una nueva forma que consta de las dimensiones de esta forma seguidas de las dimensiones de la forma dada
public long [] asArray ()
Devuelve una copia defensiva de los ejes de esta forma. Cambios en la matriz devuelta para no cambiar el estado de esta forma. Devuelve nulo si isUnknown()
es verdadero.
public boolean es igual a (Object obj)
Implementación igual para Shapes. Dos formas se consideran iguales si:
- el número de dimensiones está definido y es igual para ambos
- el tamaño de cada dimensión está definido y es igual para ambos
Si alguna forma tiene dimensiones desconocidas (incluso si son iguales en ambas) o si alguna forma tiene un número desconocido de dimensiones (incluso si ambas devuelven true
para isUnknown()
), ¡no se consideran iguales! Sin embargo, una forma siempre será igual a sí misma, incluso si es desconocida o contiene dimensiones desconocidas.
public boolean hasUnknownDimension ()
Devuelve si una o más dimensiones de esta forma tienen un tamaño desconocido.
public int hashCode ()
cabeza de forma pública ()
Devuelve una forma unidimensional con la primera dimensión que coincide con la primera dimensión de esta forma.
public static boolean isCompatible (long dim, long otherDim)
Pruebe para ver si dos dimensiones de forma son compatibles.
Las dimensiones son compatibles si cualquiera de las dimensiones es Shape.UNKNOWN_SIZE
o ambas dimensiones son iguales
Parámetros
oscuro | la primera dimensión |
---|---|
otherDim | la segunda dimensión |
Devoluciones
- cierto, si ambas dimensiones son compatibles
public boolean isCompatibleWith ( forma de forma)
Determina si otra forma es compatible con esta.
Dos formas posiblemente definidas parcialmente son compatibles si existe una forma completamente definida que ambas formas puedan representar. Por tanto, la compatibilidad permite que el código de inferencia de forma razone sobre formas parcialmente definidas. Por ejemplo:
-
Shape.unknown()
es compatible con todas las formas. -
Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
es compatible con todas las formas bidimensionales, comoShape(32, 784)
y tambiénShape.unknown()
. No es compatible, por ejemplo, conShape(UNKNOWN_SIZE)
oShape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE)
. -
Shape(32, UNKNOWN_SIZE)
es compatible con todas las formas bidimensionales con tamaño 32 en la dimensión 0, y tambiénShape(UNKNOWN_SIZE, UNKNOWN_SIZE)
yShape.unknown()
. No es compatible, por ejemplo, conShape(32)
,Shape(32, UNKNOWN_SIZE, 1)
oShape(64, UNKNOWN_SIZE)
. -
Shape(32, 784)
es compatible consigo mismo, y tambiénShape(32, UNKNOWN_SIZE)
,Shape(UNKNOWN_SIZE, 784)
,Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
yShape.unknown()
. No es compatible, por ejemplo, conShape(32, 1, 784)
oShape(UNKNOWN_SIZE)
.
La relación de compatibilidad es reflexiva y simétrica, pero no transitiva. Por ejemplo, Shape(32, 784)
es compatible con Shape.unknown()
y Shape.unknown()
es compatible con Shape(4, 4)
, pero Shape(32, 784)
no es compatible con Shape(4, 4)
.
La compatibilidad no es lo mismo que la radiodifusión. Las formas compatibles deben tener el mismo número de dimensiones y para cada par de dimensiones, una dimensión debe ser igual a las otras dimensiones o al menos una de las dimensiones del par debe ser UNKNOWN_SIZE.
La radiodifusión permite diferentes dimensiones, pero las dimensiones emparejadas deben ser iguales o una dimensión debe ser 1. Si una forma tiene menos dimensiones que otra forma, la forma más pequeña se "estira" con dimensiones de 1.
Parámetros
forma | La otra forma |
---|
Devoluciones
- cierto, si las dos formas son compatibles.
isMatrix booleano público ()
Devuelve si esta forma es la forma de una matriz
public boolean isScalar ()
Devuelve si esta forma representa un escalar.
public boolean isUnknown ()
Devuelve si se desconoce el número de dimensiones de esta forma.
public boolean isVector ()
Devuelve si esta forma es la forma de un vector.
public int numDimensions ()
Devuelve el número de dimensiones de esta forma. -1 si se desconoce, 0 para un escalar, 1 para un vector, 2 para una matriz, etc.
Forma estática pública de (long ... dimensionSizes)
Cree una forma que represente un valor escalar o N-dimensional.
Crea una forma que representa un valor escalar o N-dimensional (siendo N al menos 1), con el tamaño proporcionado para cada dimensión. Un -1 indica que se desconoce el tamaño de la dimensión correspondiente. Si no se proporcionan tamaños, se crea una forma que representa un escalar. Por ejemplo:
// A 2-element vector.
Shape vector = Shape.of(2);
// A 2x3 matrix.
Shape matrix = Shape.of(2, 3);
// A matrix with 4 columns but an unknown number of rows.
// This is typically used to indicate the shape of tensors that represent
// a variable-sized batch of values. The Shape below might represent a
// variable-sized batch of 4-element vectors.
Shape batch = Shape.of(-1, 4);
// A scalar. For readability, you should prefer calling Shape.scalar()
Shape scalar = Shape.of()
Parámetros
dimensiónTamaños | número de elementos en cada dimensión de esta forma, si existe, o UNKNOWN_SIZE si se desconoce. |
---|
Devoluciones
- una nueva forma
público Forma anteponer ( Forma otro)
Devuelve una nueva forma, con las dimensiones de otra forma antepuestas. Tanto para esta forma como para la otra forma, isUnknown()
debe devolver falso. Por ejemplo, Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)
. Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)
Parámetros
otro | otra forma, no debe ser null , no debe ser desconocida |
---|
Devoluciones
- Una nueva forma que consta de las dimensiones de la forma dada seguidas de las dimensiones de esta forma, nunca nula
prefijo de forma pública (primera dimensión larga)
Devuelve una nueva forma, con una nueva primera dimensión agregada. Para que esta llamada isUnknown()
éxito, isUnknown()
debe ser false
.
Parámetros
firstDimension | la dimensión para anteponer |
---|
Devoluciones
- una nueva forma con la dimensión dada primero, seguida de las dimensiones de esta forma, nunca nula
escalar de forma estática pública ()
Crea una forma que representa un valor escalar.
Devoluciones
- Una forma sin dimensiones para la que
isScalar()
es verdadero, nunca nulo.
público de tamaño largo (int i)
El tamaño de la dimensión con el índice dado.
Si isUnknown()
es verdadero o el tamaño de la dimensión con el índice dado tiene un tamaño desconocido, se devuelve UNKNOWN_SIZE
.
Parámetros
I | el índice de la dimensión para la que se va a obtener el tamaño. Si esta forma tiene un número conocido de dimensiones, debe ser < numDimensions() . El índice puede ser negativo, en cuyo caso la posición se cuenta desde el final de la forma. Por ejemplo: size(-1) devuelve el tamaño de la última dimensión, size(-2) el tamaño de la penúltima dimensión, etc. |
---|
Devoluciones
- El tamaño de la dimensión con el índice dado si se conoce,
UNKNOWN_SIZE
caso contrario.
público de tamaño largo ()
Devuelve el número total de elementos que tendría un tensor con esta forma.
Si isUnknown()
es verdadero o hasUnknownDimension()
es verdadero, se devuelve UNKNOWN_SIZE
.
Devoluciones
- El número total de elementos que tendría un tensor con esta forma si se pudiera calcular, de lo contrario
UNKNOWN_SIZE
.
subforma de forma pública (int begin, int end)
Devolver un end - begin
forma tridimensional con las dimensiones que coinciden con la Forma de begin
a end
.
Parámetros
empezar | Dónde empezar la subforma. |
---|---|
final | Dónde terminar la subforma, exclusiva. |
Devoluciones
- la subforma delimitada por el principio y el final.
cola de forma pública ()
Devuelve una nueva forma, con la primera dimensión de esta forma eliminada.
toma de forma pública (int n)
Devuelve una forma n-dimensional con las dimensiones que coinciden con las primeras n dimensiones de esta forma
Parámetros
norte | el número de dimensiones numDimensions() a obtener, debe ser <= que numDimensions() |
---|
Devoluciones
- una forma n-dimensional con las primeras n dimensiones que coinciden con las primeras n dimensiones de esta forma
forma pública takeLast (int n)
Devuelve una forma n-dimensional con las dimensiones que coinciden con las últimas n dimensiones de esta forma.
Parámetros
norte | el número de dimensiones finales a obtener, debe ser <= que numDimensions() |
---|
Devoluciones
- una forma n-dimensional con las dimensiones que coinciden con las últimas n dimensiones de esta forma, nunca nula
cadena pública toString ()
Descripción sucinta de la forma destinada a la depuración.
Forma estática pública desconocida ()
Crea una forma que representa un número desconocido de dimensiones.
Devoluciones
- Una forma para la que
isUnknown()
es verdadera, nunca nula.