报错:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
---------------------------------------4/22/2022 6:49 PM----------------------------------------
之前调了一些乱七八糟的,现在再看这个错误的时候,觉得应该是这样的:
在终端中查看sample的类型:
>>>type(sample)
<class 'numpy.ndarray'>
这个sample是矩阵,矩阵的索引只能是个数字,而不是字符串。但是代码这么写:
def __call__(self, sample):
image, label = sample['image'], sample['label']
我认为就是要sample是npz文件,这样才能像字典一样索引。也就是说,问题出在了sample上,传过来的参数应该是npz文件,而不是一个ndarray格式的矩阵。所以现在需要找是哪里传给sample的这个参数。
在主线程MainThread中可以看到,上一句代码所在的函数是通过这里调用的。img作为参数传过去了。可以看到,此时的img就已经是矩阵了。也就是说,这个img传过来的时候就是错误的,应该是npz。
问题解决:是因为
73-76行这块之前因为解决其他的报错,transform的传参用了image和label,反映到之前提到的函数,格式就不对了。