Если я загружу изображения CIFAR 10 в Керасе через:
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# Getting shape
x_train.shape
>>> (50000, 32, 32, 3)
Затем я могу построить каждое изображение, выполнив:
# Plot RGB image
plt.imshow(x_train[0])
# Plot only one colour-channel e.g. R
plt.imshow(x_train[0][:,:,0])
Теперь я получаю изображения MNIST через Keras, выполнив:
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# getting shape
X_train.shape
>>> (60000, 28, 28)
Однако у него нет канала глубины, который должен быть 1, поскольку это оттенки серого. Если я изменил его, используя:
X_train = X_train.reshape(X_train.shape[0],28,28,1)
Я могу заставить работать нейронную сеть, но больше не могу строить графики. Как правильно изменить его, чтобы я все еще мог строить сюжеты?
2 ответа
Если вы измените форму набора для обучения и тестирования, вам придется снова изменить форму изображений, чтобы построить их.
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)
...
plt.imshow(X_train[num].reshape(28,28))
Начиная с v3.3 imshow
matplotlib теперь переводит трехмерные массивы размера MxNx1 в MxN для отображения, так что вы можете без проблем построить свой измененный X_train
.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.