Ich versuche, definieren, einen skalaren Platzhalter wie zu definieren:Wie eine skalare Platzhalter mit bekannter Form in Tensorflow
alpha = tf.placeholder(tf.float32,shape=(),name='alpha')
Das Problem ist, dass seine Form ist <unknown>
:
print(alpha.get_shape())
<unknown>
Wenn alpha
wird mit einem anderen Tensor multipliziert, seine Ausgabeform ist auch <unknown>
:
x = tf.placeholder(tf.float32,shape=[None,128,128,3],name='x')
I = alpha * x
print(I.get_shape())
<unknown>
Dies erzeugt ein Problem, da I
in eine Faltungsoperation eingespeist wird, die fan_in = k_h * k_w * input_.get_shape().as_list()[-1]
verwendet, wobei input_
I
ist. Als Folge erscheint folgender Fehler:
TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'
Ich bin auf der Suche nach einem sauberen Weg, um dieses Problem zu lösen. Vorzugsweise definiert man einen skalaren Platzhalter mit einer bekannten Form.
'alpha.get_shape()' für mich funktioniert. Was ist deine TF-Version? – Maxim
@Maxim Es ist "1.2.1" –
@Maxim Interessant in "1.0.0" funktioniert es. –