2017-10-24 5 views
0

docArraytensorflowグラフを構築するために使用されるプレースホルダです。グラフは正しく構築されていますが、セッションでfeed_dictを使用してデータをフィードすると、可変長は動的に調整されません。以下はコードスニペットです。 iがランダムに初期化する場合に反復テンソルフロープレースホルダ上

lContext = tf.zeros((100,1), dtype=tf.float64) 
rContext = tf.zeros((100,1), dtype=tf.float64) 
for i in range(1, docArray.shape[1].valu): 
    j = docArrayShape - 1 - i 
    lContext = tf.concat([lContext,somefun1()], 1) 
    rContext = tf.concat([somefun2(), rContext], 1)  
X = tf.concat([lContext, docArray, rContext], axis= 0) 

このコードは、往路として使用される場合docArrayが docArray = tf.placeholder(tf.float64、[100、なし])のように初期化されるときに、エラーがアップ

(100×N)のリアルタイムdocArrayデータを入力しながら、ランダムな形状のdocArrayを返します。ここで、Nは文脈中の単語の数であり、連結時には練習中にエラーが発生し、lContextとdocArrayは異なる形になります。

サンプルドキュメントのサイズは固定されていません。

ご協力いただきありがとうございます。

答えて

0

連結時に変数のサイズが何であるかについて言及していないので、どこが間違っているのかを推定することは難しいです。しかし、一般的に、連結が行われるためには、連結を受けるテンソルは、連結を受けている軸を除いて、すべて同じ軸で同じdtypeと同じ寸法でなければなりません。

例えば、

不可:(異なるdtype

x = tf.placeholder(tf.float32, (100, None)) 
y = tf.placeholder(tf.float64, (100, None)) 
z = tf.concat((x,y), axis = 0) 

不可:(100の形状及び200ミスマッチ)可

x = tf.placeholder(tf.float32, (100, None)) 
y = tf.placeholder(tf.float32, (200, None)) 
z = tf.concat((x,y), axis = 1) 

:(同じdtypeと軸マッチ)

x = tf.placeholder(tf.float32, (100, 300)) 
y = tf.placeholder(tf.float32, (200, 300)) 
z = tf.concat((x,y), axis = 0) 

上記の例では、他の例のようにNoneを使用するとコンパイルされますが、実行時にはNoneは同じ形を表現する必要があります。