Как я могу объединить входные данные смешанного типа в многоуровневую сеть с помощью deeplearning4j?

У меня есть набор данных, в котором некоторые функции являются числовыми, некоторые — категориальными, а некоторые — строковыми (например, описание). Чтобы привести пример, скажем, у меня есть три функции:

| Number | Type | Comment                               |
---------------------------------------------------------
| 1.23   | 1    | Some comment, up to 10000 characters  |
| 2.34   | 2    | Different comment many words          |
... 

Могу ли я использовать их все в качестве входных данных для многослойной сети в dl4j, где числовые и категориальные будут обычными входными функциями, но функция строкового комментария будет сначала обрабатываться как ряд слов простым RNN (например, Embedding -> LSTM) ? Другими словами, архитектура должна выглядеть примерно так:

"Number"  "Type"  "Comment"
  |         |         |
  |         |      Embedding
  |         |         |
  |         |       LSTM
  |         |         |
 Main Multi-Layer Network
          | 
        Dense
          |
         ...
          |
       Output

Я думаю, что в Керасе этого можно добиться с помощью слоя Concatenate. Есть ли что-то подобное в DL4J?


person Gena L    schedule 08.11.2018    source источник


Ответы (1)


Dl4j имеет 99% покрытие импорта keras. У нас также есть объединенные слои. Взгляните на различные вершины. Все, что вы можете сделать в keras, должно быть сделано в dl4j, за исключением очень специфических случаев. Подробнее здесь: https://deeplearning4j.org/docs/latest/deeplearning4j-nn-computationgraph Вам нужен MergeVertex.

person Adam Gibson    schedule 08.11.2018
comment
Да, MergeVertex и ComputationalGraph (не MultiLayerNetwork), похоже, подходят. - person Gena L; 09.11.2018