Condividi tramite


Operazioni di riduzione

Ridurre un input, ad esempio la somma di calcolo o la media sugli elementi.

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

Parametri

  • x: dati da ridurre
  • axis (impostazione predefinita: None): se specificato, eseguire la riduzione solo lungo l'asse. Questo valore è basato su 1; ad esempio 1 sta per il primo asse statico di x.

Valore restituito

Valore ridotto. Per axis=1 (impostazione predefinita), si tratta di un valore scalare. Se viene specificato un asse, l'asse viene ridotto in modo da avere la dimensione 1.

Descrizione

Queste funzioni calcolano le aggregazioni (somma, media e così via) su tutti i valori di un vettore di input o di un tensore. Le aggregazioni disponibili sono:

  • ReduceSum(): somma sugli elementi
  • ReduceLogSum(): somma degli elementi nelle rappresentazioni di log (logC = log (exp (logA) + exp (logB)))
  • ReduceMean(): media sugli elementi
  • ReduceMax(): valore massimo degli elementi
  • ReduceMin(): valore minimo

Per impostazione predefinita, l'aggregazione viene eseguita su tutti gli elementi. Nel caso di un tensore con rango>1, il parametro facoltativo axis specifica un singolo asse su cui viene eseguita la riduzione. Ad esempio, axis=2 applicato a una [M x N]matrice dimensionale si aggrega su tutte le colonne, ottenendo un [M x 1] risultato.

Riduzione delle sequenze

Se l'input è una sequenza, la riduzione viene eseguita separatamente per ogni elemento della sequenza. Queste operazioni non supportano la riduzione delle sequenze. È invece possibile ottenere questo risultato con una ricorrenza. Ad esempio, per sommare tutti gli elementi di una sequenza x, è possibile dire:

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

e per il pooling massimo, è possibile usare

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

Esempio

Normalizzare un valore sottraendo la media dei relativi elementi (ad esempio, come parte della normalizzazione del livello):

mean = ReduceMean (x)
xNorm = x - mean

In alternativa, è possibile definire manualmente l'entropia incrociata con il criterio softmax usando ReduceLogSum():

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