I want to build a network that information can flow bidirectionally. Given an input you can map the input to some output, and given some output, you are able to map output to input using the same parameters, and train the network by minimizing some input loss. Is that possible?