Я пытаюсь вывести карту объектов из весов, выведенных моим CNN.
Полный код можно найти здесь.
Когда я пытаюсь запустить приведенную ниже функцию.
import matplotlib.pyplot as plt
import matplotlib.colors as cm
def plot_filters(layer, x, y):
filters = layer.get_weights()
fig = plt.figure()
for j in range(len(filters)):
ax = fig.add_subplot(y, x, j+1)
ax.matshow(filters[j][0], cmap = cm.binary)
plt.xticks(np.array([]))
plt.yticks(np.array([]))
plt.tight_layout()
Я получаю следующий TraceBack:
Traceback (most recent call last):
File "PATH\Code\CNN.py", line 85, in <module>
plot_filters(model.layers[0], 8, 4)
File "PATH\Code\CNN.py", line 21, in plot_filters
ax.matshow(filters[j][0], cmap = plt.cm.binary)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64 \lib\site-packages\matplotlib\axes\_axes.py", line 7841, in matshow
nr, nc = Z.shape
ValueError: too many values to unpack (expected 2)
Я запустил print(filters[j][0].shape)
, который выводит (3, 1, 32)
Изображения в моем наборе данных имеют размер 20x20x1, а ниже приведен фрагмент сводной информации о моей модели.
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 9, 9, 32) 320
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 9, 9, 32) 0
_________________________________________________________________
Буду признателен за любую помощь в том, как я могу показать карты возможностей!
Большое спасибо!