Shape

público final da classe Forma

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
anexar ( forma de outro)
Retorna uma nova forma, com as dimensões de outras formas anexadas.
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
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
isCompatibleWith ( Forma forma)
Determina se outra forma é compatível com esta.
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
prefixar ( forma de outro)
Retorna uma nova forma, com as dimensões de outra forma anexadas.
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, como Shape(32, 784) e também Shape.unknown() . Não é compatível com, por exemplo, Shape(UNKNOWN_SIZE) ou Shape(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 com Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) e Shape.unknown() . Não é compatível com, por exemplo, Shape(32) , Shape(32, UNKNOWN_SIZE, 1) ou Shape(64, UNKNOWN_SIZE) .
  • Shape(32, 784) é compatível consigo mesmo e também com Shape(32, UNKNOWN_SIZE) , Shape(UNKNOWN_SIZE, 784) , Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) e Shape.unknown() . Não é compatível com, por exemplo, Shape(32, 1, 784) ou Shape(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 qualisScalar() é 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.

cauda de forma pública ()

Retorna uma nova forma, com a primeira dimensão desta forma removida.

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.