Я новичок в Keras и углубленное изучение, и после прохождения нескольких учебных пособий и ответов по stackoverflow, мне все еще неясно, как манипулировать вводом при входе в сеть.
Я использую функциональный APIКерас разрабатывать сложные модели, поэтому мой первый слой всегда является входным слоем.Что-то вроде:
Input ()
LSTM ()
Dense ()
Теперь допустим, у меня есть 2 набора обучающих данныхA и B. Каждый набор данных идентичен матрице 10000 на 6000 с 200 различными значениями в нем.т.е. 10000 строк, каждая из которых представляет обучающие примеры и 6000 последовательностей временных шагов.Значения в обоих: [[3,50,1,22,7,5,3,1,5, ..], [55,32,54,21,15, ...], ....]Единственная разница между A и B состоит в том, что значения в A являются действительными числами (непрерывная переменная), а значения B являются дискретными (категориальные переменные).
У меня есть следующие 3 возможных варианта, которые я могу использовать дляПроведите различие между категориальным и непрерывным вводом данных и хотели бы спросить, какие из них будут работать, а какие лучше, чем другие.
1 - Учитывая, что A является действительным значением, а B является категоричным, преобразуйте A в .astype (float) иB в .astype (float) и подача в сеть, и сеть примет соответственно.
2 - Учитывая, что B имеет категориальные значения, преобразуйте B в настройку одного горячего вектора, то есть изменив 10000 на 6000 до 10000 на 6000на 200. Оставьте A как есть.
3- Если мы используем B, добавьте слой внедрения после ввода и сделаем сеть такой:
Input ()
Embedding ()
LSTM ()
Dense ()
Если мыиспользуйте A, тогда не добавляйте слой для встраивания.