VGG16をベースに転移学習した画像認識モデルの推論結果をtf.explainで可視化したいのですが、以下のエラーを解消できません。
知見のある方、教えていただけると嬉しいです。
実行環境はgoogle-colabで
tensorflowのバージョンは2.5.0です。
python3
1from tensorflow.keras import applications 2from tf_explain.core.grad_cam import GradCAM 3from tensorflow.keras.models import load_model 4model = load_model('./Best.h5') 5# Instantiation of the explainer 6explainer = GradCAM() 7photos_dir = "./test/画像.jpg" 8image = cv2.imread(photos_dir) 9image = cv2.resize(image, (256, 256)) 10data = np.array(image) 11X_test = [] 12Y_test = [] 13X_test.append(data) 14Y_test.append(index) 15X_test = np.array(X_test) 16Y_test = np.array(Y_test) 17X_test = applications.vgg16.preprocess_input(X_test) 18Y_test = np_utils.to_categorical(Y_test, num_classes) 19result = model.predict([X_test])[0] 20predicted = result.argmax() 21percentage = (str(result[predicted] * 100) + str("%")) 22data = (X_test, None) 23grid = explainer.explain(data, model_weight, Y_test.argmax(),model_weight.layers[2].layers[-2].name)) 24cv2_imshow(image) 25cv2_imshow(grid) 26# 推定結果と確率を表示 27print("判定結果:", classes[predicted]) 28#print("---------------------------------------------------") 29print("確率:", percentage)
エラー内容は以下です
python/usr/local/lib/python3.7/dist
1 2522 if layer.name == name: 2 2523 return layer 3-> 2524 raise ValueError('No such layer: ' + name + '.') 4 2525 raise ValueError('Provide either a layer name or layer index.') 5 2526 6 7ValueError: No such layer: block5_conv3. 8
こちらのQiita記事を参考にしました。
全22行のコードでGradCAM。tf_explainは、使い易いかも、お薦め!
よろしくお願いいたします。
あなたの回答
tips
プレビュー