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

BrainScript 训练、测试、Eval

下面介绍主要顶级命令 train 及其 test/eval 相应的参数。 有关其他顶级命令,请参阅 相应的页面

训练命令

此命令要求CNTK训练模型。 配置文件概述页上提供了命令节的示例train。 相关参数包括:

  • reader – 用于确定如何加载输入数据的读取器配置块。 有关详细信息,请参阅 读取器块

  • SGD – SGD 培训设置。 有关详细信息,请参阅 SGD块

  • BrainScriptNetworkBuilder – BrainScript 配置块。 有关详细信息,请参阅 BrainScript 网络生成器

  • SimpleNetworkBuilder – 简单的网络生成器配置块。 有关详细信息,请参阅 简单网络生成器

  • cvReader – (用于交叉验证数据的读取器配置块) 可选。

  • makeMode – 如果设置为 true (默认) 训练将继续从任何时期中断。 如果设置为 false 训练将从头开始重启。

  • firstMBsToShowResult – 指示在纪元开始时有多少小巴,以分别显示中间结果。

  • numMBsToShowResult – 指示应显示中间结果的小型巴托数。

测试或 Eval 命令

这些命令评估/测试模型的准确性,通常使用测试数据集。 相关参数包括:

  • reader – 读取器配置块,用于读取测试数据。 有关详细信息,请参阅 读取器块

  • modelPath – 要评估的模型的路径。

  • BrainScriptNetworkBuilder – 如果提供了此值,则模型不仅从 modelPath 此配置中读取,而是从此配置构造。 这用于修改动态模型以供评估。

  • minibatchSize – 读取和处理数据集时要使用的小块大小。

  • epochSize – 数据集的大小。 默认值为 0。 如果数据集设置为 0,则会评估整个数据集。

  • numMBsToShowResult – 指示应显示中间结果的小型巴托数。

  • evalNodeNames – 要计算的一个或多个节点名称的数组。

  • distributedMBReading - 接受布尔值:true 或 false;默认值为 false。 对于支持分布式迷你包读取的读取器,应将其设置为 true。 如果使用CNTK文本格式读取器、图像读取器或复合数据读取器,则应设置 distributedMBReading=true。

以下示例采用 Simple2d 示例。 在此示例中,在顶层定义,modelPath并由命令test自动train选取。

Simple_Demo_Test = [
    action = "test"

    # Parameter values for the reader
    reader = [
        readerType = "CNTKTextFormatReader"
        file = "$DataDir$/SimpleDataTest_cntk_text.txt"
        randomize = false
        input = [
            features = [
                dim = 2        # two-dimensional input data
                format = "dense"
            ]
            labels = [
                dim = 2        # two-dimensional labels
                format = "dense"
            ]
        ]
    ]
]