2017-02-10 82 views
2

我使用Tensorflow图像再训练教程,设法让Flower_photos工作,但是当我放入我的照片作为测试火车时,它得到了错误Tensorflow InvalidArgumentError Invalid JPEG data, size 4096Tensorflow InvalidArgumentError无效的JPEG数据,大小4096,不是Jpeg文件0x00 0x05

我想知道是否因为图像太大?如果有图像的最大尺寸设置?或者如果有一个固定的高度/宽度?

因为我看到在flower_photos例子中,那里的图片有所有不同的高度和宽度,所以我假设没有固定的高度/宽度要求?

因为我确定图像是JPEG,我改变了image_retraining文件夹tf.image.decode_image的retrain.py ....但没有运气

编辑 现在我看到的是不是一个JPEG文件:以0x00开头0x05不知道是什么意思

编辑:我无法找到任何线程/信息或任何东西来帮助,但经过14小时的系统测试,我刚刚从Tensorflow再培训教程花的照片复制数据集完全正确(从Mac到Window 10和VBox Ubuntu),并且也遇到了同样的问题。现在我相信它的复制/传输过程会导致JPEG损坏。

+0

只是猜测,但错误可能是关于JPEG格式,而不是尺寸?堆栈跟踪(也可能是指向图像的指针)可能会有所帮助。 –

+0

感谢您的指针,我编辑了image_retraining.py改变了tf.image.decode_jpeg为tf.image.decode_image ....但它没有奏效。我会再看看它的格式问题。 – John

+0

现在我看到不是一个JPEG文件:以0x00 0x05开头不知道它是什么意思 – John

回答

3

经过18个小时的重复测试并尝试了很多东西。如果一个数据集通过USB传输(在我的情况下,从Mac到Window到Vbox),它会破坏JPEG,即使它看起来不像它的损坏,图像可以毫无问题地被查看等......但是当解码器试图读取它,它将以0x00 0x05开始。