Python - ValueError: слишком много значений для распаковки (ожидается 2) 2D-массив - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь вывести карту объектов из весов, выведенных моим 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         
_________________________________________________________________

Буду признателен за любую помощь в том, как я могу показать карты возможностей!

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...