Machine and Deep Learning with OCaml Natively(ocaml.xyz)
ocaml.xyz
Machine and Deep Learning with OCaml Natively
https://ocaml.xyz/chapter/neural.html
14 comments
You can also do it with F# (which is derived from OCaml): https://notebooks.azure.com/lost/projects/gradient-samples/h...
Though the binding is not fully typed.
Though the binding is not fully typed.
This project is also pretty interesting (also F#) : https://github.com/fsprojects/fsharp-ai-tools/blob/master/RE...
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 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 don’t think that’s true once you’re comfortable with the language.
I really like this but I wish they included some performance numbers. How does training and inference speed compare to TensorFlow or PyTorch?
Is OCaml typically used in production at a lot of places (other than Jane Street)?
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.
I'm guessing at least the sponsors of the OCaml software foundation: https://ocaml-sf.org/sponsors/
Plus Facebook with their Flow[1], Infer[2][3], Airbus with their BinCAT[4], and Frama-C[5].
[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/
[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/
I know that Ahrefs and OneGraph use it for production.
Enrolled in an OCaml course once. Dropped that like a sack of potatoes.
Maybe Reason is more of your liking?
- 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