如何使用TensorFlow训练70K图像



我是TensorFlow和机器学习的新手。我有一个55K图像的培训集,分为40个不同类别。有些类别具有〜2000张图像,而另一些类别则具有约20K图像。每个图像是分辨率的1080x1440。

我正在使用TensorFlow InceptionV3 ImageNet重新训练这些图像,但是我获得的结果不好。该程序无法正确对图像进行分类。在测试集的所有图像中,预期标签的准确性都非常低。

用于再训练,我的命令是 -

python retrain.py --image_dir=train_images --how_many_training_steps=4000 --output_graph=output_graph.pb --output_labels=output_labels.txt --bottleneck_dir=bottlenecks --saved_model_dir=saved_models

我不使用其他参数,例如缩放,裁剪,测试批量大小,验证批次大小等,因为我对如何使用它们不熟悉。

用于标签,我的命令是 -

python label_image.py --graph=output_graph.pb --labels=output_labels.txt  --input_layer=Placeholder --output_layer=final_result --image=51.jpg

有人可以帮助我如何使用这些输入参数以获得最佳结果?

预先感谢!

这个问题超广泛,但几件事。

  1. 我建议将Keras与TensorFlow后端一起使用,因为抽象使您更容易理解正在发生的事情。使用KERAS框架时,您还可以找到很多示例。

  2. keras有一些实用程序类,可以帮助加载大量不适合内存的数据。有许多类可以使用默认成像载体器预测的类可能是不切实际的,因为Imagedatagenerator从图像文件居住的目录中获取标签。(这意味着使用50个类,您需要一个带有50个子文件夹的火车数据文件夹以及带有50个子文件夹的测试数据文件夹。

更多信息在这里:

https://blog.keras.io/building-powerful-image-classification-models-using-very-very-little-data.html

  1. 如果您不制作文件夹,则需要制作自己的发电机来加载文件并返回这些文件的标签。

在这种情况下,我建议这样做:

https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly.html

相关内容

  • 没有找到相关文章

最新更新