As someone who also wrote my own deep learning library from scratch in a less-known language (Nim: https://github.com/mratsim/Arraymancer), I must say this looks very nice.
I especially like the syntax for declaring neural networks.
One thing I'm unclear of is the slicing. get_fancy seems quite complex compared to Numpy and it seems to return a copy instead of allowing in-place modification of a slice?
Machine learning needs a lot of data exploration, and data reflection. Problem with languages like OCaml is that, they are a bottleneck in that exploration where you have to think more about the language rather than the question you are trying to ask the data.
I work at Bloomberg in derivatives. C++ is our backbone but there is definitely a lot of OCaml in production. To tell it all we have BLAN, an OCaml-ish language that you (as our customer) can use to structure (exotic) derivative contracts and get them priced in DLIB.
- Deep Learning with OCaml[1] blog post from Jane Street
- Reinforcement Learning with OCaml[2] blog post from Jane Street
- Transfer Learning with OCaml[3] blog post from Jane Street
- An example of object-detection convolutional neural network (Mask R-CNN) with Owl library[4]
- Currently, the integration with ONNX[5] is being worked on in Owl
- Other proposed projects[6] that might need your help
[1] https://blog.janestreet.com/deep-learning-experiments-in-oca...
[2] https://blog.janestreet.com/playing-atari-games-with-ocaml-a...
[3] https://blog.janestreet.com/of-pythons-and-camels/
[4] https://github.com/owlbarn/owl_mask_rcnn
[5] https://github.com/owlbarn/owl_onnx
[6] https://ocaml.xyz/project/proposal.html