【发布时间】:2018-03-25 08:37:30
【问题描述】:
我使用tf.data.TextLineDataset 读入*.csv 文件并在其上应用map:
dataset = tf.data.TextLineDataset(os.path.join(data_dir, subset, 'label.txt'))
dataset = dataset.map(lambda value: parse_record_fn(value, is_training),
num_parallel_calls=num_parallel_calls)
解析函数parse_record_fn如下:
def parse_record(raw_record, is_training):
default_record = ["./", -1]
filename, label = tf.decode_csv([raw_record], default_record)
# do something
return image, label
但是在解析函数中在tf.decode_csv 处引发了一个ValueError:
ValueError: Shape must be rank 1 but is rank 0 for 'DecodeCSV' (op: 'DecodeCSV') with input shapes: [1], [], [].
我的*.csv 文件示例:
/data/1.png, 5
/data/2.png, 7
问题:
- 哪里出了问题?
-
shapes: [1], [], []是什么意思?
复制
这个错误可以在这段代码中重现:
import tensorflow as tf
import os
def parse_record(raw_record, is_training):
default_record = ["./", -1]
filename, label = tf.decode_csv([raw_record], default_record)
# do something
return image, label
with tf.Session() as sess:
csv_path = './labels.txt'
dataset = tf.data.TextLineDataset(csv_path)
dataset = dataset.map(lambda value: parse_record(value, True))
sess.run(dataset)
【问题讨论】:
标签: python tensorflow tensorflow-datasets