首页 文章

我正在尝试创建一个排序算法来查找会产生特定结果的所有组合,但不断收到有关索引的错误

提问于
浏览
-1

数据是一个numpy数组(784,)

这是排序功能:

while flips < max_flip:
    flipped_accuracy = 0
    combination = []
    while flipped_accuracy <= original_accuracy:

        i_vals = []
        for i in range(flips):
            i_vals.append(i)

        index = 1
        last_added = 0
        while flips - index > 0:
            for i in i_vals:
                ind = indexes[i]
                combination.append(index_accuracies[ind])
            if np.mean(combination) > original_accuracy:
                flip_combinations.append(combination)
                last_added = 0
            else:
                last_added += 1

            if i_vals[-index] < 784:
                if last_added > 10 or (i_vals[0] == 783 and i_vals[-1] == 783):
                    flips += 1
                    break
                i_vals[-index] += 1


                if index > 1:
                    index -= 1
            else:
                index += 1

augemented_images = []
for c in flip_combinations:
    z = pixel_flipper(x0_test, c)
    augemented_images.append(z)`

而我一直得到的错误是

ind = indices [i]
IndexError:索引784超出了轴0的大小为784的范围

1 回答

  • 0

    以下代码似乎是可能的罪魁祸首:

    if i_vals[-index] < 784:
        # ...
        i_vals[-index] += 1
    

    如果 i_vals[-index]783 ,它将增加到 784 ,因此下次将该值用作索引时,将导致错误 .

相关问题