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 ridurreaxis
(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 dix
.
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 elementiReduceLogSum()
: somma degli elementi nelle rappresentazioni di log (logC = log (exp (logA) + exp (logB))
)ReduceMean()
: media sugli elementiReduceMax()
: valore massimo degli elementiReduceMin()
: 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)