You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Eclipse/StatET中使用R的Keras时plot()函数无法生成图像

在Eclipse/StatET中运行R脚本无法生成Keras训练历史图像的解决办法

我之前在Windows 10的StatET环境里也碰到过一模一样的问题——整段脚本跑下来就是没生成图像,但单独在命令行敲代码或者直接用R运行脚本就完全正常。结合你的场景,大概率是工作路径不匹配或者图形设备的执行时机出了问题,给你几个实用的排查和解决方向:

  • 先确认工作路径是否正确
    StatET运行脚本时的默认工作路径,和你手动在命令行执行时的路径可能不一样。你可以在脚本最开头加一行print(getwd()),看看输出的路径是不是包含figuras文件夹的那个目录。如果不对,直接在脚本开头用setwd("你的项目根路径")手动指定(比如setwd("D:/My_R_Projects/Keras_Test")),另外记得提前创建figuras文件夹,避免路径不存在导致保存失败:

    dir.create("figuras", recursive = TRUE, showWarnings = FALSE)
    
  • 给图形设备足够的渲染时间
    有时候脚本执行速度太快,dev.off()可能在plot(history)完全渲染完成前就执行了,导致图像文件是空的或者根本没生成。你可以在绘图后加个短暂的延迟,或者换用更稳定的图形设备函数试试:

    history <- model %>% fit_generator(train_generator, steps_per_epoch = 100, epochs = 30, validation_data = validation_generator, validation_steps = 50)
    png(filename="figuras/history.png") # 换成png试试,兼容性更好
    plot(history)
    Sys.sleep(1) # 给1秒渲染时间
    dev.off()
    
  • 检查StatET的图形设备设置
    打开Eclipse的Window > Preferences > StatET > R > Graphics,确认默认图形设备是windows(Windows系统下的原生图形设备),同时勾选“Enable interactive graphics”选项。如果之前设置成了其他设备,可能会导致脚本中无法正常初始化图形环境。

  • 拆分脚本逐块运行排查
    把脚本分成两部分:先运行模型训练的代码,确认history对象正常生成(可以用str(history)查看结构),然后再单独运行绘图和保存的代码。有时候训练过程占用了大量资源,会导致后续的绘图代码无法正常执行,拆分后能快速定位问题。

内容的提问来源于stack exchange,提问作者FGS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:41:09