
Machine and Deep Learning with OCaml Natively - xvilka
https://ocaml.xyz/chapter/neural.html
======
xvilka
There is also a number of other related projects:

\- 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...](https://blog.janestreet.com/deep-learning-experiments-in-ocaml/)

[2] [https://blog.janestreet.com/playing-atari-games-with-
ocaml-a...](https://blog.janestreet.com/playing-atari-games-with-ocaml-and-
deep-rl/)

[3] [https://blog.janestreet.com/of-pythons-and-
camels/](https://blog.janestreet.com/of-pythons-and-camels/)

[4]
[https://github.com/owlbarn/owl_mask_rcnn](https://github.com/owlbarn/owl_mask_rcnn)

[5] [https://github.com/owlbarn/owl_onnx](https://github.com/owlbarn/owl_onnx)

[6]
[https://ocaml.xyz/project/proposal.html](https://ocaml.xyz/project/proposal.html)

~~~
lostmsu
You can also do it with F# (which is derived from OCaml):
[https://notebooks.azure.com/lost/projects/gradient-
samples/h...](https://notebooks.azure.com/lost/projects/gradient-
samples/html/FashionMNIST.ipynb)

Though the binding is not fully typed.

~~~
Nelkins
This project is also pretty interesting (also F#) :
[https://github.com/fsprojects/fsharp-ai-
tools/blob/master/RE...](https://github.com/fsprojects/fsharp-ai-
tools/blob/master/README.md)

------
mratsim
As someone who also wrote my own deep learning library from scratch in a less-
known language (Nim:
[https://github.com/mratsim/Arraymancer](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?

------
nafizh
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.

~~~
wtetzner
I don’t think that’s true once you’re comfortable with the language.

------
smiths1999
I really like this but I wish they included some performance numbers. How does
training and inference speed compare to TensorFlow or PyTorch?

------
synaesthesisx
Is OCaml typically used in production at a lot of places (other than Jane
Street)?

~~~
fuklief
I'm guessing at least the sponsors of the OCaml software foundation:
[https://ocaml-sf.org/sponsors/](https://ocaml-sf.org/sponsors/)

~~~
xvilka
Plus Facebook with their Flow[1], Infer[2][3], Airbus with their BinCAT[4],
and Frama-C[5].

[1] [https://github.com/facebook/flow](https://github.com/facebook/flow)

[2] [https://fbinfer.com/](https://fbinfer.com/)

[3] [https://github.com/facebook/infer](https://github.com/facebook/infer)

[4] [https://github.com/airbus-seclab/bincat](https://github.com/airbus-
seclab/bincat)

[5] [http://frama-c.com/](http://frama-c.com/)

------
RocketSyntax
Enrolled in an OCaml course once. Dropped that like a sack of potatoes.

~~~
k__
Maybe Reason is more of your liking?

