Я пытаюсь передать массив 1D numpy в массив 4D numpy, но получаю сообщение об ошибке:
operands could not be broadcast together with remapped shapes [original->remapped]: (50000,) and requested shape (50000,32,32,3)
Это мой код:
from tensorflow.keras.datasets import cifar10
import numpy as np
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
mask = (y_train == 0) | (y_train == 1)
y_train = np.ma.masked_array(y_train, mask = mask)
mask = np.broadcast_to(mask.reshape(-1), x_train.shape)
x_train = np.ma.masked_array(x_train, mask = mask) # Error happens here
# Same for the test set
Моя цель — вырезать кучу классов из данных и оставить только классы 0 и 1.
Я думал, что вещание разрешено, когда размеры отсутствуют, как в моем случае. Кто-нибудь может объяснить, почему я получаю ошибку?
Я использую Python 3.7.2.
Чтобы вещание работало, вам нужно изменить форму массива так, чтобы размеры с размером 50000 выровнены. В вашем примере маска должна быть заменена по маске[:,Нет,Нет,Нет]. Таким образом (50000,1,1,1) можно транслировать на (50000,32,32,3).