发布于2019-08-20 10:09 阅读(1538) 评论(0) 点赞(12) 收藏(5)
- from keras import backend as K
- from keras.models import load_model
- from matplotlib import pyplot as plt
- import cv2
- import numpy as np
- from keras_retinanet import models
- import math
-
- def main():
- #装载训练好的模型,这里是使用keras_retinanet工程编写的load_model函数,实际上也是调用了keras.models import load_model方法
- model = models.load_model('G:/model/resnet50_csv_03_2019-05-24-1345.h5',backbone_name='resnet50')
-
- #读取图片
- images=cv2.imread("transformer_97.jpg")
- cv2.imshow("Image", images)
-
-
- #扩展图像的维度
- image_arr = np.expand_dims(images, axis=0)
-
- # 第一个参数,表示模型的输入层,[model.layers[0].input]表示输入数据;
- # 第二个参数,表示模型的输出层,可根据需要提取模型相应的中间层作为输出层,如[model.layers[2].output]表示获取中间层第2层作为输出层
- # 注意,layer_n实际上是一个函数
- layer_n = K.function([model.layers[0].input], [model.layers[200].output])
-
- #通过输入端输入数据,获取模型的输出结果
- f1 = layer_n([image_arr])[0]
-
- # 根据模型输出层的特征数,遍历输出层的所有特征图像(通常输出层是多通道的,不能直接显示出来)
- row_col = math.floor(f1.shape[3] ** 0.5)
- for _ in range(row_col*row_col):
- show_img = f1[:, :, :, _]
- print(f1.shape)
- feature_shape=show_img.shape
- #再次调整特征图像的维度,调整为2维特征
- show_img.shape = [feature_shape[1], feature_shape[2]]
- #根据特征数目计算显示的格子个数
- plt.subplot(row_col, row_col, _ + 1)
- #将图像投影到plt画布上
- plt.imshow(show_img)
- #关闭坐标
- plt.axis('off')
- plt.show()
-
- if __name__ == '__main__':
- main()
作者:44344df
链接:https://www.pythonheidong.com/blog/article/48925/a3ea21d0e8a47f6bccac/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!