#python #numpy #numpy-ndarray
#python #numpy #numpy-ndarray
Вопрос:
Мой код выглядит следующим образом:
idxs = [np.where(np.argmax(y_test, axis=1) == i)[0][0]
for i in range(nb_classes)]
if targeted:
if viz_enabled:
# Initialize our array for grid visualization
adv_inputs = np.array(
[[instance] * nb_classes for instance in x_test[idxs]],
dtype=np.float32)
else:
adv_inputs = np.array(
[[instance] * nb_classes for
instance in x_test[:source_samples]], dtype=np.float32)
one_hot = np.zeros((nb_classes, nb_classes))
one_hot[np.arange(nb_classes), np.arange(nb_classes)] = 1
adv_inputs = adv_inputs.reshape(
(source_samples * nb_classes, img_rows, img_cols, nchannels))
adv_ys = np.array([one_hot] * source_samples,
dtype=np.float32).reshape((source_samples *
nb_classes, nb_classes
Я хочу изменить adv_inputs. форма x_test равна (5982, 20, 26, 1), а форма y_test равна (5982, 13)
Комментарии:
1. какая строка выдает ошибку? элементы 87880 действительно не могут быть преобразованы в (130,20,26,1), поскольку 87880 / (130 * 20) = 33,8, что не является int. Как вы получили 87880 элементов из (5982,20,26,1)?
2. Я пытаюсь реализовать состязательную CW-атаку cleverhans. Поэтому он выдает мне ошибку в следующей строке:adv_inputs = adv_inputs.reshape( (source_samples * nb_classes, img_rows, img_cols, nchannels)) Итак, насколько я понимаю, он генерирует состязательный ввод.