Scorch: PyTorch-like framework in Scala. You might find it interesting:
I leveraged the power of Scala to train a network in an asynchronous way, that is each layer performs its calculations independently from the other layers. You can find the documentation and code here:
Curious to advantage or even meaning of training asynchronously. Isn’t every layer dependent on the previous?
Async in the sense that the forward pass of the next batch does not have to wait for the backward pass of the current batch.
Also, multiple data providers can push data simultaneously through the network. So, validation, training, and ‘prediction’ all can run at the same time, similar to online deep learning.
Very nice implementation !