遍历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。