deep learning with python中5.4.3节的visualizing heatmaps代码

书中的代码不能用了。找了一些资料。现将新代码放到这里。

from tensorflow.keras.applications.vgg16 import preprocess_input, decode_predictions
from tensorflow.keras.preprocessing.image import load_img

from tensorflow.keras import preprocessing
from tensorflow.keras import backend as K
from tensorflow.keras import models

import tensorflow as tf
import numpy as np

from keras.preprocessing import image

import matplotlib.pyplot as plt

from keras.models import load_model

model = VGG16(weights='imagenet')

img_path = '/Users/deep_learning_with_python/images/creative_commons_elephants.jpeg'

img = image.load_img(img_path, target_size=(224, 224))

x = image.img_to_array(img)

x = np.expand_dims(x, axis=0)

x = preprocess_input(x)

preds = model.predict(x)

print(decode_predictions(preds))

with tf.GradientTape() as tape:
  
    last_conv_layer = model.get_layer('block5_conv3')
    iterate = tf.keras.models.Model([model.inputs], [model.output, last_conv_layer.output])
    model_out, last_conv_layer = iterate(x)
    class_out = model_out[:, np.argmax(model_out[0])]
    grads = tape.gradient(class_out, last_conv_layer)
    pooled_grads = K.mean(grads, axis=(0, 1, 2))

heatmap = tf.reduce_mean(tf.multiply(pooled_grads, last_conv_layer), axis=-1)

heatmap = np.maximum(heatmap, 0)
heatmap /= np.max(heatmap)
heatmap = heatmap.reshape((14, 14))
plt.matshow(heatmap)
plt.show()

import cv2

img = cv2.imread(img_path)

heatmap = cv2.resize(heatmap, (img.shape[1], img.shape[0]))

heatmap = np.uint8(255 * heatmap)

heatmap = cv2.applyColorMap(heatmap, cv2.COLORMAP_JET)

superimposed_img = heatmap * 0.4 + img

cv2.imwrite('/Users/deep_learning_with_python/images/elephants_cam.jpeg', 
            superimposed_img)

https://stackoverflow.com/questions/58322147/how-to-generate-cnn-heatmaps-using-built-in-keras-in-tf2-0-tf-keras

https://github.com/fchollet/deep-learning-with-python-notebooks/blob/master/5.4-visualizing-what-convnets-learn.ipynb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Amira 5.4.3 是一种三维数据可视化和分析软件。该软件提供了强大的功能,可以用于处理和分析生物医学图像、地质勘探数据、油井数据、工程领域的数据等。 Amira 5.4.3 具有友好的用户界面,使得用户能够轻松地操作和控制软件。它支持多种数据格式,包括常见的DICOM、NIfTI、STL等,可以方便地读取和处理不同类型的数据。同时,Amira 5.4.3 也提供了许多强大的数据处理和分析工具,例如体绘制、曲面提取、图像分割、特征提取等。用户可以根据自己的需求选择合适的工具,对数据进行处理和分析。 Amira 5.4.3 还具有高度可定制性,用户可以根据自己的需求编写自定义的插件和脚本,并将其集成到软件。这样,用户可以根据自己的特定应用场景,进一步扩展软件的功能,以满足自己的需求。 除此之外,Amira 5.4.3 还具有优秀的数据可视化功能。用户可以根据自己的需求选择不同的可视化方式,如体渲染、表面渲染、切片显示等,将数据展现出来。同时,Amira 5.4.3 还支持动态可视化,用户可以观察数据的变化过程,进一步理解数据的特性和规律。 总之,Amira 5.4.3 是一款功能强大的三维数据可视化和分析软件,可以用于处理和分析各种类型的数据。它具有友好的用户界面、强大的数据处理和分析工具、高度可定制性以及优秀的数据可视化功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值