2017-08-11 8 views
0

畳み込みニューラルネットワークを使用してストリートビューハウスナンバー(SVHN)データを読み取るテンソルフローのコードを作成します。テンソルを使用した損失関数in input dim 1を使用しているインデックスの範囲

最初私はTFRecordsを使用して、その配列ラベルで各画像を読み取る、Iは、アレイ、に各画像のラベルを格納。例えば::

この[4,5,3,4,8,0]のような5348アドレスを含む画像のラベルを保存します。インデックス(画像)の桁数に関連するインデックス1と、このインデックスの最後の数字は、画像が存在することを意味し、4桁ではなく5桁であり、場合によっては3または2である。

レイヤーステップ。私は完全に接続されたレイヤーを5つ使用しましたが、私はそれをどうすればいいのか正確にはわかりませんが、ラベルの各桁ごとにロジットがあることはわかっています。それから私は、エラーが::

tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits4, labels= labels[:,4])) +\

ValueError: Index out of range using input dim 1; input has only 1 dims for 'strided_slice' (op: 'StridedSlice') with input shapes: [2], [2], [2], [2] and with computed input tensors: input[3] = <1 1>.

EDIT :::

the codeある

logits1 = fully_connected(network, 10, weights_init='xavier') #activation='softmax' 
    logits2 = fully_connected(network, 10, weights_init='xavier') 
    logits3 = fully_connected(network, 10, weights_init='xavier') 
    logits4 = fully_connected(network, 10, weights_init='xavier') 
    logits5 = fully_connected(network, 10, weights_init='xavier') 


    loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits1, labels= labels[:,1])) +\ 
          tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits2, labels= labels[:,2])) +\ 
          tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits3, labels= labels[:,3])) +\ 
          tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits4, labels= labels[:,4])) +\ 
          tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits3, labels= labels[:,5])) 

各logitsのために損失関数を合計 - >それだけで固定されたとの仕事であります各アドレスの桁数

答えて

0

1DをスライスしようとしていますDインデックスを使用する。次のコードはうまくいくでしょうし、論理を再考する必要があるかもしれません。

loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits1, labels= labels))     tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits2, labels= labels)) +\ 
    tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits3, labels= labels)) +\ 
    tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits4, labels= labels)) +\ 
    tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits = logits3, labels= labels)) 
+0

ラベルを '2Dテンソル'とすると、ラベルが '2Dテンソル'とみなされることがあります。それ以外の場合は動作しません。 –

関連する問題