如何使用Tensorflow训练70k图像

时间:2018-04-22 04:29:39

标签: tensorflow classification multiclass-classification

我是张力流和机器学习的新手。 我有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 个答案:

答案 0 :(得分:0)

这个问题非常广泛但有些事情。

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

  2. Keras有一些实用程序类可以帮助加载大量不适合内存的数据。使用默认ImageDataGenerator进行预测的许多类可能不切实际,因为ImageDataGenerator从图像文件所在的目录中获取标签。 (含有50个类的含义,您需要一个包含50个子文件夹的列车数据文件夹以及包含50个子文件夹的测试数据文件夹。如果您正在进行交叉验证,则需要复制这些文件夹。)

  3. 更多信息:

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

    1. 如果您没有制作文件夹,那么您需要制作自己的生成器来加载文件,并返回这些文件的标签。
    2. 对于这种情况,我建议看一下:

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