Traceback(most\ recent\ call\ last):\n File\ "/mnt/disk1/lh/code/InternImage/classification/main.py",\ line\ 717,\ in\ <module> main(config) File\ "/mnt/disk1/lh/code/InternImage/classification/main.py",\ line\ 282,\ in\ main acc1,\ acc5,\ loss\ =\ validate(config,\ data_loader_val,\ model,\ dataset_val=\dataset_val) File\ "/home/lh/anaconda3/envs/internimage/lib/python3.9/site-packages/torch/autograd/grad_mode.py",\ line\ 27,\ in\ decorate_context return\ func(*args,\ **kwargs) File\ "/mnt/disk1/lh/code/InternImage/classification/main.py",\ line\ 602,\ in\ validate cm_df\ =\ pd.DataFrame(cm,\ index=\classes,\ columns=\classes) File\ "/home/lh/anaconda3/envs/internimage/lib/python3.9/site-packages/pandas/core/frame.py",\ line\ 758,\ in\ init mgr\ =\ ndarray_to_mgr( File\ "/home/lh/anaconda3/envs/internimage/lib/python3.9/site-packages/pandas/core/internals/construction.py",\ line\ 337,\ in\ ndarray_to_mgr _check_values_indices_shape_match(values,\ index,\ columns) File\ "/home/lh/anaconda3/envs/internimage/lib/python3.9/site-packages/pandas/core/internals/construction.py",\ line\ 408,\ in\ _check_values_indices_shape_match raise\ ValueError(f"Shape\ of\ passed\ values\ is\ {passed},\ indices\ imply\ {implied}") ValueError:\ Shape\ of\ passed\ values\ is\ (80,\ 80),\ indices\ imply\ (171,\ 171) 怎么填充空白的索引,因为部分分类类别没有测试图片内容:要解决这个问题,你可以使用reindex函数来填充空白的索引。以下是一个示例代码,演示如何使用reindex函数来解决这个问题:

import\ pandas\ as\ pd

#\ 假设cm是你的混淆矩阵
cm\ =\ [[10,\ 20,\ 30],
      [40,\ 50,\ 60],
      [70,\ 80,\ 90]]

#\ 假设classes是你的分类类别
classes\ =\ ['A',\ 'B',\ 'C']

#\ 创建一个空的DataFrame,并使用classes作为索引和列
cm_df\ =\ pd.DataFrame\(index\=\classes,\ columns\=\classes\)

#\ 使用reindex函数填充cm_df
cm_df\ =\ cm_df.reindex\(index\=\classes,\ columns\=\classes\)

#\ 将混淆矩阵的值填充到cm_df中
for\ i\ in\ range\(len\(classes\)\):
    for\ j\ in\ range\(len\(classes\)\):
        cm_df.iloc[i,\ j]\ =\ cm[i][j]

#\ 打印填充后的混淆矩阵DataFrame
print\(cm_df\)

这样,你就可以使用reindex函数来填充空白的索引,使得混淆矩阵的形状与索引相匹配。在上面的示例中,cm是混淆矩阵,classes是分类类别,cm_df是填充后的混淆矩阵DataFrame。你可以根据自己的需求修改代码来适应你的情况。

解决Python Pandas ValueError: Shape of passed values is (80, 80), indices imply (171, 171) 错误

原文地址: https://www.cveoy.top/t/topic/qmUa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录