我使用暹罗网络的人脸数据集.在此数据集中,我们有1000个唯一的标签(标签是文件夹的名称),并且在每个文件夹中,我们有20个图像此数据集中的所有图像都是2000.此错误是由于以下行:
idxB = np.random.choice(idx[label])
所以我想做正面和负面的图像,但当我这样做的时候,我得到了:
IndexError:列表索引超出范围错误.
代码如下所示:
pair_images = []
pair_labels = []
new_labels = []
for k in labels:
new_labels.append(int(k))
numClasses = len(np.unique(new_labels))
new_labels = np.array(new_labels)
idx = [np.where(new_labels == i)[0] for i in range(0,numClasses)]
print (len(idx))
for i,idxA in enumerate (range(len(images))):
# print(i)
# Make Posetive Images
currentImage = images[idxA]
label = new_labels[idxA]
idxB = np.random.choice(idx[label])
print (idxB)
# posImage = images[idxB]
输出:
0
1
2
3
4
....
....
....
....
11713
11718
11709
11700
11700
11710
11717
11717
11707
Traceback (most recent call last):
File "/Users/admin/Documents/Ostad/Ostad Ghasemi/Courses/Advabced Tensorflow/Home Works/Week-4/E-1-Face Verification/Utilities.py", line 73, in <module>
make_pairs(all_image, all_label)
File "/Users/admin/Documents/Ostad/Ostad Ghasemi/Courses/Advabced Tensorflow/Home Works/Week-4/E-1-Face Verification/Utilities.py", line 37, in make_pairs
idxB = np.random.choice(idx[label])
IndexError: list index out of range
我可以知道如何修复这个错误吗?