gpt4 book ai didi

python - 在 Keras ResNet 上激活 FGSM 时形状等级不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:14 25 4
gpt4 key购买 nike

我尝试使用 keras 激活带有 ResNet 50 的 FGSM,但出现错误:

ValueError: Shape must be rank 4 but is rank 5 for 'model_1/conv1_pad/Pad' (op: 'Pad') with input shapes: [2,1,224,224,3], [4,2].

我的代码是:

from keras.applications.resnet50 import ResNet50
model = ResNet50(weights='imagenet')
images = ['images/dog1.jpg', 'images/image_0001.jpg']
for image_path in images:
img = image.load_img(image_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
X.append(x)

wrap = KerasModelWrapper(model)

target = [np.zeros((1000,))]
target[0][0] = 1
target = np.repeat(target, len(X), axis=0)

fgsm_params = {
'eps': 0.05,
# 'clip_min': 0.,
# 'clip_max': 1.,
'y_target': target
}

X = np.array(X)

x_tensor = K.variable(X)
print(type(X))
print(X.shape)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
fgsm = FastGradientMethod(wrap, sess=sess)
adv = fgsm.generate(x_tensor, **fgsm_params)

系统配置 - 操作系统 -Python版本3.7 - TensorFlow 版本 1.13

最佳答案

结果我需要将 x 更改为在 0 和 1 之间 float :

for image_path in file_list:
img = image.load_img(image_path, target_size=(224, 224))
x = image.img_to_array(img)
x = x.astype('float32')
x /= 255

X.append(x)

关于python - 在 Keras ResNet 上激活 FGSM 时形状等级不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55756046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com