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

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

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

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

1155閲覧

kerasでtf.Tensorの中身を表示する方法は?

ys0123

総合スコア4

Keras

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/03/26 07:29

編集2020/03/26 08:51

前提・実現したいこと

下記を参考にGrad-CAMの可視化を実装しようとしています。
(VGG16の全結合部を作り替えた自作モデルで画像2値分類)
参考ソース

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

実行するとほとんどの画像でheatmap画像(配列)が全て0になります。おそらく
grads = K.gradients(african_elephant_output, last_conv_layer.output)[0]
の部分でgradsが極小値のため0になっていると思うのでgrads(tf.Tnsorオブジェクト)の中身を表示したいのですが、方法がわかりません。

該当のソースコード

python

1import tensorflow as tf 2import keras.backend as K 3from keras.utils import multi_gpu_model 4config = tf.ConfigProto() 5config.gpu_options.per_process_gpu_memory_fraction = 1.0 # 割合 6config.gpu_options.allow_growth = True 7GPU_LIST="0" 8config.gpu_options.visible_device_list=GPU_LIST 9sess = tf.Session(config=config) 10K.set_session(sess) 11import keras

python

1african_elephant_output = model.output[:, np.argmax(preds[0])] 2last_conv_layer = model.get_layer('block5_conv3') 3grads = K.gradients(african_elephant_output, last_conv_layer.output)[0] 4pooled_grads = K.mean(grads, axis=(0, 1, 2)) 5iterate = K.function([model.input], [pooled_grads, last_conv_layer.output[0]]) 6pooled_grads_value, conv_layer_output_value = iterate([x]) 7for i in range(512): 8 conv_layer_output_value[:, :, i] *= pooled_grads_value[i] 9heatmap = np.mean(conv_layer_output_value, axis=-1)

試したこと

K.get_value(grads)

K.eval(grads)

with tf.Session() as sess:
grads_result = sess.run(grads)
print(sess.run(grads_result))
等をやってみましたが正常動作しませんでした。

jupyter notebookでkerasを使っているときにtf.Tensorの中身を表示する方法はないでしょうか?

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

 (tensorflow:1.13.1, keras:2.2.4, Jupyter Notebook)

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問