使用 CNTK 测量回归性能
在这里,我们将看看如何使用我们结合 CNTK 讨论的不同指标。我们将使用回归模型,该模型使用下面给出的步骤预测汽车的每加仑英里数。
实施步骤-
第 1 步- 首先,我们需要从cntk包中导入所需的组件,如下所示 -
Step 2 - 接下来,我们需要使用default_options函数定义一个默认激活函数。然后,创建一个新的 Sequential 层集并提供两个 Dense 层,每个层有 64 个神经元。然后,我们将一个额外的 Dense 层(将作为输出层)添加到 Sequential 层集,并在没有激活的情况下给出 1 个神经元,如下所示 -
Step 3 - 创建网络后,我们需要创建一个输入特征。我们需要确保它与我们将用于训练的特征具有相同的形状。
第 4 步- 现在,我们需要创建另一个大小为 1 的input_variable。它将用于存储 NN 的预期值。
现在,我们需要训练模型,为此,我们将拆分数据集并使用以下实现步骤执行预处理 -
第 5 步- 首先,从 sklearn.preprocessing 导入 StandardScaler 以获取 -1 和 +1 之间的值。这将帮助我们对抗 NN 中的梯度爆炸问题。
第 6 步- 接下来,从 sklearn.model_selection 导入 train_test_split,如下所示 -
第 7 步-使用drop方法从数据集中删除mpg列。最后使用train_test_split函数将数据集拆分为训练和验证集,如下所示 -
第 8 步- 现在,我们需要创建另一个大小为 1 的 input_variable。它将用于存储 NN 的预期值。
我们已经对数据进行了拆分和预处理,现在我们需要训练 NN。正如前面章节在创建回归模型时所做的那样,我们需要定义损失函数和度量函数的组合来训练模型。
现在,让我们看看如何使用训练好的模型。对于我们的模型,我们将使用criteria_factory 作为损失和度量的组合。
完整的实现示例
输出
为了验证我们的回归模型,我们需要确保模型处理新数据的效果与处理训练数据的效果一样好。为此,我们需要使用测试数据调用损失和度量组合的测试方法,如下所示 -
输出-