Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

question #5

Open
dimiy opened this issue Dec 5, 2019 · 6 comments
Open

question #5

dimiy opened this issue Dec 5, 2019 · 6 comments

Comments

@dimiy
Copy link

dimiy commented Dec 5, 2019

sorry can you give your email address or where is it convenient for you to chat? I wanted to ask something about the framework and skills.

@jnbraun
Copy link
Owner

jnbraun commented Dec 10, 2019

Hi, you may post your questions here if you don't mind.

@dimiy
Copy link
Author

dimiy commented Dec 10, 2019

Hello. OK!
1)What do I need to know to create a deep learning framework for working with computer vision? 2)What you need to know and where to study better? Please advise the resources for learning (tensors, autograd, NN abstractions, optimizers, training loop abstraction, cnn, distributed training, etc )
3)where did you get the knowledge after which you could write a framework? (courses, books, etc.)
4)xpress your opinion on the given resources. you are welcome.
http://blog.ezyang.com/2019/05/pytorch-internals/
https://medium.com/@whitesell.ben/how-to-build-your-own-deep-learning-framework-its-easy-i-ll-prove-it-c859cb790386
https://github.com/pjreddie/uwimg
https://nbviewer.jupyter.org/github/domluna/labs/blob/master/Build%20Your%20Own%20TensorFlow.ipynb
https://www.xinjianl.com/blog/2019/01/01/pytensor-operation/
http://dlsys.cs.washington.edu/
https://course.fast.ai/videos/?lesson=8

Thanks!
Regards Erron

@jnbraun
Copy link
Owner

jnbraun commented Dec 14, 2019

Hi, sorry for the delay, it has been a busy week :)

To answer your questions in a straightforward way, I would say that it really depends on your end goal here: is it for learning the basics of deep learning applied to computer vision, for understanding how the theoretical concepts of NN are actually implemented, or for building something useful in a particular context ?

In a general way, I would not recommend to create one from scratch but instead, pick one existing framework and expand (or reduce) it according to your focus and needs.
For that, I would list the different steps as follows:

  1. Have a grasp on the theoretical concepts behind ConvNets, nowadays, learning resources are abundant but if there is one to cite, it is probably the online course CS231N from Stanford Uni.

  2. Study code from early days frameworks. Mainstream frameworks such as Tensorflow or Pytorch try to cover all possible use-cases, therefore the risk is to get overwhelmed by their large codebase.
    My personal favorites here are :

Those two libraries are very CV oriented and offer a very good trade-off between performance, features covered and codebase complexity. Other good candidates could be caffe and TinyDNN.
The resources you give in your message are good to start with, but at one point, if you want to build something competitive, I guess you will have to go at the C/C++ level anyway.

  1. Start from one of the framework you studied, and decide on what you want to focus: for example, inference speed, cross-platform capabilities, distributed training, multi-gpu, efficient data loading / augmentation pipeline, reducing the number of dependencies ...
    Then you could start to add your own bricks according to your needs. For that, you will probably need to know some stuff about specific SW engineering (for example, if you want to optimize the CPU speed, go for multi-threading and SIMD).

Good luck anyway !

@dimiy
Copy link
Author

dimiy commented Dec 14, 2019

THANKS!

@dimiy
Copy link
Author

dimiy commented Dec 14, 2019

sorry. Will there be enough skills after CS231N? and can you advise what else is worth seeing?

@dimiy
Copy link
Author

dimiy commented Feb 9, 2020

Excuse for troubling
where is it more convenient for you to talk?
I would like to ask something
please give feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants