[英]How can I display a features of a image that was extracted by a Resnet50 model in keras
So what I am trying to do is display the features that were extracted from a Resnet50 model and saved as a .npy. 因此,我想做的是显示从Resnet50模型提取并另存为.npy的功能。
I can read it in all and fine and the array looks fine. 我完全可以阅读它,数组看起来也很好。 But I cannot figure out a way to display the results well. 但是我无法找到一种很好地显示结果的方法。 How can I show this in matplotlib
of opencv
? 如何在opencv
matplotlib
中显示此内容?
Here is what I have so far: 这是我到目前为止的内容:
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from matplotlib import cm
import os
path = "ResnetFeatures/"
def load_resnet_features(file, path):
file_path = os.path.join(path, file)
return np.load(file_path)
test_file = '1500test.npy'
test_feature = load_resnet_features(test_file, path)
print(test_feature.shape)
test_feature = np.squeeze(test_feature, axis=0)
print(test_feature.shape)
test_feature = test_feature.reshape((49, 2048))
plt.imshow(test_feature)
plt.show()
Which gives this 这给这个
(1, 7, 7, 2048)
(7, 7, 2048)
This gives this, but it is not what I want. 这样就可以了,但这不是我想要的。 I would like something that is more square in shape are the original image is (224,224,3) 我想要形状更方形的东西是原始图像(224,224,3)
Ok I figured it out thanks to Jake P help. 好的,我感谢Jake P的帮助。
So I know the image can be reshaped like (49, 2048) So I brock apart 2048 to get this (7,7) (64, 32) Then just cross multipled (7*32) (7 * 64) 所以我知道图像可以像(49,2048)那样重塑,所以我将2048分开以得到(7,7)(64,32),然后交叉乘以(7 * 32)(7 * 64)
test_feature = test_feature.reshape((448, 224))
print_shape(test_feature)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.