运行程序时报错:
InvalidArgumentError (see above for traceback): targets[1]is out of range
百度了一下说出现这个错误的原因,都是因为你的labels标签数目和实际网络的分类数不一致,检查了一下,我的人脸识别,id数确实为3161,程序里也写的3161,后来发现我的id数从1开始,而label默认从0开始,到3160,为3161个id数,而当程序从tfrecord里解析出id为3161的图片时就会报错。
解决方法是在程序中加入一句代码,将label 减1就可以了
self.train_input.orbbec_color, self.train_input.orbbec_ir, self.train_input.orbbec_depth, labels = self.sess.run(data_train_batch)
labels = [i - 1 for i in labels]
# print('labels', labels)
#结果为:
labels=[3161 ,1514 ,2477 ,2583]变成labels=[3160 ,1513 ,2476 ,2582]
再次运行程序没问题。
所以这类报错应该都是这种原因引起的,仔细一点都是可以解决的。