[Bug集合]InvalidArgumentError (see above for traceback): targets[0] is out of range
阿新 • • 發佈:2018-11-11
常見入門問題,在拷貝修改別人程式時一定概率出現。
原因:你一定是改了 神經網路輸出層神經元個數 或 給予神經網路的訓練集的標籤數目 其中的一種,使得兩者不匹配。
比如我拷貝了一個貓狗大戰的程式改,結果資料集分了10類,但神經網路層輸出神經元還是兩個(原貓和狗),結果不匹配了。
如:
def inference(images, batch_size, n_classes,keep_prob):
conv1 = tf.layers.conv2d(images,6,3,1,'valid',activation=tf.nn.relu)
pool1 = tf.layers. max_pooling2d(conv1, 2, 2)
conv2 = tf.layers.conv2d(pool1, 16, 3, 1, 'valid', activation=tf.nn.relu)
pool2 = tf.layers.max_pooling2d(conv2, 2, 2)
reshape = tf.reshape(pool2, shape=[batch_size, -1])
local3 = tf.layers.dense(reshape, 400)
local4 = tf.layers.dense(local3, 400)
h_drop = tf.nn.dropout(local4, keep_prob)
softmax_linear = tf.layers.dense(h_drop, n_classes)
return softmax_linear
這是一段神經網路的搭建,其中n_classes是輸出類別,也就是輸出神經元個數。
而訓練集可能是手寫體,可能是cifar-10。結果類別為10和n_classes不匹配。