2016-10-30 6 views
0

両方ともスカラーです。私は変数を再割り当てしようとしています。しかし、すべての反復が変数のサイズを変更するため、私はできません。私はあらゆる種類の変換を試みましたが、動作しません。何か案が?変数の割り当てTensorFlowサイジングエラー

私はリストに要素を追加するような振る舞いをしようとしています。

a = tf.Variable(0.00, tf.float32) 
b = tf.Variable(0.00, tf.float32) 
a.assign(tf.pack([a, b])) 

これはエラーを与える:

ValueError: Shapes() and (2,) are not compatible 
+0

種類が異なるため、動作しません。コードはPythonですが、TFグラフは型をチェックします。 'tf.pack([a、b])'の結果をホストする3番目の変数を使うのはどうでしょうか? –

+0

しかし、私の変数はすべての繰り返しで常に1つずつ増えています。これは、増加する次元に対応するために何千もの変数を作成しなければならないことを意味します。 – Ritchie

+0

私はそれについて多くのことを考えなくてはなりません。 [documentation](https://www.tensorflow.org/versions/master/api_docs/python/state_ops.html#Variable)には、「初期値は変数のタイプと形状を定義します。変数の形状は固定されています。これは、 'a'への代入が浮動小数点値を提供しなければならないことを意味します。 'TensorArray'やテンソル、' tf.expand_dims'のようなAPIのように、動的構造(リストよりも複雑です)を「後で」実行するのはどうでしょうか? –

答えて

0

aは、単一のスカラー変数 bです(あなただけのこれらの変数に他の単一のスカラー値を割り当てることができ、単一のスカラー変数

ですあなたが何かを割り当てることができるPythonのようなものではありません)。

tf.pack([a, b])テンソルを作成するときに、テンソルを1つのスカラー変数に代入することはできません。新しい変数を作成する必要があります。