У меня есть 1D-изображение с 1x2048 пикселей в качестве входных данных и 32 класса, для которых я определил слой из 32 фильтров с таким же размером изображения (1x2048), которые регуляризованы L1.
MyПримеры изображений кодируются в горячем виде.Тем не менее, моя цель состоит в том, чтобы получить вывод с горячим кодированием, когда я суммирую некоторые из этих изображений вместе и передаю их в обученную модель.
Обучение проходит хорошо, и он может классифицировать каждый класс отдельно, но если я суммирую два изображения и передам его в модель, он выдает только закодированный вектор с одной горячей точкой (хотя я ожидаю закодированный вектор с двумя горячей точкой),Если я посмотрю на ядра после тренировки, они имеют смысл, так как большинство весов равны нулю, кроме тех, которые определяют мой класс.
Я не понимаю, почему я получаю вывод с одним горячим вектором, а не мульти-hot вектор.
Причина, по которой я еще не суммирую изображения и не использую их для обучения модели, заключается в том, что возможное создание возможной комбинации изображений превышает мощность моей памяти.
Образ сети, который я имею в виду
input_shape=(1,2048,1)
model = Sequential()
model.add(Conv2D(32, kernel_size=(1, 2048), strides=(1, 1),
activation='sigmoid',
input_shape=input_shape,
kernel_regularizer=keras.regularizers.l1(0.01),
kernel_constraint=keras.constraints.non_neg() ))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=optimizer,metrics=['accuracy'])