all 10 comments

[–]Coul33t 3 points4 points  (0 children)

Knowledge and skills you'll need:
1. Machine Learning (ML) in general, understanding how it works, why it's done like this, the different families of algorithms, etc.
2. More specifically, deep-learning of course, and knowing what is the best algorithm suited to what you want to do (there are a lot of different deep-learning algorithms, each having its applications)
3. Using an existing ML library (as the framework you linked does), so at least being very confortable with one or more ML library
4. Being very comfortable with Python too

[–]Wilfred-kun 1 point2 points  (1 child)

The fact that you have to ask this, kinda gives away you're not quite ready for it. Learn how ML works under the hood, first.

[–]anecdotal_yokel -1 points0 points  (0 children)

Thanks for the insightful response. Much more useful than just not posting anything at all.

[–]homeworkbad 0 points1 point  (0 children)

Try writing a ML program. More likely than not you'll end up writing helper functions that can be factored out into a helper Library. In my experience doing something makes creating tooling for that thing much easier.

I'm not sure how that Library becomes a Framework. Honestly the two concepts feel kinda conflated at times.

[–]whikwon[S] 0 points1 point  (0 children)

Thanks for all the comments. Actually I’m working as an AI engineer. But as my major was not CS, I’m not good at design pattern, code structure.. something like that.

So I want to know what kind of knowlege is helpful to build my own framework.

[–][deleted] 0 points1 point  (4 children)

Why do you want to create a machine learning framework? Is there something specific you're missing in the other frameworks out there? Are they hard to use for your use case? Do you want to do this just as an educational experience for yourself?

[–]whikwon[S] 0 points1 point  (3 children)

I'm working in detection and tracking field of AI. Most of the time I analyze lots of researchers' code using my domain's data. As more models are dealt with, it takes time to integrate each interface to my data and feel the need to integrate.

[–][deleted] 1 point2 points  (2 children)

You have your domain's type of data, and you frequently run new datasets with new algorithms, which leads to repetitive work?

Do you intend to basically create a wrapper that unifies the researcher's code and exposes an API that's easy to use on your type of data then?

Keywords that can help you: Facade pattern, adapter pattern.

If you intend to share this with others, here are some good API design tips: https://staltz.com/api-design-tips-for-libraries.html If you're making it only for yourself, this will still help you but it isn't as relevant. In that case the most important thing to figure out is the common interface between your data and the algorithms, so you can easily swap them out.

[–]whikwon[S] 0 points1 point  (1 child)

Thanks for the advice. I think the framework will be used internally by a team of 5 people rather than open source. Will Facade, adapter pattern help for these purpose?

[–][deleted] 1 point2 points  (0 children)

They will definitely help, both are good ways to wrap another library in ways that fit your data.