【发布时间】:2018-07-27 07:18:31
【问题描述】:
我通过读取 TFRecords 创建了一个数据集,我映射了这些值,我想过滤数据集以获取特定值,但由于结果是一个带有张量的 dict,我无法获得一个张量的实际值或用tf.cond()/tf.equal检查它。我该怎么做?
def mapping_func(serialized_example):
feature = { 'label': tf.FixedLenFeature([1], tf.string) }
features = tf.parse_single_example(serialized_example, features=feature)
return features
def filter_func(features):
# this doesn't work
#result = features['label'] == 'some_label_value'
# neither this
result = tf.reshape(tf.equal(features['label'], 'some_label_value'), [])
return result
def main():
file_names = ["/var/data/file1.tfrecord", "/var/data/file2.tfrecord"]
dataset = tf.contrib.data.TFRecordDataset(file_names)
dataset = dataset.map(mapping_func)
dataset = dataset.shuffle(buffer_size=10000)
dataset = dataset.filter(filter_func)
dataset = dataset.repeat()
iterator = dataset.make_one_shot_iterator()
sample = iterator.get_next()
【问题讨论】:
-
你得到哪个错误?
标签: python tensorflow tensorflow-datasets