A forma de um Tensor ou NdArray
.
Uma Shape
define tamanhos ao longo de seus eixos. Pode conter um tamanho desconhecido para um dos eixos ou pode ser totalmente desconhecido, caso em que nem mesmo o número de eixos é conhecido. Se o tamanho de um eixo for desconhecido, UNKNOWN_SIZE
deve ser usado como seu tamanho.
Campos
public static long | UNKNOWN_SIZE | O tamanho de um eixo desconhecido ou o tamanho total desconhecido de uma forma desconhecida. |
Métodos Públicos
Forma | anexar (long lastDimension) Retorna uma nova forma, com uma nova última dimensão adicionada. |
Forma | |
longo[] | asArray () Retorna uma cópia defensiva dos eixos desta forma. |
boleano | igual a (objeto obj) Equivale a implementação para Shapes. |
boleano | hasUnknownDimension () Retorna se uma ou mais dimensões desta forma têm um tamanho desconhecido. |
int | hashCode () |
Forma | cabeça () Retorna uma forma unidimensional com a primeira dimensão correspondendo à primeira dimensão desta forma. |
booleano estático | isCompatible (long dim, long otherDim) Teste para ver se duas dimensões de forma são compatíveis. |
boleano | |
boleano | isMatrix () Retorna se esta forma é a forma de uma matriz |
boleano | isScalar () Retorna se esta forma representa um escalar. |
boleano | isUnknown () Retorna se o número de dimensões desta forma é desconhecido. |
boleano | isVector () Retorna se esta forma é a forma de um vetor. |
int | numDimensions () Retorna o número de dimensões desta forma. |
forma estática | de (long ... dimensionSizes) Crie uma Forma representando um valor escalar ou N-dimensional. |
Forma | |
Forma | preceder (firstDimension longo) Retorna uma nova forma, com uma nova primeira dimensão adicionada. |
forma estática | escalar () Cria uma forma que representa um valor escalar. |
longo | tamanho (int i) O tamanho da dimensão com o índice fornecido. |
longo | tamanho () Retorna o número total de elementos que um Tensor com esta Forma teria. |
Forma | subForma (int begin, int end) Retornar um end - begin forma tridimensional com dimensões correspondentes esta forma de begin a end . |
Forma | cauda () Retorna uma nova forma, com a primeira dimensão desta forma removida. |
Forma | take (int n) Retorna uma forma n-dimensional com as dimensões que correspondem às primeiras n dimensões desta forma |
Forma | takeLast (int n) Retorna uma forma n-dimensional com as dimensões que correspondem às últimas n dimensões desta forma. |
Fragmento | toString () Descrição sucinta da forma destinada à depuração. |
forma estática | desconhecido () Cria uma forma representando um número desconhecido de dimensões. |
Métodos herdados
Campos
public static long UNKNOWN_SIZE
O tamanho de um eixo desconhecido ou o tamanho total desconhecido de uma forma desconhecida.
Métodos Públicos
anexo de forma pública (long lastDimension)
Retorna uma nova forma, com uma nova última dimensão adicionada. Para que essa chamada seja bem-sucedida, isUnknown()
deve ser false
.
Parâmetros
lastDimension | a dimensão a ser anexada |
---|
Devoluções
- uma nova forma com as dimensões desta forma seguida pela dimensão dada, nunca nula
public Shape append ( Shape other)
Retorna uma nova forma, com as dimensões de outras formas anexadas. Para este Shape e o outro Shape, isUnknown()
deve retornar false. Por exemplo, @code Shape.of (3,4) .append (Shape.of (1,2)) => Shape.of (3,4,1,2)}
Parâmetros
outro | outra forma, não deve ser null , não deve ser desconhecida |
---|
Devoluções
- Uma nova forma que consiste nas dimensões desta forma seguidas pelas dimensões da forma dada
public long [] asArray ()
Retorna uma cópia defensiva dos eixos desta forma. Muda para o array retornado para não alterar o estado deste Shape. Retorna nulo se isUnknown()
for verdadeiro.
public boolean equals (Object obj)
Equivale a implementação para Shapes. Duas formas são consideradas iguais se:
- o número de dimensões é definido e igual para ambos
- o tamanho de cada dimensão é definido e igual para ambos
Se uma das formas tiver dimensões desconhecidas (mesmo se forem iguais em ambas) ou se qualquer uma das formas tiver um número desconhecido de dimensões (mesmo se ambas retornarem true
para isUnknown()
), elas não serão consideradas iguais! No entanto, uma forma sempre será igual a si mesma, mesmo que seja desconhecida ou contenha dimensões desconhecidas.
public boolean hasUnknownDimension ()
Retorna se uma ou mais dimensões desta forma têm um tamanho desconhecido.
public int hashCode ()
Cabeça de forma pública ()
Retorna uma forma unidimensional com a primeira dimensão correspondendo à primeira dimensão desta forma.
public static boolean isCompatible (long dim, long otherDim)
Teste para ver se duas dimensões de forma são compatíveis.
As dimensões são compatíveis se qualquer uma das dimensões for Shape.UNKNOWN_SIZE
ou ambas as dimensões forem iguais
Parâmetros
escuro | a primeira dimensão |
---|---|
otherDim | a segunda dimensão |
Devoluções
- verdadeiro, se ambas as dimensões são compatíveis
public boolean isCompatibleWith ( Shape shape)
Determina se outra forma é compatível com esta.
Duas formas possivelmente definidas parcialmente são compatíveis se houver uma forma totalmente definida que ambas as formas possam representar. Portanto, a compatibilidade permite que o código de inferência de formas raciocine sobre formas parcialmente definidas. Por exemplo:
-
Shape.unknown()
é compatível com todas as formas. -
Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
é compatível com todas as formas bidimensionais, comoShape(32, 784)
e tambémShape.unknown()
. Não é compatível com, por exemplo,Shape(UNKNOWN_SIZE)
ouShape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE)
. -
Shape(32, UNKNOWN_SIZE)
é compatível com todas as formas bidimensionais com tamanho 32 na 0ª dimensão e também comShape(UNKNOWN_SIZE, UNKNOWN_SIZE)
eShape.unknown()
. Não é compatível com, por exemplo,Shape(32)
,Shape(32, UNKNOWN_SIZE, 1)
ouShape(64, UNKNOWN_SIZE)
. -
Shape(32, 784)
é compatível consigo mesmo e também comShape(32, UNKNOWN_SIZE)
,Shape(UNKNOWN_SIZE, 784)
,Shape(UNKNOWN_SIZE, UNKNOWN_SIZE)
eShape.unknown()
. Não é compatível com, por exemplo,Shape(32, 1, 784)
ouShape(UNKNOWN_SIZE)
.
A relação de compatibilidade é reflexiva e simétrica, mas não transitiva. Por exemplo, Shape(32, 784)
é compatível com Shape.unknown()
e Shape.unknown()
é compatível com Shape(4, 4)
, mas Shape(32, 784)
não é compatível com Shape(4, 4)
Compatibilidade não é o mesmo que transmissão. Formas compatíveis devem ter o mesmo número de dimensões e para cada par de dimensões, uma dimensão deve ser igual às outras dimensões ou pelo menos uma das dimensões do par deve ser UNKNOWN_SIZE.
A transmissão permite diferentes dimensões, mas as dimensões emparelhadas devem ser iguais ou uma dimensão deve ser 1. Se uma forma tiver menos dimensões do que outra forma, a forma menor será "esticada" com dimensões de 1.
Parâmetros
forma | A outra forma |
---|
Devoluções
- verdadeiro, se as duas formas forem compatíveis.
public boolean isMatrix ()
Retorna se esta forma é a forma de uma matriz
public boolean isScalar ()
Retorna se esta forma representa um escalar.
public boolean isUnknown ()
Retorna se o número de dimensões desta forma é desconhecido.
public boolean isVector ()
Retorna se esta forma é a forma de um vetor.
public int numDimensions ()
Retorna o número de dimensões desta forma. -1 se desconhecido, 0 para um escalar, 1 para um vetor, 2 para uma matriz etc.
public static Shape of (long ... dimensionSizes)
Crie uma Forma representando um valor escalar ou N-dimensional.
Cria uma Forma que representa um valor escalar ou N-dimensional (N sendo pelo menos 1), com o tamanho fornecido para cada dimensão. Um -1 indica que o tamanho da dimensão correspondente é desconhecido. Se nenhum tamanho for fornecido, uma forma representando um escalar é criada. Por exemplo:
// 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
dimensionSizes | número de elementos em cada dimensão desta forma, se houver, ou UNKNOWN_SIZE se desconhecido. |
---|
Devoluções
- uma nova forma
public Shape prepend ( Shape other)
Retorna uma nova forma, com as dimensões de outra forma anexadas. Para este Shape e o outro Shape, isUnknown()
deve retornar false. Por exemplo, Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)
Parâmetros
outro | outra forma, não deve ser null , não deve ser desconhecida |
---|
Devoluções
- Uma nova forma que consiste nas dimensões da forma dada seguidas pelas dimensões desta forma, nunca nula
público Forma prepend (longa firstDimension)
Retorna uma nova forma, com uma nova primeira dimensão adicionada. Para que essa chamada seja bem-sucedida, isUnknown()
deve ser false
.
Parâmetros
firstDimension | a dimensão a preceder |
---|
Devoluções
- uma nova forma com a dimensão fornecida primeiro, seguida pelas dimensões desta forma, nunca nula
public static Shape escalar ()
Cria uma forma que representa um valor escalar.
Devoluções
- Uma forma sem dimensões para a qual
isScalar()
é verdadeiro, nunca nulo.
tamanho público longo (int i)
O tamanho da dimensão com o índice fornecido.
Se isUnknown()
for verdadeiro ou o tamanho da dimensão com o índice fornecido tiver um tamanho desconhecido, UNKNOWN_SIZE
será retornado.
Parâmetros
eu | o índice da dimensão para a qual obter o tamanho. Se esta forma tem um número conhecido de dimensões, deve ser < numDimensions() . O índice pode ser negativo, caso em que a posição é contada a partir do final da forma. Ex: size(-1) retorna o tamanho da última dimensão, size(-2) o tamanho da penúltima dimensão etc. |
---|
Devoluções
- O tamanho da dimensão com o índice fornecido, se conhecido,
UNKNOWN_SIZE
, caso contrário.
tamanho público longo ()
Retorna o número total de elementos que um Tensor com esta Forma teria.
Se isUnknown()
for verdadeiro ou hasUnknownDimension()
for verdadeiro, UNKNOWN_SIZE
será retornado.
Devoluções
- O número total de elementos que um tensor com esta forma teria se pudesse ser calculado, caso contrário
UNKNOWN_SIZE
.
public Shape subForma (int begin, int end)
Retornar um end - begin
forma tridimensional com dimensões correspondentes esta forma de begin
a end
.
Parâmetros
começar | Onde começar a subforma. |
---|---|
fim | Onde terminar o sub-formato, exclusivo. |
Devoluções
- a subforma delimitada por início e fim.
tomada de forma pública (int n)
Retorna uma forma n-dimensional com as dimensões correspondentes às primeiras n dimensões desta forma
Parâmetros
n | o número de dimensões numDimensions() a serem numDimensions() , deve ser <= que numDimensions() |
---|
Devoluções
- uma forma n-dimensional com as primeiras n dimensões correspondendo às primeiras n dimensões desta forma
public Shape takeLast (int n)
Retorna uma forma n-dimensional com as dimensões que correspondem às últimas n dimensões desta forma.
Parâmetros
n | o número de dimensões finais a serem numDimensions() , deve ser <= que numDimensions() |
---|
Devoluções
- uma forma n-dimensional com as dimensões correspondentes às últimas n dimensões desta forma, nunca nula
public String toString ()
Descrição sucinta da forma destinada à depuração.
público estático Forma desconhecida ()
Cria uma forma representando um número desconhecido de dimensões.
Devoluções
- Um Shape para o qual
isUnknown()
é verdadeiro, nunca nulo.