如果事情不对,TensorFlow就会非常努力。
假设我们不断地将文件写入csv。在decode_jpeg
失败之前,我们如何预先检查jpeg是否有效?我们可以有一个文件,其中jpeg没有完全写入或其他一些失败。
我试过了:
image_path, label = tf.decode_csv(value, field_delim=" ", record_defaults=record_defaults)
print(image_path) #Tensor not a file...
file = tf.read_file("some_fake_file.jpg")
size = tf.size(file) #<tf.Tensor 'Size:0' shape=() dtype=int32>
if size is not None:
print("size is not none") # prints...
做类似
的事情 size = os.path.getsize(image_path)
抛出:TypeError: coercing to Unicode: need string or buffer, Tensor found
所以问题是我们如何确保我们在将其传递给decode_jpeg
之前处理指定大小的jpeg,以便TensorFlow不会失败。
理想情况下,我们可以检查尺寸并确保jpeg的尺寸等于我们的完整训练图像尺寸。