2

Using Keras, I am trying to reproduce a few basic results from a published paper.

In this task, there are two neural networks - A & B, that are connected in a cascade formation, i.e. the output of model A feeds the input of model B. Please see the figure below.

graphical description of cascaded neural network

Here are the specifics steps that need to be implemented:

  1. Perform one forward pass on model A with a batch size of 64, and 13155 rows.
  2. Clone the output to create a batch of 128 rows i.e. use each training sample twice. (There are auxiliary inputs which distinguish the duplicate rows, but I have omitted that info for the sake of brevity).
  3. Perform one forward pass on model B by feeding it with #2 above.
  4. Now backward the two networks, calculate a loss for each one, sum the loss & send it to the optimizer with the gradients of both networks.

As I am quite new to the world of neural networks & Keras, I'd really appreciate any help from the community to implement the above steps in Keras. In particular, I am quite confused about implementing step 2 (please see the attached figure).

As a starting point, I had found this answer to be somewhat aligned to my question, but the details of customization to my specific problem is fuzzy, for example how to implement the forward & backward logic separately etc.

KKCS
  • 21
  • 1
  • I am also interested in a solution to this question. Can someone from the community please point in a suitable direction? – Dr Krishnakumar Gopalakrishnan Dec 10 '20 at 12:21
  • Did you try to use Keras functional API? See here https://keras.io/guides/functional_api/#manipulate-complex-graph-topologies – Vladislav Gladkikh Dec 11 '20 at 11:24
  • @VladislavGladkikh : Yes I did. But I am not sure how to clone prediction made by first network and by doing that double the batch size for training the second network? – KKCS Dec 14 '20 at 07:35

0 Answers0