Submitted by Eric-Cardozo t3_127uysh in deeplearning

Hi there! I'm a physics student, and I started learning C++ programming and neural networks this year. For the sake of learning, I started a small deep learning library using the Fastor Tensor library in C++.

Here is the code: https://github.com/ericcardozo/FastorML

I've created a few pet convolutional neural networks and autoencoders, but I want to know more. I managed to make it work for training a small neural network with logsoftmax activation, but a few weeks ago, I realized that I was using a static tensor library. Libraries like Tensorflow or Torch use dynamic tensors for memory reusage, and my library won't scale. Should I continue with this, or should I stop here and start something else?

1

Comments

You must log in or register to comment.

LiquidDinosaurs69 t1_jeg8yos wrote

You should do something else. There are a lot of small C++ nn libraries. To make this one competitive with a real deep learning framework you would need to implement everything with gpu which would be painful. Also, python libraries also have the huge benefit of great data science libraries which make it much more convenient to preprocess data for training networks in python vs cpp.

Additionally there are ways to deploy python models to cpp so there’s not much benefit in training with a cpp library.

7

ab3rratic t1_jegoldu wrote

If you are still learning, you can continue. But with the knowledge that your library likely won't be competitive with what's already out there.

5

Ok_Development1633 t1_jegotgs wrote

but could it be useful for a portfolio?

3

ab3rratic t1_jegpq3d wrote

It might be. But then tensorflow/pytorch are out there, too, have documentation and have CPU-only modes.

I say this as someone who coded a number of numeric algorithms (BFGS, Nelder-Mead, etc) from scratch just to understand them, while knowing all along I wasn't competing with real OR libs. On a few occasions, my own implementations were handy for proof-of-concept work when adding 3rd party libs was a hassle.

4