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 | |
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 | código hash () |
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 | |
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 | |
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.
público estático booleano 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, 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émShape(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émShape(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)
) 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 for 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.
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.