Ich würde gerne eine (oder Dekonvolution) anstelle von Upsampling in meinem Netzwerk verwenden. Dies erfordert die Übergabe eines output_shape
an den Funktionsaufruf. Das ist kein Problem, ich kann es berechnen. Aber ich möchte None für die Batch-Größe verwenden, um das Setup flexibel zu halten. Ist das möglich? HierTensorflow: verwende keine in output_shape in conv2D_transpose
ist die Codezeile:
tf.nn.conv2d_transpose(hd_conv1, Wd_conv1, [batch_size, 14,14,64], strides=[1,2,2,1], padding="SAME")
batch_size
ist einfach eine Variable, die ich an der Spitze von meinem Skript festgelegt. Dieser Code läuft gut, aber wenn ich None
anstelle von batch_size
:
TypeError: Expected binary or unicode string, got None
Wenn ich nur die erste Dimension auslassen:
ValueError: output_shape must have shape (4,), got (3,)
Ich denke, es ist seltsam, dass es verschiedene Möglichkeiten gibt, zu beschäftigen die Stapelgröße. Einige Operationen ignorieren es einfach, wie das normale conv2d, aber hier muss ich es explizit angeben. In jedem Fall fragte ich mich, warum ich die output_shape überhaupt berechnen müsste. Mit gegebener Eingabe, Schritten, Padding, das sollte einfach zu berechnen sein. Es gibt einen GitHub issue in Bezug auf output_shape, leider scheint es keine Follow-up zu sein.
Mache ich das richtig - eine explizite batch_size
in der output_shape übergeben? Gibt es eine Möglichkeit, die explizite batch_size
wegzulassen?
Das GitHub-Problem hat einige Erklärungen. Wenn du es nicht bekommst, folge einfach dort drüben. – yuefengz