你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
允许 SimpleNetworkBuilder 使用简单标准网络类型,只需几行配置即可。 仅支持一组有限的配置选项。 可以改为使用 BrainScriptNetworkBuilder 更复杂的网络进行定义。
若要使用 SimpleNetworkBuilder,请在训练配置中包含同名的配置块。 如果省略某个选项,则假定默认值。 我们首先提供了一个简洁的示例,并列出下面的所有控件参数和选项。
SimpleNetworkBuilder = [
# 2 inputs, 2 hidden layers with 50 element nodes each, 2 outputs
layerSizes = 2:50*2:2
trainingCriterion = "CrossEntropyWithSoftmax"
evalCriterion = "ErrorPrediction"
layerTypes = "Sigmoid"
applyMeanVarNorm = true
]
在上面的示例中,可以省略“trainingCriterion”和“layerTypes”,因为它们使用的是默认值。 提供下列参数:
initValueScale:用于缩放用于初始化的随机数范围的值。 默认值为1。 如果使用统一分布初始化模型参数,则随机数范围将调整为[-0.05 * initValueScale, 0.05 * initValueScale]。 如果使用 Gaussian 分布初始化模型参数,则标准偏差将调整为0.2 * initValueScale * fanout^(-1/2)。layerTypes:隐藏层中非线性运算的类型。 有效值为Sigmoid(默认值)、Tanh和RectifiedLinear。uniformInit:确定是否使用统一分布来初始化模型参数。 有效值true(默认) ,false(使用 Gaussian 分布初始化模型参数) 。applyMeanVarNorm:是否对输入应用平均值/方差规范化。 有效值为true和false(默认值)。addDropoutNodes:是否添加退出节点。 默认为false。 如果指定true,则下拉节点将应用于输入节点和每个隐藏层的输出。layerSizes:指定层的维度。 例如,layerSizes=128:10:200:4000描述具有两个隐藏层的神经网络。 第一个隐藏层的维度为 10,第二个隐藏层的维度为 200。 输入和输出层的维度分别为 128 和 4000。trainingCriterion:用于训练的条件。 默认为CrossEntropyWithSoftmax。 替代项是SquareError,CrossEntropy和ClassBasedCrossEntropyWithSoftmax。 适用于ClassBasedCrossEntropyWithSoftmax基于类的训练,如果输出维度较大,因此需要拆分为类,以加快训练和评估速度,这非常有用。evalCriterion:评估条件。 值的选择与值trainingCriterion相同。lookupTableOrder:指定 lookupNode 中上下文扩展的顺序。 默认值是1。 将其设置为值(如 3)会按 3 的顺序以依赖上下文的方式扩展输入维度。 例如,如果输入观察值维度为 20,则此值设置为 3 会将输入节点维度设置为 60。
对于循环神经网络 (RNN) ,还有其他参数。
recurrentLayer:指定包含自循环连接的层。 默认情况下,没有循环层。 使用语法n1:n2:n3指定 n1、n2 和 n3 层具有循环连接。defaultHiddenActivity:访问第一个观察前的值时延迟节点使用的默认隐藏层活动值。 默认值是0.1。rnnType:预定义网络的类型。 有效值是:SIMPLENET:源转发神经网络。 这是默认网络类型。SIMPLERNN:简单的 RNN,这可能是一个深度 RNN,其中的多个层具有循环循环。CLASSLM:基于类的简单 RNN。 它使用稀疏输入、稀疏参数和稀疏输出。 这通常用于语言建模任务。LBLM:log-bilinear 神经网络。LSTM:长期短期内存神经网络。CLASSLSTM:基于类的长期短期内存神经网络。 它使用稀疏输入、稀疏参数和稀疏输出。 这通常用于语言建模任务。
Next: Define your own complex networks with BrainScriptNetworkBuilder.