python - 张量流中的图像预处理错误
问题描述
我有从文件名参数读取所有行的输入函数。然后它将解析器功能应用于每一行。我的 .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()
然后我创建分类器并训练:
feat_cols = [tf.feature_column.numeric_column('image', shape=(300, 200))]
model = tf.estimator.DNNClassifier([4028, 1024, 512], feature_columns=feat_cols, model_dir=OUTDIR, n_classes=5)
model.train(input_fn=lambda: input_fn('data.csv'), steps=1000)
但最终我得到一个与解码操作有关的错误,但仍然无法理解出了什么问题
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)]]
解决方案
推荐阅读
- swift - 可扩展列表:更改箭头颜色?
- android - 我是否必须为 Android App Bundle 制作不同的值和布局文件夹
- java - 给定一个类,找出它是否已用任何注释进行注释,是或否
- sql - 在 Teradata 表上插入数据时生成递减 ID
- node.js - 数组推送不适用于 2 元素循环节点 Js
- sql - 从多条记录中为一条记录选择小时
- angular - Angular 9 Bootstrap 弹出框显示 ajax 加载
- reactjs - PNG 使用“资产/资源”中断/不显示
- php - 从两个表条目创建 Laravel 文件
- javascript - React 组件从另一个组件渲染子组件