1. 在点击重新启动之前先冻结现状
不要再添加新任务,并确认同一批次的执行是否仍有活跃进程。连接丢失并不总是意味着软件已停止。在可能的情况下查看其状态:启动第二份副本可能产生重复项,或写入相同的目标位置。
保留日志、输入文件清单、设置和错误信息。在修正跟踪表之前,先复制一份。将存疑的输出放在单独的位置,不要覆盖原始文件或已验收的结果。如果目标位置已满,请先确认哪些内容必须保留,然后腾出空间或换一个目标位置。
2. 为每个元素赋予稳定的身份标识
一行应代表一项预期任务,例如 IMG-017 对应 catalogue/chaise-face.png。文件移动后,仅凭路径可能会变得含糊;像 photo.png 这样的短名称可能存在于多个文件夹中。请保留唯一标识符以及与原始输入的对应关系。
添加配置标识符、输出路径、状态、尝试次数和简短原因。该日志可以是普通的表格,也可以是项目中的 CSV 文件。它无需包含图像、密码或机器的完整技术日志。任何人都应能查到正确的条目,并解释它为何出现在恢复清单中。
不要修改已被验收的标识符背后的原始内容。新的条目或不同的转换需要有一个明确标注的新版本。否则,同一个标识符最终会指向两项互不兼容的工作,日志也就无法再用来判断哪些已经完成。
| ID | 配置 | 状态 | 输出或原因 |
|---|---|---|---|
| IMG-017 | essai-02 | 已接受 | IMG-017.png 已打开并检查 |
| IMG-018 | essai-02 | 待检查 | 文件存在,检查未完成 |
| IMG-019 | essai-02 | 失败 | 处理过程中内存不足 |
| IMG-020 | essai-02 | 待处理 | 未找到任何预期输出 |
3. 核对日志与实际文件
对于每一个预期标识符,查找对应的输出。检查满足你用途所需的格式、尺寸或内容,然后用目标工具打开该文件。已验收且仍然存在的输出不在恢复清单之内。如果日志显示“已验收”但输出缺失,请先查找保存的副本,再决定是否重新计算。
将停机时处于“进行中”的条目归入待检查项。其中一些可能已完整,另一些可能只是部分完成。文件的日期或大小只是线索,不是验证依据。没有已知标识符的多余文件先单独放置,直到你查明其来源。
对于图像,Pillow 将文件识别、像素读取和结构检查区分开来。因此,一个仅打开文件头的程序并不能检查全部内容。自动检查可以发现某些损坏;但它无法判断文字是否清晰可读,或颜色是否符合交付要求。
4. 区分未完成项与被拒绝的结果
部分完成的输出必须重做,或从完整副本中恢复。完整但不可接受的输出,首先需要弄清缺陷所在。对无法读取的输入,或对总是内存不足的情况重新使用相同参数运行,很可能会再次出现同样的问题。在把这个标识符重新放回队列之前,先记录修正内容。
状态要少:待处理、进行中、待检查、已验收和失败。只有在检查之后才能转为“已验收”,而不是在开始计算时。如果你决定排除某个条目,请添加一个“已剔除”状态,并附上原因和项目所需的批准。它不应从预期总数中悄然消失。
不要把新的尝试算作一项新任务。IMG-019 可能有三次尝试,但只保留一份输出。这一区分可以避免把六十次运行与六十份不同的交付物混为一谈。
示例:找出仍需要的十九个元素
这个示例场景涉及六十张相互独立的图像。在中断并检查之后,四十一个输出已验收,四个部分完成,六个失败,九个缺失。日志恰好覆盖 41 + 4 + 6 + 9 = 60 个标识符。恢复工作涉及十九个元素,前提是解决这六个失败的原因。
负责人重新整理出一份包含十九个标识符的清单,然后区分出四个部分文件、六个错误和九个无输出的任务。她先处理一个已修正的条目和一个缺失的条目,同时确认一张此前已通过验收的图片不在本次选择范围内。这一小步检查在继续处理剩余任务之前验证了这份清单。
如果随后又通过验收了十八个额外条目,而仍有一个源文件无法读取,那么总结就是五十九个通过、一个失败并有明确解释。这一批不会因为凑齐六十个就被宣布为完成。接下来的选择是找回一个正确的条目,或者推动批准将其排除,而不是把这一行藏起来。
| 检查后的状态 | 标识符数量 | 建议处理方式 |
|---|---|---|
| 已通过且找回输出 | 41 | 保留;无需重跑 |
| 部分输出 | 4 | 单独存放,随后重做 |
| 已识别的失败 | 6 | 先修正原因,再重新尝试 |
| 输出缺失 | 9 | 从该条目重新开始 |
| 需重做的总数 | 19 | 4 + 6 + 9,无重复 |
5. 在单独的存放位置生成重做成果
准备一个重做文件夹,只放入保留下来的标识符,或者使用软件中的明确选择功能。启动前再读一遍清单。如果工具有“忽略已存在的文件”选项,请弄清它的含义:部分文件的存在可能导致它被错误地忽略。经过核对的日志才是你的依据。
让新的输出生成在单独的文件夹中,并附带各自的配置和尝试记录。在替换之前的版本之前先验证它们。有些脚本可能会在未经确认的情况下覆盖已存在的文件;Python 就特别记录了 os.replace 的这一行为。仅靠命名约定本身并不能防止被替换。
如果为了修正某个缺陷而更改了设置,请让这一变化保持可见。如果两份配置产出的结果符合同样的标准,并且混用对项目来说可以接受,你可以同时保留它们。若要获得视觉上统一的一组结果,在合并文件夹之前还应将新输出与旧输出进行比较。
6. 按标识符核对总结,而不只是看数量
最后,每个预期标识符都必须有明确的处理状态。IMG-017 有两份副本并不能弥补 IMG-020 的缺失。请核对名称的唯一性、与条目的对应关系以及最终保留输出的配置。打开重做过的文件,检查当初促使重做的问题点。
完成的文件夹包含通过验收的输出、更新后的日志、各项设置,以及被排除或仍受阻的条目清单。请连同经过校验的副本一起备份这一整套内容。一行“已通过”既不能替代文件本身,也不能替代它的备份。
这种方法是从条目出发重做独立的任务。它无法按照中断时的精确指令自动继续一项模拟、一次渲染或一轮训练。这类工作需要的重做状态由软件自身管理。也不要以为留在租用环境里的文件夹在租期结束后还会被保留:请自行准备好副本。