Wenn Sie sich die API von ConfigProto online ansehen 278, werden Sie das sehen:
%Vor% Was das wirklich bedeutet, ist, dass, wenn Sie so etwas ohne allow_soft_placement=True
machen, TensorFlow einen Fehler auslösen wird.
Direkt darunter sehen Sie in Zeile 281:
%Vor% Wenn log_device_placement=True
, erhalten Sie eine ausführliche Ausgabe von etwa so:
Sie können sehen, wo jeder Vorgang zugeordnet ist. Für diesen Fall werden sie alle auf /cpu:0
abgebildet, aber wenn Sie sich in einer verteilten Umgebung befinden, gibt es viel mehr Geräte.
Zusätzlich zu Kommentaren in tensorflow / core / protobuf / config. Proto ( allow_soft_placement , log_device_placement ) es wird auch in TF Verwendung des GPU-Lernprogramms .
Um herauszufinden, welchen Geräten Ihre Operationen und Tensoren zugewiesen sind, Erstellen Sie die Sitzung mit der Konfigurationsoption
log_device_placement
configuration zu Wahr.
Was beim Debuggen hilfreich ist. Für jeden der Knoten Ihres Diagramms sehen Sie das Gerät, dem es zugewiesen wurde.
Wenn Sie möchten, dass TensorFlow automatisch ein vorhandenes und wählt unterstützt Gerät, um die Operationen im Falle der angegebenen zu laufen existiert nicht, Sie können
allow_soft_placement
auf True setzen Konfigurationsoption beim Erstellen der Sitzung.
Was Ihnen hilft, wenn Sie versehentlich das falsche Gerät oder ein Gerät, das einen bestimmten OP nicht unterstützt, manuell angegeben haben. Dies ist nützlich, wenn Sie einen Code schreiben, der in Umgebungen ausgeführt werden kann, die Sie nicht kennen. Sie können immer noch nützliche Standardwerte bereitstellen, aber im Fehlerfall ist dies ein gutes Fallback.
Tags und Links tensorflow