3.1.3 编译网络

一旦我们定义了网络,在训练模型前就必须编译它。编译是提高效率的一个步骤。它将我们定义的简单图层序列转换为高效的矩阵变换序列,其应在CPU或GPU上都可执行,具体取决于Keras的配置方式。可以将编译视为网络的预计算步骤,定义模型后必须进行编译。我们使用compile()函数对训练模型进行设置,实现代码如下:

> model %>% compile(loss = 'binary_crossentropy',
+                   optimizer = 'adam',
+                   metrics = c('accuracy'))

compile()函数需要输入下列参数。

  • loss:设置损失函数,回归问题使用mean_squared_error,二分类问题使用binary_crossentropy,多分类问题使用categorical_crossentropy。
  • optimizer:设置训练时的优化器,本例使用Adam优化器。
  • metrics:除了损失函数外,还可以在拟合模型时收集度量标准,通常,要收集的最有用的附加度量标准是分类问题的准确性。