图像预处理误差

2024-03-29 01:29:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从filename参数读取所有行的输入函数。然后它对每一行应用解析器函数。我的.csv文件中的每一行如下:“path_to_img,label_num”。代码如下:

def input_fn(filename):

    def parser(column):
        d = tf.decode_csv(column, record_defaults=[[''], [-1]])
        img, label = d
        img = tf.read_file(img)
        img = tf.image.decode_jpeg(img, channels=3)
        img = tf.image.resize_images(img, (300, 200))
        img = tf.cast(img, tf.float32)
        return {'image': img}, label

    dataset = tf.data.TextLineDataset(filename).map(parser)
    dataset = dataset.repeat(None).shuffle(5000).batch(500)
    return dataset.make_one_shot_iterator().get_next()

然后我创建分类器并训练:

^{pr2}$

但最终我得到了一个与解码操作有关的错误,仍然无法理解是什么错误

tensorflow.python.framework.errors_impl.InvalidArgumentError: Expected image (JPEG, PNG, or GIF), got unknown format starting with '\"\"\"\n    flickr.p'
 [[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, dct_method="", fancy_upscaling=true, ratio=1, try_recover_truncated=false](ReadFile)]]
 [[Node: IteratorGetNext = IteratorGetNext[output_shapes=[[?,300,200,1], [?]], output_types=[DT_FLOAT, DT_INT32], _device="/job:localhost/replica:0/task:0/device:CPU:0"](OneShotIterator)]]

Tags: csv函数imageparserimgreturntfdef