python - 如何将 1D numpy 数组从 keras 层输出更改为图像(3D numpy 数组)

标签 python numpy neural-network keras conv-neural-network

我有 keras 层的输出或特征图,但如何将其转换为我可以显示的图像(3D numpy 数组)。

model = VGG16(weights='imagenet', include_top=True)
layer_outputs = [layer.output for layer in model.layers[1:]]
print layer_outputs
viz_model = Model(input=model.input,
                  output=layer_outputs)
features = viz_model.predict(x)

output = features[0] #has shape (1,224,224,64)

非常感谢任何意见或建议。谢谢。

最佳答案

您可以在遍历每个特征图时将每个特征图添加为子图:

import numpy as np
import matplotlib.pyplot as plt
from pylab import cm

m = np.random.rand(1,224,224,64)

fig = plt.figure()
fig.suptitle("Feature Maps")

for j in range(m.shape[3]):
    ax = fig.add_subplot(8, 8, j+1)
    ax.matshow(m[0,:,:,j], cmap=cm.gray)
    plt.xticks(np.array([]))
    plt.yticks(np.array([]))

plt.show()

这会给你一些看起来像这样的东西(在我的例子中只是噪音):

enter image description here

关于python - 如何将 1D numpy 数组从 keras 层输出更改为图像(3D numpy 数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41969081/

相关文章:

python - Visual C++ Redistributable 2015 已删除且无法重新安装

python - 将 tkinter 图像嵌入到顶层

python - 如何创建一个 numpy 数组,其元素是其他 numpy 数组对象?

python - 如何使用 Python 脚本与打开的 Rhino3D 应用程序交互

python - Docker - "image operating system "linux“无法在此平台上使用”,同时尝试拉动飞溅。来自scrapinghub/splash

python - 各种numpy随机函数之间的区别

python - 加速 Numpy Meshgrid 命令

python - 从顺序 Keras 模型中保存特定层

neural-network - TensorFlow 中的连体神经网络

haskell - Haskell 中的神经网络 - 建议