Nater5000

Nater5000 t1_j55c801 wrote

>Are TensorFlow and other ML frameworks worth learning in 2023?

They're worth learning if you need to use them. Otherwise, why bother?

There's a weird sentiment I see frequently on reddit that one progresses their programming abilities by just learning how to use a bunch of different frameworks/libraries/languages/etc. This is just not true, and what you gain from that process becomes increasingly marginal as you progress. You're better off just picking a framework and using it.

To put it another way, if I had to hire an ML dev for a TensorFlow project and I'm interviewing two candidates, one who could recite the TensorFlow docs from heart but has never used it, and another who has only used PyTorch but has worked on plenty of real-world projects, then odds are the latter candidate will easily be the choice. It's really not hard implementing something using a framework you're not familiar with when, you know, you can just read the docs as you need them.

With regards to that article, there was a post about it a few weeks ago, and the comments may be worth reading. Basically, nobody doing serious work is going to invest in some home-grown framework that helps solve some niche problem marginally better than more mature frameworks. The fact that the two leading frameworks, TensorFlow and PyTorch, are supported by Google and Facebook isn't a coincidence.

In any case, your questions aren't really clear. You're asking about learning frameworks, but you haven't really provided any context as to why you want to learn these frameworks. I think if there is no specific context, you'd be fine just sticking with PyTorch. Why fix something that isn't broken?

41

Nater5000 t1_j2y3k0e wrote

>Do you also use frameworks aside from the popular ones?

No, and this isn't just limited to deep learning. Anybody with even a small amount of engineering experience will have learned the pitfalls of trying to work with immature frameworks, libraries, concepts, etc. When you're building anything non-trivial, you're not just choosing a framework- you're investing in it. If the framework ends up being trash, or it becomes obsolete/abandoned, or you have a hard time finding resources for it, then you're risking the success of your entire project. As such, most engineers prefer the safety of maturity.

To illustrate: If I get some weird, cryptic error from PyTorch, I can usually just copy it, paste it into Google, and find a result immediately describing it and how to resolve it. Try doing that for some new, immature framework and quickly become disappointed as you realize that not only are you on your own in terms of understanding the issue and troubleshooting it, but you may even be the one responsible for fixing it. That's a tough sell for anyone who values their time.

​

>I have a feeling people don't want to learn new things because they already worked hard to learn something else.

This may be a factor, but it's relatively minor compared to what I described above. I used to be all-in on TensorFlow. Once it became clear, at least in the domain I was focused on, that PyTorch was "winning," I switched over. There was some time I had to dedicate to figuring it out, but the switch was easy since I knew PyTorch was also mature. In fact, the reason I had originally invested in TensorFlow over PyTorch was because, at the time, PyTorch wasn't very mature and it seemed risky to invest anytime into it.

​

>But I also think choosing a framework depends on people’s needs for their projects. If that project could benefit from that new framework or just use it out of curiosity, people would definitely try it out.

In a vacuum this makes sense. But, like I said, there's a cost to adopting new frameworks/libraries. If there's a new framework that does something that'd take me weeks to develop on my own, I may try it out. But if it's a critical component and that new framework isn't very mature, I won't even touch it (although I may look through it for inspiration). I don't want my project to be dependent on something that may break/become obsolete/be full of bugs/etc., even at the cost of my time and effort.

Odds are if you're making a new framework, you'd be better off contributing to an existing framework.

23

Nater5000 t1_j1zuk4x wrote

Based on your post, I think it's safe to assume you're a few years away from being able to even properly plan for such a project.

I hate to discourage you from at least trying, but the task you're aiming to accomplish likely needs at least a small team of PhD-level researchers and resources to accomplish. You may want to start way smaller to get a grip on what's out there and how things work before taking on a challenge like training an RL agent to play LoL.

6