如何在MinibatchSource中获取流的名称?

时间:2017-01-04 20:34:17

标签: cntk

如何在MinibatchSource中获取每个流的名称?

我可以获取与stream_infos返回的流信息相关联的名称吗?

minibatch_source.stream_infos()

我还有一个后续问题:

结果来自: 打印(reader_train.streams.keys()) 是 dict_keys(['labels','features'

这些名称如何与MiniBatchSource的构造相关,就像这样做?

return MinibatchSource(ImageDeserializer(map_file, StreamDefs(
    features = StreamDef(field='image', transforms=transforms), # first column in map file is referred to as 'image'
    labels   = StreamDef(field='label', shape=num_classes)      # and second as 'label'
)))

我原以为我的流会被命名为'image'和'label',但它们被命名为'labels'和'features'。

我猜这些名字是某种默认名称?

1 个答案:

答案 0 :(得分:1)

原始问题:

minibatch_source.streams.keys()

例如,参见{#3}}部分"简要介绍数据和数据阅读"。

对于您的后续问题:keys()返回的名称是StreamDefs()的参数。这就是您在程序中所需要的一切。如果您定义MinibatchSource这样的

return MinibatchSource(ImageDeserializer(map_file, StreamDefs(
image = StreamDef(field='image', transforms=transforms), # first column in map file is referred to as 'image'
label = StreamDef(field='label', shape=num_classes)      # and second as 'label')))

然后名称将匹配。您可以选择所需的任何名称,但fieldStreamDef()的值应与源匹配(这取决于您输入的数据和您正在使用的反序列化器)。