Shape

aula final pública 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 deverá ser usado como seu tamanho.

Campos

público estático longo UNKNOWN_SIZE O tamanho de um eixo desconhecido ou o tamanho total desconhecido de uma forma desconhecida.

Métodos Públicos

Forma
anexar (última dimensão longa)
Retorna um novo Shape, com uma nova última dimensão adicionada.
Forma
anexar ( formar outro)
Retorna um novo Shape, com as dimensões de outro Shape anexadas.
longo[]
asArray ()
Retorna uma cópia defensiva dos eixos desta Forma.
booleano
é igual (objeto obj)
É igual à implementação para Shapes.
booleano
temUnknownDimension ()
Retorna se uma ou mais dimensões deste Shape têm tamanho desconhecido.
interno
Forma
cabeça ()
Retorna um Shape unidimensional com a primeira dimensão correspondente à primeira dimensão deste Shape.
booleano estático
isCompatible (longo dim, longo otherDim)
Teste para ver se duas dimensões de forma são compatíveis.
booleano
isCompatibleWith ( formato )
Determina se outra forma é compatível com esta.
booleano
éMatriz ()
Retorna se este Shape é o formato de uma matriz
booleano
éescalar ()
Retorna se este Shape representa um escalar.
booleano
éDesconhecido ()
Retorna se o número de dimensões deste Shape é desconhecido.
booleano
éVetor ()
Retorna se este Shape é a forma de um vetor.
interno
numDimensões ()
Retorna o número de dimensões deste Shape.
Forma estática
de (longo... dimensãoTamanhos)
Crie um Shape representando um valor escalar ou N-dimensional.
Forma
prefixar ( formar outro)
Retorna um novo Shape, com as dimensões de outro Shape anexadas.
Forma
prefixar (firstDimension longo)
Retorna um novo Shape, com uma nova primeira dimensão adicionada.
Forma estática
escalar ()
Cria um Shape 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 este Shape teria.
Forma
subForma (int início, int fim)
Retorna uma forma dimensional end - begin com dimensões correspondentes a esta Forma do begin ao end .
Forma
cauda ()
Retorna um novo Shape, com a primeira dimensão deste Shape removida.
Forma
pegar (int m)
Retorna uma forma n-dimensional com as dimensões correspondentes às primeiras n dimensões desta forma
Forma
takeLast (int n)
Retorna um Shape n-dimensional com as dimensões correspondentes às últimas n dimensões deste Shape.
Corda
toString ()
Descrição sucinta do Shape destinado à depuração.
Forma estática
desconhecido ()
Cria um Shape representando um número desconhecido de dimensões.

Métodos herdados

Campos

público estático longo UNKNOWN_SIZE

O tamanho de um eixo desconhecido ou o tamanho total desconhecido de uma forma desconhecida.

Métodos Públicos

acréscimo de forma pública (última dimensão longa)

Retorna um novo Shape, com uma nova última dimensão adicionada. Para que esta chamada seja bem-sucedida, isUnknown() deve ser false .

Parâmetros
última dimensão a dimensão a ser anexada
Devoluções
  • um novo Shape com as dimensões deste Shape seguidas pela dimensão fornecida, nunca nulo

acréscimo de forma pública ( forma outra)

Retorna um novo Shape, com as dimensões de outro Shape anexadas. Tanto para este Shape quanto para 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 outro Shape, não deve ser null , não deve ser desconhecido
Devoluções
  • Uma nova Forma que consiste nas dimensões desta Forma seguidas pelas dimensões da Forma fornecida

público longo[] asArray ()

Retorna uma cópia defensiva dos eixos desta Forma. Alterações no array retornado para não alterar o estado deste Shape. Retorna nulo se isUnknown() for verdadeiro.

booleano público é igual (Object obj)

É igual à 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 que sejam iguais em ambas) ou se uma das formas tiver um número desconhecido de dimensões (mesmo que ambas retornem true para isUnknown() ), elas não serão consideradas iguais! No entanto, uma forma será sempre igual a si mesma, mesmo que seja desconhecida ou contenha dimensões desconhecidas.

público booleano hasUnknownDimension ()

Retorna se uma ou mais dimensões deste Shape têm tamanho desconhecido.

hashCode int público ()

cabeça de forma pública ()

Retorna um Shape unidimensional com a primeira dimensão correspondente à primeira dimensão deste Shape.

public static boolean isCompatible (longo dim, longo otherDim)

Teste para ver se duas dimensões de forma são compatíveis.

As dimensões serão compatíveis se uma das dimensões for Shape.UNKNOWN_SIZE ou ambas as dimensões forem iguais

Parâmetros
escurecer a primeira dimensão
outroDim a segunda dimensão
Devoluções
  • verdadeiro, se ambas as dimensões forem compatíveis

public boolean isCompatibleWith ( formato )

Determina se outra forma é compatível com esta.

Duas formas possivelmente parcialmente definidas são compatíveis se existir uma forma totalmente definida que ambas as formas possam representar. Assim, a compatibilidade permite que o código de inferência de forma 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 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 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) ) Shape(4, 4) .

Compatibilidade não é o mesmo que transmissão. As 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 dimensões diferentes, mas as dimensões emparelhadas devem ser iguais ou uma dimensão deve ser 1. Se uma forma tiver menos dimensões 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.

isMatrix booleano público ()

Retorna se este Shape é o formato de uma matriz

booleano público isScalar ()

Retorna se este Shape representa um escalar.

booleano público éDesconhecido ()

Retorna se o número de dimensões deste Shape é desconhecido.

booleano público isVector ()

Retorna se este Shape é a forma de um vetor.

public int numDimensions ()

Retorna o número de dimensões deste Shape. -1 se desconhecido, 0 para um escalar, 1 para um vetor, 2 para uma matriz etc.

forma estática pública de (longo... dimensionSizes)

Crie um Shape representando um valor escalar ou N-dimensional.

Cria um Shape representando 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, um Shape representando um escalar será criado. 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
dimensãoTamanhos número de elementos em cada dimensão desta forma, se houver, ou UNKNOWN_SIZE se for desconhecido.
Devoluções
  • uma nova forma

prefixo de forma pública ( forma outro)

Retorna um novo Shape, com as dimensões de outro Shape anexadas. Tanto para este Shape quanto para 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 outro Shape, não deve ser null , não deve ser desconhecido
Devoluções
  • Uma nova Forma que consiste nas dimensões da Forma dada seguidas pelas dimensões desta Forma, nunca nula

prefixo de forma pública (firstDimension longo)

Retorna um novo Shape, com uma nova primeira dimensão adicionada. Para que esta chamada seja bem-sucedida, isUnknown() deve ser false .

Parâmetros
primeira dimensão a dimensão a ser anexada
Devoluções
  • uma nova forma com a dimensão dada primeiro, seguida pelas dimensões desta Forma, nunca nula

escalar de forma estática pública ()

Cria um Shape que representa um valor escalar.

Devoluções
  • Um Shape sem dimensões para o qual isScalar() é verdadeiro, nunca nulo.

tamanho longo público (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 este Shape tiver um número conhecido de dimensões, deverá ser < numDimensions() . O índice pode ser negativo, caso em que a posição é contada a partir do final da forma. Por exemplo: 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, caso contrário, UNKNOWN_SIZE .

tamanho longo público ()

Retorna o número total de elementos que um Tensor com este Shape 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 .

subforma de forma pública (int início, int fim)

Retorna uma forma dimensional end - begin com dimensões correspondentes a esta Forma do begin ao end .

Parâmetros
começar Onde começar a subforma.
fim Onde finalizar o sub-shape, exclusivo.
Devoluções
  • a subforma delimitada por início e fim.

cauda de forma pública ()

Retorna um novo Shape, com a primeira dimensão deste Shape 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 principais a serem obtidas deve ser <= que numDimensions()
Devoluções
  • uma forma n-dimensional com as primeiras n dimensões correspondentes às primeiras n dimensões desta forma

Forma pública takeLast (int n)

Retorna um Shape n-dimensional com as dimensões correspondentes às últimas n dimensões deste Shape.

Parâmetros
n o número de dimensões finais a serem obtidas deve ser <= que numDimensions()
Devoluções
  • uma forma n-dimensional com as dimensões correspondentes às últimas n dimensões desta Forma, nunca nula

String pública paraString ()

Descrição sucinta do Shape destinado à depuração.

público estático Forma desconhecida ()

Cria um Shape representando um número desconhecido de dimensões.

Devoluções
  • Um Shape para o qual isUnknown() é verdadeiro, nunca nulo.