2016-06-22 11 views

Antwort

2

Bei dieser line, beachten Sie, dass Verlust in anderen Namen Bereichen ist (tf.name_scope ('% s_% d'% (cifar10.TOWER_NAME, i))); Wenn ich also richtig verstehe, ist es nicht nur der Verlust für die letzte GPU; stattdessen werden alle Verluste unter einem entsprechenden Namensumfang für jede GPU verwendet.

Jeder Turm (entsprechend jeder GPU) wird einen Verlust haben, der zur Berechnung des Gradienten verwendet wird. Verluste werden nicht gemittelt; stattdessen werden alle Gradienten für alle Türme in Zeile 196 gemittelt.

Beachten Sie, dass es in dieser Abbildung aus dem Lernprogramm keine Aggregation für alle individuellen Verluste gibt, es sind die Gradienten, die gemittelt werden.

enter image description here

+0

Aber 'loss' ist ein Python-Variable, einen Verlust von einem bestimmten Namespace zeigt (nämlich die i-te GPU)? –

+0

Laut dem Code ist Verlust keine Python-Variable, sondern ein Tensor, der von tower_loss (scope) zurückgegeben wird. –

+0

Aber entspricht das nicht nur einem Turm - und nicht dem durchschnittlichen Verlust, der über alle Türme berechnet wird? –