У меня есть последовательность многополосных изображений, скажем, каждый образец имеет тензор размера (50, 6, 30, 30), где 50 - это количество кадров изображения в последовательности, 6 - это количество полос на пиксель, и 30x30 - пространственное измерение изображения. Основная карта истинности имеет размер 30x30, но она закодирована в горячем виде (для использования кроссцентропической потери) o 7 классов, поэтому это тензор размера (1, 7, 30, 30). Я хочу использовать комбинацию сверточный и LSTM (или использовать интегрированный слой ConvLSTM2D) для моей задачи классификации, но есть следующие проблемы:
1- Не каждая точка имеет допустимую метку на выходной карте (т. Е. Некоторые горячие векторы имеют нулевые значения),
2- Не каждый пиксель имеет правильное значение в каждой отметке времени. Таким образом, в каждой данной отметке времени некоторые пиксели могут иметь нулевое значение (означает недействительное) для всех значений их полос.
Я прочитал много вопросов и ответов о том, как решить эту проблему, и я думаю, что должен использовать опцию sample_weights, чтобы замаскировать недопустимые точки и классы, но я действительно не уверен, как это сделать. Sample_weights следует применять к каждому пикселю и каждой отметке времени независимо. Я думаю, что справлюсь, если у меня не будет свертки (2D-подход). Но не понимаю, как это работает, когда свертка на месте, потому что некоторые значения пикселей в окне свертки действительны, а некоторые недопустимы. ), что будет с цепочкой прямого и обратного распространения и расчета потерь? Я думаю, что это будет разрушено!
Нужны комментарии и помощь.