Shape

clase final pública Forma

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 utilizar UNKNOWN_SIZE como tamaño.

Campos

público estático largo DESCONOCIDO_SIZE El tamaño de un eje desconocido o el tamaño total desconocido para una forma desconocida.

Métodos públicos

Forma
agregar (última dimensión larga)
Devuelve una nueva Forma, con una nueva última dimensión agregada.
Forma
agregar ( formar otra)
Devuelve una nueva Forma, con las dimensiones de otras Formas añadidas.
largo[]
comomatriz ()
Devuelve una copia defensiva de los ejes de esta Forma.
booleano
es igual (Objeto obj)
Implementación igual a Shapes.
booleano
tiene dimensión desconocida ()
Devuelve si una o más dimensiones de esta Forma tienen un tamaño desconocido.
entero
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 tenue, long otherDim)
Pruebe para ver si dos dimensiones de forma son compatibles.
booleano
isCompatibleWith (forma de forma )
Determina si otra forma es compatible con esta.
booleano
esMatriz ()
Devuelve si esta forma es la forma de una matriz.
booleano
es escalar ()
Devuelve si esta Forma representa un escalar.
booleano
es desconocido ()
Devuelve si se desconoce el número de dimensiones de esta Forma.
booleano
esVector ()
Devuelve si esta Forma es la forma de un vector.
entero
númDimensiones ()
Devuelve el número de dimensiones de esta Forma.
Forma estática
de (largo...dimensiónTamaños)
Cree una forma que represente un valor escalar o N-dimensional.
Forma
anteponer ( formar otra)
Devuelve una nueva Forma, con las dimensiones de otra Forma antepuestas.
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
subforma (int comienzo, int fin)
Devuelve una forma dimensional end - begin con dimensiones que coincidan con esta forma desde begin hasta end .
Forma
cola ()
Devuelve una nueva Forma, con la primera dimensión de esta Forma eliminada.
Forma
tomar (int n)
Devuelve una forma de n dimensiones con las dimensiones que coinciden con las primeras n dimensiones de esta forma.
Forma
tomarLast (int n)
Devuelve una Forma de n dimensiones con las dimensiones que coinciden con las últimas n dimensiones de esta Forma.
Cadena
a cadena ()
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

pública estática larga UNKNOWN_SIZE

El tamaño de un eje desconocido o el tamaño total desconocido para una forma desconocida.

Métodos públicos

Agregar forma pública (última dimensión larga)

Devuelve una nueva Forma, con una nueva última dimensión agregada. Para que esta llamada tenga éxito, isUnknown() debe ser false .

Parámetros
última dimensión la dimensión a agregar
Devoluciones
  • una nueva Forma con las dimensiones de esta Forma seguidas de la dimensión dada, nunca nula

Agregar forma pública ( forma otra)

Devuelve una nueva Forma, con las dimensiones de otras Formas agregadas. Tanto para esta Forma como para la otra Forma, isUnknown() debe devolver falso. Por ejemplo, @code Forma.de(3,4).append(Forma.de(1,2)) => Forma.de(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

público largo [] 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.

público booleano es igual (Objeto obj)

Implementación igual a Shapes. Dos formas se consideran iguales si:

  • el número de dimensiones está definido y es igual para ambas
  • el tamaño de cada dimensión está definido y es igual para ambas

Si cualquiera de las formas tiene dimensiones desconocidas (incluso si son iguales en ambas) o si cualquiera de las formas 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.

público booleano hasUnknownDimension ()

Devuelve si una o más dimensiones de esta Forma tienen un tamaño desconocido.

código hash int público ()

cabeza de forma pública ()

Devuelve una forma unidimensional cuya primera dimensión coincide con la primera dimensión de esta forma.

booleano estático público 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
otroDim la segunda dimensión
Devoluciones
  • cierto, si ambas dimensiones son compatibles

booleano público es compatible con (forma de forma )

Determina si otra forma es compatible con esta.

Dos formas posiblemente parcialmente definidas 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 formas 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, como Shape(32, 784) y también Shape.unknown() . No es compatible, por ejemplo, con Shape(UNKNOWN_SIZE) o Shape(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én Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) y Shape.unknown() . No es compatible, por ejemplo, con Shape(32) , Shape(32, UNKNOWN_SIZE, 1) o Shape(64, UNKNOWN_SIZE) .
  • Shape(32, 784) es compatible consigo mismo, y también Shape(32, UNKNOWN_SIZE) , Shape(UNKNOWN_SIZE, 784) , Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) y Shape.unknown() . No es compatible, por ejemplo, con Shape(32, 1, 784) o Shape(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 transmisió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, 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.

público booleano esScalar ()

Devuelve si esta Forma representa un escalar.

booleano público es desconocido ()

Devuelve si se desconoce el número de dimensiones de esta Forma.

público booleano isVector ()

Devuelve si esta Forma es la forma de un vector.

public int numDimensiones ()

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.

pública estática Forma de (largo... dimensiónTamaños)

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 corresponde, o UNKNOWN_SIZE si se desconoce.
Devoluciones
  • una nueva forma

anteponer forma pública ( forma otra)

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)

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

anteponer forma pública (primera dimensión larga)

Devuelve una nueva Forma, con una nueva primera dimensión agregada. Para que esta llamada tenga éxito, isUnknown() debe ser false .

Parámetros
primera dimensión la dimensión a anteponer
Devoluciones
  • una nueva forma con la dimensión dada primero, seguida de las dimensiones de esta forma, nunca nula

pública estática Forma escalar ()

Crea una forma que representa un valor escalar.

Devoluciones
  • Una forma sin dimensiones para la cual isScalar() es verdadero, nunca nulo.

tamaño público 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 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 en caso contrario.

tamaño largo público ()

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 puede calcular; de lo contrario, UNKNOWN_SIZE .

subforma de forma pública (int inicio, int fin)

Devuelve una forma dimensional end - begin con dimensiones que coincidan con esta forma desde begin hasta end .

Parámetros
comenzar Dónde empezar la subforma.
fin Dónde terminar la subforma, exclusivo.
Devoluciones
  • la subforma delimitada por el comienzo 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 de n dimensiones con las dimensiones que coinciden con las primeras n dimensiones de esta forma

Parámetros
norte el número de dimensiones principales a obtener debe ser <= que numDimensions()
Devoluciones
  • una forma de n dimensiones con las primeras n dimensiones que coinciden con las primeras n dimensiones de esta forma

forma pública tomarLast (int n)

Devuelve una Forma de n dimensiones 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 de n dimensiones con las dimensiones que coinciden con las últimas n dimensiones de esta forma, nunca nula

cadena pública a cadena ()

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 cual isUnknown() es verdadera, nunca nula.