In[164], line 64 62 pred = torch.argmax(y, dim=1) 63 # print(int(f.strip('.bmp')), int(pred)) ---> 64 answer.append((int(f.strip('.bmp')), int(pred))) 65 # 排序 66 answer = sorted(answer, key=lambda a: a[0]) ValueError: invalid literal for int() with base 10: 'test\\0_7'
时间: 2024-01-16 09:05:20 浏览: 117
y_pred_2.npy
这个错误的原因是在第 64 行使用 `int()` 函数时传入了一个非整数的字符串 `"test\\0_7"`。这可能是因为在 `f.strip('.bmp')` 中的部分文件名包含了其他字符,导致无法转换为整数。
你可以尝试使用正则表达式来提取文件名中的数字,并将其转换为整数,例如:
```python
import re
# ...
match = re.search(r'\d+', f) # 提取文件名中的数字
file_num = int(match.group()) # 将提取到的数字转换为整数
answer.append((file_num, int(pred)))
```
这段代码将使用正则表达式 `\d+` 来匹配文件名中的数字,并将其转换为整数。如果文件名中没有数字,则会抛出一个异常,你可以根据具体情况进行处理。
阅读全文