質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1673閲覧

Gradcam実装時 頻発するエラー解決法について

shujiu

総合スコア3

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/22 11:30

resnet50で転移学習したモデルを用い、gradcamで注視領域可視化を行っています。
ほとんどの画像の注視領域の可視化が可能ですが、3割程度以下のエラーメッセージ表示されたときのみほぼ元画像のまま出力されました。
他のサイト等も参考にさせていただきましたが、どうにも解決の糸口が見つかりません。
原因などわかる方教えていただけますでしょうか。

発生している問題・エラーメッセージ

2021-05-22 20:13:33.296281: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll 2021-05-22 20:13:33.498016: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll 2021-05-22 20:13:34.344031: W tensorflow/stream_executor/gpu/redzone_allocator.cc:312] Internal: Invoking GPU asm compilation is supported on Cuda non-Windows platforms only Relying on driver to perform ptx compilation. This message will be only logged once. gradcam.py:63: RuntimeWarning: invalid value encountered in true_divide cam = cam / cam.max()

該当のソースコード

python

1# coding:utf-8 2 3import pandas as pd 4import numpy as np 5import cv2 6from keras import backend as K 7from tensorflow.keras import backend as k 8from keras.preprocessing.image import array_to_img, img_to_array, load_img 9from keras.models import load_model 10import config 11from prepare_data import generate_datasets 12from train import get_model 13 14K.set_learning_phase(1) #set learning phase 15 16 17 18def Grad_Cam(input_model, x, layer_name): 19 ''' 20 Args: 21 input_model: モデルオブジェクト 22 x: 画像(array) 23 layer_name: 畳み込み層の名前 24 25 Returns: 26 jetcam: 影響の大きい箇所を色付けした画像(array) 27 28 ''' 29 30 # 前処理 31 X = np.expand_dims(x, axis=0) 32 33 X = X.astype('float32') 34 preprocessed_input = X / 255.0 35 36 37 # 予測クラスの算出 38 39 predictions = model.predict(preprocessed_input) 40 class_idx = np.argmax(predictions[0]) 41 class_output = model.output[:, class_idx] 42 43 44 # 勾配を取得 45 46 conv_output = model.get_layer(layer_name).output # layer_nameのレイヤーのアウトプット 47 grads = K.gradients(class_output, conv_output)[0] # gradients(loss, variables) で、variablesのlossに関しての勾配を返す 48 gradient_function = K.function([model.input], [conv_output, grads]) # model.inputを入力すると、conv_outputとgradsを出力する関数 49 50 output, grads_val = gradient_function([preprocessed_input]) 51 output, grads_val = output[0], grads_val[0] 52 53 # 重みを平均化して、レイヤーのアウトプットに乗じる 54 weights = np.mean(grads_val, axis=(0, 1)) 55 cam = np.dot(output, weights) 56 57 58 # 画像化してヒートマップにして合成 59 60 cam = cv2.resize(cam, (224, 224), cv2.INTER_LINEAR) # 画像サイズは200で処理したので 61 cam = np.maximum(cam, 0) 62 cam = cam / cam.max() 63 64 jetcam = cv2.applyColorMap(np.uint8(255 * cam), cv2.COLORMAP_JET) # モノクロ画像に疑似的に色をつける 65 jetcam = cv2.cvtColor(jetcam, cv2.COLOR_BGR2RGB) # 色をRGBに変換 66 jetcam = (np.float32(jetcam) + x / 2) # もとの画像に合成 67 68 return jetcam 69 70model = load_model("./saved_model/model_15.hdf5") 71model.summary() 72x = img_to_array(load_img('./dataset/test/6.jpg', target_size=(224,224))) 73array_to_img(x) 74 75image = Grad_Cam(model, x, 'res5c_branch2c') 76array_to_img(image) 77 78cv2.imwrite("./product/model15/gradcam6.jpg", image)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問