`get_data_ptr` is now public .

For now, I will add the neural network functionality directly in Arraymancer.

The directory structure will probably be:

  * src/arraymancer ==> core Tensor stuff
  * src/autograd ==> automatic gradient computation (i.e. 
[Nim-rmad](https://github.com/mratsim/nim-rmad) ported to tensors)
  * src/neuralnet ==> neural net layers



This mirrors [PyTorch's 
tree](https://github.com/pytorch/pytorch/tree/master/torch)

I made this choice for the following reasons:

  * It's easier for me to keep track of one repo, refactor code, document and 
test.
  * I'm focusing on deep learning
  * It's much easier to communicate about one single package (and attracts new 
people to Nim  ).
  * Data scientists are used to have deep learning in a single package (tensor 
+ neural net interface): Tensorflow, Torch/PyTorch, Nervana Neon, MxNet ...
  * Nim's `DeadCodeElim` will ensure that unused code will not be compiled.



If the tensor part (without the NN) get even 0.1% of Numpy popularity and 
people start using it in several packages that means:

  * It's a rich man problem!
  * We get new devs and input for scientific/numerical Nim.
  * We can reconsider splitting as we will know actual expectations.
  * We can even build a "scinim" community which drives all key scientific nim 
packages.



In the mean time I think it's best if I do what is easier for me and worry 
about how to scale later.

Reply via email to