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

使用Keras计算Shapley值时脚本中途暂停,如何使其持续运行?

解决脚本暂停运行的方法

一、调整Windows电源相关设置

  • 关闭显示器睡眠:前往「控制面板\硬件和声音\电源选项\更改计划设置」,将「关闭显示器」设为「从不」——即使桌面睡眠已关闭,显示器休眠仍可能触发系统后台资源限制。
  • 禁用快速启动:进入「控制面板\硬件和声音\电源选项\选择电源按钮的功能」,点击「更改当前不可用的设置」,取消勾选「启用快速启动(推荐)」后保存,避免该功能导致的系统资源调度异常。
  • 优化高级电源配置:展开「PCI Express」→「链接状态电源管理」,设置为「最大性能」;展开「处理器电源管理」,将「最小处理器状态」和「最大处理器状态」均设为100%,防止CPU降频拖慢任务进程。

二、调整Anaconda提示符运行配置

  • 以管理员身份启动:右键点击Anaconda Prompt,选择「以管理员身份运行」,避免权限不足导致进程被系统限制。
  • 关闭快速编辑模式:在提示符窗口标题栏右键→「属性」→「选项」标签,取消勾选「快速编辑模式」和「插入模式」——该模式下误点窗口会暂停进程,你唤醒后点击操作恰好解除了暂停状态。

三、优化Python脚本运行逻辑

  • 强制GPU保持活跃:在脚本开头添加代码,避免GPU进入低功耗状态:
    import tensorflow as tf
    physical_devices = tf.config.list_physical_devices('GPU')
    if physical_devices:
        tf.config.experimental.set_memory_growth(physical_devices[0], True)
    
  • 添加心跳式日志输出:在批量预测循环中定期打印日志并刷新缓冲区,让系统判定进程处于活跃状态:
    import time
    import sys
    
    batch_count = 0
    for batch in data_generator:
        predictions = model.predict_on_batch(batch)
        batch_count += 1
        if batch_count % 10 == 0:
            print(f"已处理 {batch_count} 个批次,当前时间:{time.strftime('%Y-%m-%d %H:%M:%S')}")
            sys.stdout.flush()
    

四、调整Shap库运行参数

  • 限制计算资源占用:使用Shap解释器时,避免单次计算量过大或多线程冲突:
    import shap
    explainer = shap.KernelExplainer(model.predict, background_data)
    explainer.max_evals = 100  # 根据实际需求调整,控制单样本计算量
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:40:49