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

使用PIL加载图片时im_test为None报错,无法调用fastai的learn.predict

问题原因分析
  • 变量未定义赋值:你代码里的im_test从始至终没有被赋值,直接调用im_test.verify()时,它就是None,自然触发AttributeError。实际打开的图片对象是m_test,但后续操作错误地用了未初始化的im_test。
  • PIL的verify()特性:就算修正变量名,verify()方法本身返回None,而且调用它会把图片文件的指针移到末尾,后续直接用原对象读取数据会出问题,必须重新打开图片。
解决方法

调整代码,修正变量名并正确处理verify()后的图片对象:

import io
import os
from PIL import Image

test_image = os.path.join("/content", "drive", "MyDrive", "Colab Notebooks", "prediction.png")
# 正确赋值图片对象
im_test = Image.open(test_image)
# 验证图片完整性,verify无返回值,无需赋值
im_test.verify()
# 验证后重新打开,因为verify已将文件指针移到末尾
im_test = Image.open(test_image)
# 加载图片数据
im_test.load()

# 现在可正常传入learn.predict
# result = learn.predict(im_test)
补充说明
  • Image.verify()仅用于检查图片是否损坏,没有返回值,不能用im_test = im_test.verify()这种写法,否则会让im_test变成None。
  • 调用verify()后,原图片对象无法再读取数据,必须重新调用Image.open()获取可用的图片实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:12:04