Minskningsåtgärder
Minska indata, t.ex. beräkningssumma eller medelvärde över element.
ReduceSum (x, axis=None)
ReduceLogSum (x, axis=None)
ReduceMean (x, axis=None)
ReduceMax (x, axis=None)
ReduceMin (x, axis=None)
Parametrar
x
: data för att minskaaxis
(standard:None
): om det anges utför du endast en minskning längs den här axeln. Det här värdet är 1-baserat. dvs. 1 står för den första statiska axeln ix
.
Returvärde
Reducerat värde. För axis=1
(standard) är detta en skalär. Om en axel anges minskas den axeln till dimension 1.
Description
Dessa funktioner beräknar aggregat (summa, medelvärde osv.) över alla värden för en indatavektor eller tensor. Tillgängliga sammansättningar är:
ReduceSum()
: summan över elementenReduceLogSum()
: summan över element i loggrepresentationer (logC = log (exp (logA) + exp (logB))
)ReduceMean()
: medelvärdet över elementenReduceMax()
: det maximala värdet för elementenReduceMin()
: minimivärdet
Som standard sker aggregeringen över alla element.
Om det gäller en tensor med rangordning>1 anger den valfria axis
parametern en enskild axel som minskningen utförs över.
Till exempel axis=2
skulle en [M x N]
-dimensionell matris aggregeras över alla kolumner, vilket ger ett [M x 1]
resultat.
Minska över sekvenser
Om indata är en sekvens utförs reduceringen separat för varje sekvensobjekt.
Dessa åtgärder stöder inte minskning av sekvenser.
I stället kan du uppnå detta med en upprepning.
Om du till exempel vill summera alla element i en sekvens x
kan du säga:
sum = x + PastValue (0, sum, defaultHiddenActivation=0)
och för maximal poolning kan du använda
max = Max(x, PastValue (0, max, defaultHiddenActivation=0))
Exempel
Normalisera ett värde genom att subtrahera medelvärdet av dess element (t.ex. som en del av lagernormaliseringen):
mean = ReduceMean (x)
xNorm = x - mean
Eller så kan korsentropi med softmax-kriterium definieras manuellt med hjälp av ReduceLogSum()
:
myCrossEntropyWithSoftmax (y/*label*/, z/*logit*/) = ReduceLogSum (z) - ReduceSum (y .* z)