智能实验室故障排除¶
本文用于识别并解决使用智能实验室过程中的一些问题。
打开 Jupyter Notebook 文件时报错:Close without saving¶
在 Notebook 实例中打开 Jupyter Notebook 文件时报错:close without saving
。
故障原因¶
原因 1:git merge 冲突向文件中添加了非 json 代码。
原因 2:其它编辑器编辑了该文件。
解决方案¶
通过以下步骤解决此问题:
在 文件浏览器 中点击鼠标右键选择此 Notebook 文件,并选择 打开方式 > 文本编辑器。
删除文件中的非 Json 代码并保存。
打开 Jupyter Notebook 文件时出现错误信息:File Load Error for {filename}.ipynb Unhandled error¶
在 Notebook 实例中打开 Jupyter Notebook 文件时出现以下错误信息:File Load Error for {filename}.ipynb Unhandled error
。其中,{Filename}
指代目标文件的文件名。
故障原因¶
历史数据库问题导致报错。
解决方案¶
你可以通过以下任一解决方案解决该问题:
方案 1:通过以下步骤移除 nbsignatures 文件:
在 Notebook 实例中打开终端。
输入以下命令并运行,然后重启 Notebook 实例。
rm ~/.local/share/jupyter/nbsignatures.db
方案 2:通过以下步骤移除 history.sqlite 文件:
在
~/.ipython/profile_default/history.sqlite
目录下找到 history.sqlite 文件。删除或重命名该文件,然后重启 Notebook 实例。
保存文件时出现错误:’_xsrf’ argument missing from post¶
在 Notebook 实例中保存文件时出现以下错误信息:'_xsrf' argument missing from post
。
故障原因¶
Notebook 实例运行时间过长导致报错。
解决方案¶
方案 1:刷新 Notebook 实例。
方案 2:打开一个与该实例内核相同但处于停止状态的 Notebook 实例,然后返回文件窗口并保存文件。
在智能任务流找不到模型代码文件¶
在 Notebook 中运行 eap notebook push
命令将模型代码文件上传到内部存储后,在智能任务流中配置 NotebookEx、PythonEX 或 ShellEx 算子时,无法找到相应的文件。
故障原因¶
原因 1:NotebookEx、PythonEX 或 ShellEx 算子的 workspace 参数选择错误。
原因 2:模型代码文件上传失败。
解决方案¶
对于原因 1:检查 NotebookEx、PythonEX 或 ShellEx 算子的workspace参数,确保其参数值为上传模型代码文件的目录。
对于原因 2:重新上传模型代码文件。如果提示
Object 'filename' already exists. Overwrite? [Y/n]
,输入Y
以覆盖重名文件。如需批量覆盖重名模型代码文件,在上传模型代码文件时输入并运行以下命令:eap-notebook push -p -y
如需了解更多关于模型代码的信息,可参考 管理模型代码.
Notebook 内核自动重启¶
在 JupyterLab Notebook 中编辑文件时,Notebook 内核自动重启,并弹出以下信息:
The kernel for {filename}.ipynb appears to have died. It will restart automatically.
故障原因¶
原因 1:CPU 或 memory 不足。
原因 2:Python 依赖包版本过低。
解决方案¶
当弹窗信息出现时,检查 Notebook 底部的内存使用情况:
若内存已满,在 实例详情 页面增加 Notebook 实例的内存。如需了解更多关于 Notebook 实例管理的信息,可参考 管理 Notebook 实例。
若内存未满,选择 Debug 查看当前的 Python 版本。通过
conda install
命令或pip install
命令更新 Python 包版本。如需了解更多关于包管理的信息,可参考 管理依赖包。
使用 log_model 时出现错误信息:TypeError: can’t pickle _thread.lock objects¶
通过 Mlflow Model Wrapper 创建的 mlflow 模型在使用 log_model 命令时出现以下错误信息:TypeError: can't pickle _thread.lock objects
。
故障原因¶
在 Mlflow Model Wrapper 的子函数中使用了 logger
函数,而 Mlflow 1.31.1 或 Cloudpickle 1.6.0/2.0.0 不支持此函数。
解决方案¶
删除 Mlflow Model Wrapper 中的 logger
函数。