Compartilhar via


Operações de redução

Reduza uma entrada, por exemplo, soma de computação ou média sobre elementos.

ReduceSum (x, axis=None)
ReduceLogSum (x, axis=None)
ReduceMean (x, axis=None)
ReduceMax (x, axis=None)
ReduceMin (x, axis=None)

Parâmetros

  • x: dados a serem reduzidos
  • axis (padrão: None): se especificado, execute a redução somente nesse eixo. Esse valor é baseado em 1; Ou seja, 1 significa o primeiro eixo estático de x.

Valor retornado

Valor reduzido. Para axis=1 (padrão), esse é um escalar. Se um eixo for especificado, esse eixo será reduzido para ter a dimensão 1.

Descrição

Essas funções calculam agregações (soma, média etc.) sobre todos os valores de um vetor de entrada ou tensor. As agregações disponíveis são:

  • ReduceSum(): a soma sobre os elementos
  • ReduceLogSum(): a soma sobre elementos em representações de log (logC = log (exp (logA) + exp (logB)))
  • ReduceMean(): a média sobre os elementos
  • ReduceMax(): o valor máximo dos elementos
  • ReduceMin(): o valor mínimo

Por padrão, a agregação é feita em todos os elementos. No caso de um tensor com a classificação>1, o parâmetro opcional axis especifica um único eixo sobre o qual a redução é executada. Por exemplo, axis=2 aplicado a uma [M x N]matriz dimensional agregaria em todas as colunas, gerando um [M x 1] resultado.

Reduzindo em sequências

Se a entrada for uma sequência, a redução será executada separadamente para cada item de sequência. Essas operações não dão suporte à redução em sequências. Em vez disso, você pode conseguir isso com uma recorrência. Por exemplo, para resumir todos os elementos de uma sequência x, você pode dizer:

sum = x + PastValue (0, sum, defaultHiddenActivation=0)

e para o pool máximo, você pode usar

max = Max(x, PastValue (0, max, defaultHiddenActivation=0))

Exemplos

Normalize um valor subtraindo a média de seus elementos (por exemplo, como parte da normalização da camada):

mean = ReduceMean (x)
xNorm = x - mean

Ou, a entropia cruzada com critério softmax pode ser definida manualmente usando ReduceLogSum():

myCrossEntropyWithSoftmax (y/*label*/, z/*logit*/) = ReduceLogSum (z) - ReduceSum (y .* z)