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

运行Integrated-Gradients代码时遇UnicodeDecodeError错误求助

解决加载Imagenet标签文件时的UnicodeDecodeError

这个错误我太熟悉了——本质就是编码不匹配导致的。你遇到的'charmap' codec can't decode byte 0x9d问题,大概率是在读取imagenet_comp_graph_label_strings.txt时,Python用了系统默认的本地编码(Windows下通常是cp1252),但这个标签文件实际是UTF-8编码的,里面包含一些超出本地编码范围的特殊字符,所以解码失败了。

具体修复步骤:

找到你代码中读取标签文件的部分(可能在load_model函数里,或者单独的加载标签逻辑),修改文件打开语句,明确指定UTF-8编码:

# 假设原来的读取代码是这样的:
# with open(LABELS_LOC) as f:
#     labels = f.readlines()

# 修改成下面这样,加上encoding='utf-8'参数:
def load_labels():
    with open(LABELS_LOC, encoding='utf-8') as f:
        # 顺便去掉每行末尾的换行符,让标签更干净
        labels = [line.strip() for line in f.readlines()]
    return labels

如果你的标签加载逻辑是内嵌在load_model里的,直接给open()函数加上encoding='utf-8'参数就行,不用单独拆函数。

额外说明:

  • 为什么要指定编码?因为在Windows系统中,Python的open()默认使用系统本地编码,而Imagenet的官方标签文件是用UTF-8保存的,两者编码不一致就会触发解码错误。
  • 如果你不确定文件编码,可以用VS Code、Notepad++等编辑器打开标签文件,查看编辑器状态栏显示的编码(比如VS Code右下角会显示当前文件编码),确认是UTF-8后再用对应编码读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:24:38