我正在基于这里的代码重新训练初始v3网络:https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#0。我有一套200个标签。每个标签都有图像,其数量从50到15000不等。在重新训练时,我得到以下错误:
2017-01-08 07:42:09.683263: Step 30: Train accuracy = 6.0%
2017-01-08 07:42:09.683384: Step 30: Cross entropy = 6.297137
2017-01-08 07:42:09.808175: Step 30: Validation accuracy = 0.0%
2017-01-08 07:42:11.083850: Step 40: Train accuracy = 2.0%
2017-01-08 07:42:11.083964: Step 40: Cross entropy = 6.296147
CRITICAL:tensorflow:Label corset has no images in the category validation.
Traceback (most recent call last):
File "tensorflow/examples/image_retraining/retrain.py", line 1012, in <module>
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 43, in run
sys.exit(main(sys.argv[:1] + flags_passthrough))
File "tensorflow/examples/image_retraining/retrain.py", line 839, in main
bottleneck_tensor))
File "tensorflow/examples/image_retraining/retrain.py", line 480, in get_random_cached_bottlenecks
bottleneck_tensor)
File "tensorflow/examples/image_retraining/retrain.py", line 388, in get_or_create_bottleneck
bottleneck_dir, category)
File "tensorflow/examples/image_retraining/retrain.py", line 245, in get_bottleneck_path
category) + '.txt'
File "tensorflow/examples/image_retraining/retrain.py", line 221, in get_image_path
mod_index = index % len(category_list)
ZeroDivisionError: integer division or modulo by zero`谷歌上的搜索让我明白,如果图片少于20张,就会发生这样的错误。这可能是因为他们的图片可能没有足够的图片可供验证。然而,我至少有50张图片。那么为什么我会得到这个错误呢?
发布于 2017-01-09 22:20:19
我看了你的帖子中教程链接的tensorflow/examples/image_retraining/retrain.py文件。
运行的部分代码是发生在函数create_image_lists(image_dir, testing_percentage, validation_percentage)中的训练/验证拆分
拆分的默认值为10%,并在FLAGS.validation_percentage中说明
因为你有少于200张图片的类,所以split会返回少于20张照片的类进行验证,这就是错误发生的地方。
试着只运行包含超过200个图像的类的代码,看看是否有帮助。如果是这样的话,您可以考虑添加更多的图像,或者操作create_image_lists函数返回至少20张照片进行验证。
https://stackoverflow.com/questions/41542706
复制相似问题