Но как это работает во время вывода? Знаете ли вы ограничения классов для новой строки во время вывода?
Если ответ «да»:
Я думаю, вам не следует использовать всю матрицу ограничений класса в качестве входных данных, а скорее вектор ограничения класса, использующий конкатенацию. Таким образом, вместо подачи row
с формой (n,)
вы подаете row_plus_class_restrictions
с формой (n+20,)
.
row_feature_0
row_feature_1
...
row_feature_n
0
1
.
.
.
1
. Таким образом, вам также не нужно аннулировать любую ошибку, модель будет узнать, что он должен выводить на основе потери классификации.
Если ответ «нет»:
Тогда ваша модель не имеет особого смысла. Данные обучения представляют собой набор (row, class_restrictions, class_it_should_be)
с размером (nb_row_features + 20 + 20)
, это правильно? Чему вы пытаетесь обучить - действительно практическому применению - какие данные находятся в ваших строках? Я не понимаю, чего бы вы хотели, если ответ отрицательный.