About Dynamic Graph Computing

Hi all, recently my collegues ask if dl4j supports dynamic graph. I’ve no good answer to this question so I search some infos about TF eager mode and try to make a comparison. SameDiff can help to automatically calculate gradients, and Java 9 ( and above ) can help to program in REPL mode with JShell. In JShell, I can define the graph and compute two SDVariables’ product result by calling .eval() function. Also if I want to see the gradients , I can execute the back prop operation and get the results. The only difference I found is that TF eager and Pytorch can calculate the product of two ndarrays directly, while in dl4j I have to call .eval() function to get the result since this function execute forward propagation to calculate the result. In another word, SameDiff supports symbolic/static graph in essence rather than dynamic mode. But we can use some tools like JShell to implement dynamic graph computing to some extent.
I’m not sure if my thoughts here are corrent, so I seek suggestion in this community and I’ll be grateful if you could give some response.