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?
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.
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.
14 comments
[ 3.1 ms ] story [ 42.9 ms ] thread- 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
Though the binding is not fully typed.
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?
[1] https://github.com/facebook/flow
[2] https://fbinfer.com/
[3] https://github.com/facebook/infer
[4] https://github.com/airbus-seclab/bincat
[5] http://frama-c.com/