Sdílet prostřednictvím


Operace redukce

Snižte vstup, například výpočetní součet nebo průměr nad prvky.

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

Parametry

  • x: data, která se mají snížit
  • axis (výchozí: None): pokud je zadáno, proveďte redukci pouze podél této osy. Tato hodnota je založená na 1; tj. 1 znamená první statickou osu x.

Vrácená hodnota

Snížená hodnota. Pro axis=1 (výchozí) je to skalární. Pokud je zadaná osa, je tato osa zmenšena tak, aby měla rozměr 1.

Description

Tyto funkce vypočítají agregace (součet, průměr atd.) u všech hodnot vstupního vektoru nebo tensoru. Dostupné agregace jsou:

  • ReduceSum(): součet nad prvky
  • ReduceLogSum(): součet nad prvky v reprezentacích protokolu (logC = log (exp (logA) + exp (logB)))
  • ReduceMean(): střední hodnota nad prvky
  • ReduceMax(): maximální hodnota prvků
  • ReduceMin(): minimální hodnota

Ve výchozím nastavení se agregace provádí u všech prvků. V případě tensoru s pořadím>1 určuje volitelný axis parametr jednu osu, kterou se redukce provádí. Například axis=2 použitý u [M x N]-dimenzionální matice by agregoval všechny sloupce a přinesl výsledek [M x 1] .

Snížení počtu sekvencí

Pokud je vstup posloupností, redukce se provádí samostatně pro každou sekvenční položku. Tyto operace nepodporují snížení počtu sekvencí. Místo toho toho můžete dosáhnout opakováním. Chcete-li například sečíst všechny prvky sekvence x, můžete říci:

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

a pro maximální sdružování můžete použít

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

Příklady

Normalizuje hodnotu odečtením střední hodnoty jejích prvků (např. jako součást normalizace vrstev):

mean = ReduceMean (x)
xNorm = x - mean

Nebo lze křížový entropie s kritériem softmaxu definovat ručně pomocí ReduceLogSum():

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