La forma di un Tensore o NdArray
.
Una Shape
definisce le dimensioni lungo i suoi assi. Può contenere una dimensione sconosciuta per uno degli assi o può essere totalmente sconosciuta, nel qual caso non si conosce nemmeno il numero di assi. Se la dimensione di un asse è sconosciuta, come dimensione deve essere utilizzato UNKNOWN_SIZE
.
Campi
pubblico statico lungo | UNKNOWN_SIZE | La dimensione di un asse sconosciuto o la dimensione sconosciuta totale per una forma sconosciuta. |
Metodi pubblici
Forma | aggiungere (long lastDimension) Restituisce una nuova forma, con l'aggiunta di una nuova ultima dimensione. |
Forma | aggiungere ( Forma altro) Restituisce una nuova Shape, con l'aggiunta delle dimensioni di un'altra Shapes. |
lungo[] | asArray () Restituisce una copia difensiva degli assi di questa forma. |
booleano | è uguale a (Oggetto oggetto) Uguale all'implementazione per Shapes. |
booleano | hasUnknownDimension () Restituisce se una o più dimensioni di questa forma hanno una dimensione sconosciuta. |
int | codicehash () |
Forma | Testa () Restituisce una forma unidimensionale con la prima dimensione che corrisponde alla prima dimensione di questa forma. |
booleano statico | isCompatible (long dim, long otherDim) Prova per vedere se due dimensioni della forma sono compatibili. |
booleano | |
booleano | èMatrice () Restituisce se questa Shape è la forma di una matrice |
booleano | èScalare () Restituisce se questa Shape rappresenta uno scalare. |
booleano | èSconosciuto () Restituisce se il numero di dimensioni di questa forma è sconosciuto. |
booleano | èVettore () Restituisce se questa Shape è la forma di un vettore. |
int | numerodimensioni () Restituisce il numero di dimensioni di questa forma. |
Forma statica | di (lungo... dimensioneDimensioni) Crea una forma che rappresenta un valore scalare o N-dimensionale. |
Forma | |
Forma | anteporre (prima dimensione lunga) Restituisce una nuova forma, con l'aggiunta di una nuova prima dimensione. |
Forma statica | scalare () Crea un oggetto Shape che rappresenta un valore scalare. |
lungo | dimensione (int i) La dimensione della dimensione con l'indice specificato. |
lungo | misurare () Restituisce il numero totale di elementi che avrebbe un tensore con questa forma. |
Forma | sottoforma (int inizio, int fine) Restituisce una forma dimensionale end - begin con dimensioni corrispondenti a questa forma begin alla end . |
Forma | coda () Restituisce una nuova Shape, con la prima dimensione di questa Shape rimossa. |
Forma | prendere (int n) Restituisce una forma n-dimensionale con le dimensioni che corrispondono alle prime n dimensioni di questa forma |
Forma | prendiUltimo (int n) Restituisce una forma n-dimensionale con le dimensioni che corrispondono alle ultime n dimensioni di questa forma. |
Corda | aStringa () Descrizione concisa della forma destinata al debug. |
Forma statica | sconosciuto () Crea una forma che rappresenta un numero sconosciuto di dimensioni. |
Metodi ereditati
Campi
pubblico statico lungo UNKNOWN_SIZE
La dimensione di un asse sconosciuto o la dimensione sconosciuta totale per una forma sconosciuta.
Metodi pubblici
aggiunta forma pubblica (long lastDimension)
Restituisce una nuova forma, con l'aggiunta di una nuova ultima dimensione. Affinché questa chiamata abbia esito positivo, isUnknown()
deve essere false
.
Parametri
ultima dimensione | la dimensione da aggiungere |
---|
Ritorni
- una nuova Forma con le dimensioni di questa Forma seguite dalla dimensione data, mai nulla
public Forma aggiungi ( Forma altro)
Restituisce una nuova Shape, con l'aggiunta delle dimensioni di un'altra Shapes. Sia per questa forma che per l'altra forma, isUnknown()
deve restituire false. Ad esempio @code Shape.of(3,4).append(Shape.of(1,2)) => Shape.of(3,4,1,2) }
Parametri
altro | un'altra forma, non deve essere null , non deve essere sconosciuta |
---|
Ritorni
- Una nuova forma composta dalle dimensioni di questa forma seguite dalle dimensioni della forma specificata
public long[] asArray ()
Restituisce una copia difensiva degli assi di questa forma. Modifiche all'array restituito per non modificare lo stato di questa forma. Restituisce null se isUnknown()
è vero.
booleano pubblico è uguale a (Oggetto obj)
Uguale all'implementazione per Shapes. Due forme sono considerate uguali se e solo se:
- il numero di dimensioni è definito e uguale per entrambi
- la dimensione di ciascuna dimensione è definita e uguale per entrambe
Se una delle forme ha dimensioni sconosciute (anche se sono le stesse in entrambe) o se una delle forme ha un numero sconosciuto di dimensioni (anche se entrambe restituiscono true
per isUnknown()
), non sono considerate uguali! Tuttavia una forma sarà sempre uguale a se stessa, anche se è sconosciuta o contiene dimensioni sconosciute.
booleano pubblico hasUnknownDimension ()
Restituisce se una o più dimensioni di questa forma hanno una dimensione sconosciuta.
public int hashCode ()
Testa di forma pubblica ()
Restituisce una forma unidimensionale con la prima dimensione che corrisponde alla prima dimensione di questa forma.
booleano statico pubblico isCompatible (long dim, long otherDim)
Prova per vedere se due dimensioni della forma sono compatibili.
Le dimensioni sono compatibili se una delle dimensioni è Shape.UNKNOWN_SIZE
o entrambe le dimensioni sono uguali
Parametri
debole | la prima dimensione |
---|---|
altroDim | la seconda dimensione |
Ritorni
- true, se entrambe le dimensioni sono compatibili
booleano pubblico isCompatibleWith ( Shape shape)
Determina se un'altra forma è compatibile con questa.
Due forme possibilmente parzialmente definite sono compatibili se esiste una forma completamente definita che entrambe le forme possono rappresentare. Pertanto, la compatibilità consente al codice di inferenza della forma di ragionare su forme parzialmente definite. Per esempio:
-
Shape.unknown()
è compatibile con tutte le forme. -
Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
è compatibile con tutte le forme bidimensionali, comeShape(32, 784)
e ancheShape.unknown()
. Non è compatibile, ad esempio, conShape(UNKNOWN_SIZE)
oShape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE)
. -
Shape(32, UNKNOWN_SIZE)
è compatibile con tutte le forme bidimensionali con dimensione 32 nella dimensione 0 e ancheShape(UNKNOWN_SIZE, UNKNOWN_SIZE)
eShape.unknown()
. Non è compatibile, ad esempio, conShape(32)
,Shape(32, UNKNOWN_SIZE, 1)
oShape(64, UNKNOWN_SIZE)
. -
Shape(32, 784)
è compatibile con se stesso e ancheShape(32, UNKNOWN_SIZE)
,Shape(UNKNOWN_SIZE, 784)
,Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
eShape.unknown()
. Non è compatibile, ad esempio, conShape(32, 1, 784)
oShape(UNKNOWN_SIZE)
.
La relazione di compatibilità è riflessiva e simmetrica, ma non transitiva. Ad esempio, Shape(32, 784)
è compatibile con Shape.unknown()
e Shape.unknown()
è compatibile con Shape(4, 4)
, ma Shape(32, 784)
non è compatibile con Shape(4, 4)
.
La compatibilità non è la stessa cosa della trasmissione. Le forme compatibili devono avere lo stesso numero di dimensioni e per ciascuna coppia di dimensioni, una dimensione deve essere uguale alle altre dimensioni o almeno una delle dimensioni nella coppia deve essere UNKNOWN_SIZE.
La trasmissione consente dimensioni diverse, ma le dimensioni accoppiate devono essere uguali oppure una dimensione deve essere 1. Se una forma ha meno dimensioni di un'altra forma, la forma più piccola viene "allungata" con dimensioni pari a 1.
Parametri
forma | L'altra forma |
---|
Ritorni
- true, se le due forme sono compatibili.
isMatrix booleano pubblico ()
Restituisce se questa Shape è la forma di una matrice
booleano pubblico isScalar ()
Restituisce se questa Shape rappresenta uno scalare.
booleano pubblico isUnknown ()
Restituisce se il numero di dimensioni di questa forma è sconosciuto.
isVector booleano pubblico ()
Restituisce se questa Shape è la forma di un vettore.
public int numDimensioni ()
Restituisce il numero di dimensioni di questa forma. -1 se sconosciuto, 0 per uno scalare, 1 per un vettore, 2 per una matrice ecc.
forma statica pubblica di (long... dimensionSizes)
Crea una forma che rappresenta un valore scalare o N-dimensionale.
Crea una forma che rappresenta un valore scalare o N-dimensionale (N è almeno 1), con la dimensione fornita per ogni dimensione. Un -1 indica che la dimensione della dimensione corrispondente è sconosciuta. Se non vengono fornite dimensioni, viene creata una forma che rappresenta uno scalare. Per esempio:
// 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()
Parametri
dimensioneDimensioni | numero di elementi in ciascuna dimensione di questa forma, se presente, o UNKNOWN_SIZE se sconosciuto. |
---|
Ritorni
- una nuova forma
public Forma prepend ( Forma altro)
Restituisce una nuova Shape, preceduta dalle dimensioni di un'altra Shape. Sia per questa forma che per l'altra forma, isUnknown()
deve restituire false. Ad esempio Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)
Parametri
altro | un'altra forma, non deve essere null , non deve essere sconosciuta |
---|
Ritorni
- Una nuova Shape costituita dalle dimensioni della Shape specificate seguite dalle dimensioni di questa Shape, mai nulle
public Shape prepend (long firstDimension)
Restituisce una nuova forma, con l'aggiunta di una nuova prima dimensione. Affinché questa chiamata abbia esito positivo, isUnknown()
deve essere false
.
Parametri
prima dimensione | la dimensione da anteporre |
---|
Ritorni
- prima una nuova forma con la dimensione data, seguita dalle dimensioni di questa forma, mai nulle
pubblica statica Forma scalare ()
Crea un oggetto Shape che rappresenta un valore scalare.
Ritorni
- Una forma senza dimensioni per la quale
isScalar()
è vera, mai nulla.
dimensione lunga pubblica (int i)
La dimensione della dimensione con l'indice specificato.
Se isUnknown()
è vero o la dimensione della dimensione con l'indice specificato ha una dimensione sconosciuta, viene restituito UNKNOWN_SIZE
.
Parametri
io | l'indice della dimensione per cui ottenere la dimensione. Se questa forma ha un numero noto di dimensioni, deve essere < numDimensions() . L'indice può essere negativo, nel qual caso la posizione viene conteggiata dalla fine della forma. Ad esempio: size(-1) restituisce la dimensione dell'ultima dimensione, size(-2) la dimensione della penultima dimensione ecc. |
---|
Ritorni
- La dimensione della dimensione con l'indice fornito, se noto,
UNKNOWN_SIZE
altrimenti.
dimensione lunga pubblica ()
Restituisce il numero totale di elementi che avrebbe un tensore con questa forma.
Se isUnknown()
è vero o hasUnknownDimension()
è vero, viene restituito UNKNOWN_SIZE
.
Ritorni
- Il numero totale di elementi che un tensore con questa forma avrebbe se potesse essere calcolato, altrimenti
UNKNOWN_SIZE
.
public Shape subShape (int inizio, int fine)
Restituisce una forma dimensionale end - begin
con dimensioni corrispondenti a questa forma begin
alla end
.
Parametri
inizio | Da dove iniziare la forma secondaria. |
---|---|
FINE | Dove finisce la sottoforma, esclusiva. |
Ritorni
- la sottoforma delimitata da inizio e fine.
coda di forma pubblica ()
Restituisce una nuova Shape, con la prima dimensione di questa Shape rimossa.
public Forma prendere (int n)
Restituisce una forma n-dimensionale con le dimensioni che corrispondono alle prime n dimensioni di questa forma
Parametri
N | il numero di dimensioni iniziali da ottenere deve essere <= di numDimensions() |
---|
Ritorni
- una Forma n-dimensionale con le prime n dimensioni che corrispondono alle prime n dimensioni di questa Forma
public Shape takeLast (int n)
Restituisce una forma n-dimensionale con le dimensioni che corrispondono alle ultime n dimensioni di questa forma.
Parametri
N | il numero di dimensioni finali da ottenere deve essere <= di numDimensions() |
---|
Ritorni
- una forma n-dimensionale con le dimensioni corrispondenti alle ultime n dimensioni di questa forma, mai nulle
stringa pubblica toString ()
Descrizione concisa della forma destinata al debug.
forma statica pubblica sconosciuta ()
Crea una forma che rappresenta un numero sconosciuto di dimensioni.
Ritorni
- Una forma per la quale
isUnknown()
è vera, mai nulla.