绘制keras_training_history对象

时间:2019-01-20 00:04:13

标签: r plot keras openmp

遍历this intro tutorial for keras in R。训练历史记录如下存储到对象中

history <- model %>% fit(
  x_train, y_train,
  epochs=30, batch_size=128,
  metrics=c('accuracy')
)

之后,下一步是绘制此历史记录plot(history)。在RStudio(v1.1.463)中执行此操作,将立即导致rsession进程崩溃,没有警告或错误。以下是history对象的详细信息

> str(history)
List of 2
 $ params :List of 8
  ..$ batch_size        : int 128
  ..$ epochs            : int 30
  ..$ steps             : NULL
  ..$ samples           : int 48000
  ..$ verbose           : int 1
  ..$ do_validation     : logi TRUE
  ..$ metrics           : chr [1:4] "loss" "acc" "val_loss" "val_acc"
  ..$ validation_samples: int 12000
 $ metrics:List of 4
  ..$ val_loss: num [1:30] 0.17 0.121 0.11 0.106 0.096 ...
  ..$ val_acc : num [1:30] 0.949 0.966 0.968 0.97 0.973 ...
  ..$ loss    : num [1:30] 0.423 0.202 0.155 0.133 0.115 ...
  ..$ acc     : num [1:30] 0.871 0.941 0.955 0.961 0.967 ...
 - attr(*, "class")= chr "keras_training_history"

在训练期间,损耗图和准确性图将逐渐显示在“查看器”窗格中(每个历元完成后添加点)。我还可以直接从历史记录对象中提取值并绘制它们,例如plot(history$metrics$loss)。仅直接尝试绘制keras_training_history对象会触发崩溃。

会话信息

> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.2

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods  
[7] base     

other attached packages:
[1] keras_2.2.4

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0      lattice_0.20-38 zeallot_0.1.0  
 [4] grid_3.5.2      R6_2.3.0        jsonlite_1.6   
 [7] magrittr_1.5    tfruns_1.4      whisker_0.3-2  
[10] Matrix_1.2-15   reticulate_1.10 generics_0.0.2 
[13] tools_3.5.2     yaml_2.2.0      compiler_3.5.2 
[16] base64enc_0.1-3 tensorflow_1.10

你知道这是怎么回事吗?


其他信息

我决定通过Rscript从命令行运行该教程。这产生了RStudio没有传递的以下附加错误:

  

OMP:错误#15:初始化libomp.dylib,但发现libiomp5.dylib   已经初始化。

     

OMP:提示这表示多个副本   OpenMP运行时已链接到程序中。那很危险   因为它会降低性能或导致错误的结果。最好的   要做的是确保仅链接一个OpenMP运行时   进入流程,例如通过避免静态链接OpenMP   任何库中的运行时。作为不安全,不受支持,没有文件证明   解决方法,您可以设置环境变量   KMP_DUPLICATE_LIB_OK = TRUE允许程序继续执行,   但这可能会导致崩溃或以静默方式产生不正确的结果。对于   有关更多信息,请参见http://openmp.llvm.org/

     

中止陷阱:6

这仍然让我无所适从,但似乎指向keras / tensorflow conda环境(R的keras在后端使用的东西)的方向存在问题,无法链接到OpenMP。

以前有人打过类似的东西吗?如果有帮助,我可以添加conda env的YAML。

0 个答案:

没有答案