What is the best way to predict multiple outcome from a single entity?
All three models fit to single GPU

Since you have already trained the models and models are separate (do not share the features), you could construct the computational graph in a way that you have only one input (your image), but that input is pushed to three different branches of the computational graph (each branch is one of your three models). At the output of such constructed graph, you will get three outputs (one from each of three branches).

This way you will run all three models at once.

If you are using TF, it will look like this:

output_1, output_2, output_3 = sess.run(output_op, feed_dict:{input_layer: input_image})


where the output_op holds a list of outputs from three models (hence, we unpack them to three variables output_1, output_2 and output_3); input_layer is the tensor operation which takes the image and pushes it to three branches as already described.

This is only possible if your GPU memory is large enough to fit all three models into the memory.

All three models do not fit to single GPU

In this case, assuming you have access to multiple GPUs, you could modify the computational graph which combines three models to use different GPUs for each branch.

Run one after another

Also, this can be always done.



If you are using TF, this link could be useful.