Map 函数中的 TensorFlow Dataset API 张量评估

Phi*_*zin 5 python tensorflow tensorflow-datasets

我有以下数据集输入函数来创建数据集生成器。

def dataset_input_fn(filenames, shuffle, batch_size, sample):
    def parser(record):
        features = {
            'mean_rgb': tf.FixedLenFeature([1024], tf.float32),
            'category': tf.FixedLenFeature([], tf.int64)
        }
        parsed = tf.parse_single_example(record, features)

        vrv = parsed['mean_rgb']
        label = tf.cast(parsed['category'], tf.int32)
        return {"mean_rgb": vrv}, label

    dataset = tf.data.TFRecordDataset(filenames)
    dataset = dataset.map(parser)
    if sample:
        dataset = dataset.flat_map(
            lambda x, y: tf.data.Dataset.from_tensors((x, y)).repeat(oversample_classes(y))
        )
        dataset = dataset.filter(undersampling_filter)
    dataset = dataset.shuffle(buffer_size=100 * batch_size)
    dataset = dataset.batch(batch_size).repeat(1)
    iterator = dataset.make_one_shot_iterator()
    features, labels = iterator.get_next()
    return features, labels
Run Code Online (Sandbox Code Playgroud)

我试图按照此代码根据标签对数据进行过度/子采样。在我的dataset.flat_map函数中,我迭代每个标签,并想确定重复它的频率。但是, y 是一个张量,我无法将其计算为整数。当我尝试时sess.run(label)我得到

ValueError:获取参数不能解释为张量。(Tensor Tensor("arg1:0", shape=(), dtype=int32) 不是该图的元素。)