概念
不随版本变化
启动与日志:报错先看哪一行
启动日志是排查的入口。会看它,能省掉大半试错。
程序启动时会打印一段日志:环境信息、检测到的显卡、加载了哪些扩展、每个扩展是否成功。出问题时它是最快的线索来源,因为很多错误在启动那一刻就已经写明了。
日志里有什么
- 环境与版本:程序版本、Python 版本、计算库版本、显卡与驱动信息
- 显存与运行模式:检测到多少显存、以哪种加载模式运行
- 扩展加载结果:每个自定义节点的导入是成功还是失败,失败会给出原因
- 模型扫描结果:找到多少个模型文件、路径在哪里
- 运行期输出:每次执行的进度、耗时、以及报错堆栈
按顺序看哪几段
- 先看最后一段报错:运行期的错误堆栈在末尾,它指的是本次失败的直接原因。
- 再往回找第一个异常:堆栈里常有「底层错误被上层包装」的情况,最下面那条往往才是根因。
- 然后看扩展加载段:缺节点、导入失败这类问题,在这一段就写明了,不用等到运行。
- 最后看环境段:版本不匹配、显卡没被认到、显存检测值异常,都在这里。
把日志交给别人看之前
- 提供完整日志而不是截取的一行:上下文往往才是线索
- 说明你做了什么操作、用的什么工作流、模型文件从哪来
- 把报错原文一字不改贴出来,包括那些看不懂的路径与数字
- 如果报错里有大段重复内容,保留首尾即可,中间可以省略并注明
常见误解
常见误解
- 只看最后一行就下结论
最后一行常常只是「某一步失败了」,真正的原因在上面几行。 - 把警告当成错误
日志里的很多提示是警告:不影响运行,但可能与后面的问题相关。先分清级别再处理。 - 报错消失了就当解决了
掩盖症状的改动(例如关掉某个功能)会让问题在别处复发。搞清楚根因再收工。
知仓学习社