【问题标题】:How do I get the string mapping from tensorflow datasets dataset?如何从 tensorflow datasets 数据集中获取字符串映射?
【发布时间】:2021-05-24 15:46:22
【问题描述】:

抱歉,如果这有一个明显的答案,我觉得应该。 使用 Tensorflow 数据集时,标签自动为整数,但您可以通过 API 显示它们以获取字符串映射。 例如在 CIFAR10 中 7 对应于马。 我怎样才能得到这些映射? 我是否必须下载数据集并从文件夹/目录名称中获取它们? 还是有别的办法?

干杯

编辑:正如 Amel 在下面指出的,我认为它必须以某种方式访问​​的原因是因为在调用显示示例时,类名显示在整数标签旁边。

【问题讨论】:

    标签: tensorflow tensorflow-datasets


    【解决方案1】:

    你需要使用 train_ds.class_names(train_ds 是数据集)

    例如:

    class_names = train_ds.class_names
    for images, labels in train_ds.take(1):
        print(labels)
        for i in range(0, 5):
            print(labels[i])
            print(class_names[labels[i]])
    

    这里可以看到labels[i]是一个带整数的张量,class_names[labels[i]]是对应的字符串。

    【讨论】:

    • 谢谢。这是否适用于目录中的所有 tensorflow 数据集?我得到 AttributeError: '_OptionsDataset' object has no attribute 'class_names' running this
    • 我不这么认为。它适用于创建为 tf.data.dataset 的自定义数据集,但不适用于目录中的 tfds。但是,信息应该在某处可用,因为当您使用 show_examples 函数时,您会得到标签。也许您应该要求在 tensorflow-datasets Github987654321@ 上的 ds_info 中提供此参数
    • 谢谢,这正是我知道它在某个地方的原因。它适用于显示示例,但我的代码出现错误,并且 info dict 中也没有任何内容。但是类名在下载时可以作为文件夹使用。
    猜你喜欢
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2019-12-04
    • 1970-01-01
    • 2020-04-11
    • 2012-04-30
    • 2018-10-01
    相关资源
    最近更新 更多