Маскировка пикселей или выполнение сверточной классификации LSTM с помощью Keras - PullRequest
0 голосов
/ 05 июля 2019

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

1- Не каждая точка имеет допустимую метку на выходной карте (т. Е. Некоторые горячие векторы имеют нулевые значения),

2- Не каждый пиксель имеет правильное значение в каждой отметке времени. Таким образом, в каждой данной отметке времени некоторые пиксели могут иметь нулевое значение (означает недействительное) для всех значений их полос.

Я прочитал много вопросов и ответов о том, как решить эту проблему, и я думаю, что должен использовать опцию sample_weights, чтобы замаскировать недопустимые точки и классы, но я действительно не уверен, как это сделать. Sample_weights следует применять к каждому пикселю и каждой отметке времени независимо. Я думаю, что справлюсь, если у меня не будет свертки (2D-подход). Но не понимаю, как это работает, когда свертка на месте, потому что некоторые значения пикселей в окне свертки действительны, а некоторые недопустимы. ), что будет с цепочкой прямого и обратного распространения и расчета потерь? Я думаю, что это будет разрушено! Нужны комментарии и помощь.

1 Ответ

0 голосов
/ 05 июля 2019

Возможное решение:

Проблема 1 - Для пикселей, у которых вообще нет класса, вы можете ввести новый класс с меткой, например, noise, это означает, что не в вашем горячем кодировании у вас есть значение для этого, и веса будут сгенерированы соответственно для тех пикселей для класса шума это косвенный способ добиться того же, что вы делаете с весом образца потому что в методе sample_weight вы говорите keras или sklearn, что это вес параметра или соотношения выборок весов.

Задача 2 - Чтобы ответить на часть 2, рассмотрите возможные варианты использования, например, для этих недопустимых значений может быть значение класса в векторе горячего кодирования или все нули будут? или вы можете предварительно обработать и добавить их к классу шума, тогда точка 2 будет автоматически обработана точкой 1.

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