1. 程式人生 > >[Bug集合]InvalidArgumentError (see above for traceback): targets[0] is out of range

[Bug集合]InvalidArgumentError (see above for traceback): targets[0] is out of range

常見入門問題,在拷貝修改別人程式時一定概率出現。
原因:你一定是改了 神經網路輸出層神經元個數 或 給予神經網路的訓練集的標籤數目 其中的一種,使得兩者不匹配。
比如我拷貝了一個貓狗大戰的程式改,結果資料集分了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不匹配。