Numpy常见bug

错误1

pid_list = np.load(pid_fname)
ValueError: Cannot load file containing pickled data when allow_pickle=False

解决方法

pid_list = np.load(pid_fname, allow_pickle=True)# 添加 allow_pickle=True

错误2

_pickle.UnpicklingError: Failed to interpret file 'partition\\CASIA-B_73_False.npy' as a pickle

解决方法
如果是文件损坏,不是有效的NumPy格式
验证数据预处理逻辑
步骤说明:
数据划分逻辑错误可能导致生成无效的 pid_list,例如:

  • 混合了不同数据类型的元素(如整数和字符串)。
  • 子列表长度不一致(如 [[1,2,3], [4,5]])。

操作:

  1. 打印 pid_list 的结构:
# 在生成 pid_list 后添加调试代码
print("pid_list 样本:", pid_list[:2])  # 打印前两个元素
print("子元素长度:", [len(item) for item in pid_list])
  1. 标准化数据格式:
    如果数据长度不一致,需统一填充或截断:
# 示例:填充短列表为统一长度
max_len = max(len(item) for item in pid_list)
padded_list = [item + [0] * (max_len - len(item)) for item in pid_list]
pid_list = padded_list

如果数据类型不一致,转换为统一类型:

pid_list = [list(map(int, item)) for item in pid_list]

你可能感兴趣的:(Bug,numpy,bug)