ので、documentationによると、我々は形状を変更する= validate_shapeと偽をtf.assign使用することができます任意の形状を持つように変数を更新します。これは変数の内容の形を変更しますが、get_shape()から取得できるシェイプは更新されません。たとえば:Tensorflowは、
>>> a = tf.Variable([1, 1, 1, 1])
>>> sess.run(tf.global_variables_initializer())
>>> tf.assign(a, [[1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1]], validate_shape=False).eval()
array([[1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1]], dtype=int32)
>>> a.get_shape()
TensorShape([Dimension(4)])
これは、ネットワークの後の層は、この変数のget_shape()値にその形状をベースにすることをかなり迷惑なんです。したがって、実際の形状が正しいにもかかわらず、Tensorflowは寸法が一致しないと不平を言うでしょう。だから、どのように各変数の "信じられた"形を更新する上で任意のアイデアですか?要するに
set_shapeそれを設定するのですか? –
'set_shape'は、既存の形状情報に対して検証しようとします。静的形状情報が完全に不明となり、その場合には、変数を、_creating_とき、私は 'validate_shape = false'を設定したい(そして、あなたがしたい場合は、set_shape''でそれを絞り込むことができます)。 –
私はそれを試してみましょう。ありがとう! –