你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

BrainScript UCI 快速读取器

警告

UCIFastReader 已弃用,并且正替换为CNTK文本格式读取器。 请对网络使用CNTK文本格式读取器


UCIFastReader 读取基于文本的 UCI 格式数据,其中每个数据记录是一行空格分隔的浮点特征和标签值。 如果提供了标签信息,则标签信息位于每行的开头或末尾。 若要使用 UCIFastReader,readerTypeUCIFastReader请将其设置为 in

reader = [
    readerType = "UCIFastReader"
    file = "c:\cntk\data\mnist\mnist_train.txt"
    features = [
        dim = 784
        start = 1
    ]
    labels = [
        dim = 1
        start = 0
        labelDim = 10
        labelMappingFile = "c:\cntk\data\mnist\mnistlabels.txt"
    ]
]

在此示例中,还可以注意到两个名为 featureslabels. 数据读取器使用这些名称来匹配网络中计算节点以及从文件加载的数据。 如果简单的网络生成器用于创建网络, features 并且 labels 分别是功能和标签节点的标准名称。 如果使用 NDL 网络生成器定义网络,则需要确保这些名称与网络中相应的节点匹配。 UCIFastReader 具有以下参数:

  • file:包含数据集的文件。 此参数已从功能和标签子块上移,因为 UCIFastReader 要求文件相同,并且向上移动级别可确保满足此限制。

  • dim:输入值的维度。 请注意,UCI 数据文件中的每个列都表示输入数据的一个维度。

  • start:输入数据的起始列 (从零开始的) 。

  • labelDim:可能的标签值数。 分类标签需要此参数,因为标签节点的维度将由此值决定。 请注意,标签值本身通常在 UCI 数据文件中的一列中指定。

  • labelMappingFile:用于从标签值映射到数字标签标识符的文件的路径。 该文件通常列出所有可能的标签值,每行一个,可以是文本或数字。 从零开始的行号是CNTK用于标识该标签的标识符。 请务必使用相同的标签映射文件进行训练和评估。 这可以通过向上移动 labelMappingFile 参数来完成,以便训练块和评估块可以共享该参数。

  • customDelimiter:自定义分隔符。 默认情况下,空格用作分隔符。 使用此参数,除了空格之外,还可以选择使用另一个分隔符,例如逗号或分号。 但请注意,此读取器不处理空字段,例如,行中的两个逗号,并且两者之间没有空格。

  • customDecimalPoint:自定义的小数点。 默认情况下,点用作小数点。 使用此参数,可以选择使用另一个小数点,例如欧洲国家/地区使用的小数点。

  • labelType:指示应如何解释标签列。 默认情况下,它设置为“Category”,这意味着需要映射表从值映射, (可以是字符串) 到类 ID,以便值转换为 1 热表示形式。 它可设置为“回归”,以指示直接使用值而不进行任何转换,或“无”指示不使用任何标签。

其他选项:

  • traceLevel:一个整数,用于定义读取器的详细程度。 当前使用:0 (无跟踪) 和 1。 默认值为 0。
  • prefetch:指示是否应启用预提取的布尔 (“true”或“false”) 。 预提取是指数据以异步方式读取到主处理的事实。 默认为 false。
  • randomize:字符串 (“none”、“auto”) 控制应读取行的顺序。 如果为“None”,则按线性顺序读取;如果是“自动”,则随机选取它们;TODO 也可以是某些约束下的整数。
  • minibatchMode:如果给定并设置为“partial”,则接受部分迷你球:否则,训练数据大小必须是小块大小的倍数。