Shape

Forma de clase final pública

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
añadir ( Forma otro)
Devuelve una nueva forma, con las dimensiones de otras formas adjuntas.
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
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
isCompatibleWith ( forma de forma)
Determina si otra forma es compatible con esta.
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
anteponer ( Forma otro)
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
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, 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 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 queisScalar() 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.