Hacker News new | ask | show | jobs
by machinelearning 2448 days ago
Why engineers like Tensorflow:

- More code to check-in (Looks more productive)

- More infrastructure, e.g. checkpoints, exporters etc. (Looks like they're doing more work)

- Fancy visualizations (Allows them to look impressive while presenting loss plots)

- Easier to reuse things others have implemented and still get credit for it (TF model zoo, research repo etc.)

Why researchers like pytorch:

- Way easier to hack together their novel idea

- Looks scrappier (which somehow makes the individual look like a better researcher instead of an ordinary programmer)

- Lots of other researchers release code in pytorch so if you're working off of their idea, you use pytorch to avoid re-producing their results.

Open to debate on these ideas, let me know if you have a counterpoint or any other reasons to add

5 comments

Why engineers like Tensorflow:

With those bullet points, looks like you didn't talk to actual engineers, but rather middle-layer management people.

Unfortunately, you're way off the mark here. Its actually more of the opposite. Perhaps we have a different set of experiences, but your assumption here is not the cause of our difference in opinions.
a micrsoft guy !
> “More code to check-in (Looks more productive)”

Not even bad engineers try to pretend like this is true.

Are you saying tensorflow doesn't have more code to check in or that even bad engineers don't pretend that checking in more code looks productive?
Not even bad engineers pretend like more code == more productive. Emphatically so.
Well, the worst engineers don't push any code so maybe it looks like they don't think writing more code is productive.

However its been my experience that the average engineer believes this. They often aim to push some amount of code (meaningful or not) every few days or so.

The best engineers I know write a lot of code overall but are more interested in ensuring they build the right thing and are ok with not pushing code for a while if they need more time.

Bad engineers have pretended like more code is more productive. Certain programmer-types will grasp at any straws to maintain their ego.
Researcher's codes are historically not very clean and re-usable. It may work fine if you want to hack together something to get data for a paper, but if you want to run a real production service, and don't want to drown in tech debt in a year; and that often means more code, as you imply above. I don't think it's unnecessarily verbose, it's just that it's more structured and scalable.
The discussion was about pytorch vs tensorflow but your argument seems to be about productionizing research code (which is framework agnostic).

Yes there is a lot of code to be written/optimizations to be done to make things production worthy. However I know a lot of tensorflow research projects that handle data batching in such a terrible way that would take weeks to re-write for production.

As for verboseness of pytorch vs tensorflow, I think either could get more verbose under different circumstances. However for simpler tasks, I think tensorflow is more verbose in general (not accounting for the new release which seems to mimic pytorch/keras a little more). For larger production tasks, its a toss-up depending on whether you need to add new components.

If by some miracle a comp sci researcher does publish something relevant to industry most people would rather wait for some other poor soul to deconstruct their work and make usable code or a library out of it.
Speak for yourself mate.

Why I use tensorflow:

- keras

- I used tensorflow yesterday

What's your experience comparing keras to pytorch?
one thing : google cloud is first !
PyTorch is simpler, easer to use, consumes less memory and allows for dynamic dynamic computational graphs (dynamic operations during the forward pass).