85 points

Took me 2 hours to find out why the final output of a neural network was a bunch of NaN. This is always very annoying but I can’t really complain, it make sense. Just sucks.

permalink
report
reply
44 points

I hope it was garlic NaN at least.

permalink
report
parent
reply
16 points

I guess you can always just add an assert not data.isna().any() in strategic locations

permalink
report
parent
reply
31 points

That could be a nice way. Sadly it was in a C++ code base (using tensorflow). Therefore no such nice things (would be slow too). I skill-issued myself thinking a struct would be 0 -initialized but MyStruct input; would not while MyStruct input {}; will (that was the fix). Long story.

permalink
report
parent
reply
12 points

I too have forgotten to memset my structs in c++ tensorflow after prototyping in python.

permalink
report
parent
reply
5 points
*

If you use the GNU libc the feenableexcept function, which you can use to enable certain floating point exceptions, could be useful to catch unexpected/unwanted NaNs

permalink
report
parent
reply
2 points

Oof. C++ really is a harsh mistress.

permalink
report
parent
reply
1 point

Oof. This makes me appreciate the abstractions in Go. It’s a small thing but initializing structs with zero values by default is nice.

permalink
report
parent
reply
3 points
*

If (var.nan){var = 0} my beloved.

permalink
report
parent
reply
2 points

It also depends on the context

permalink
report
parent
reply
32 points

this is just like in regular math too. not being a number is just so fun that nobody wants to go back to being a number once they get a taste of it

permalink
report
reply
8 points

Fucking over-dramatic divisions by 0, sigh.

permalink
report
reply
7 points
*

The funniest thing about NaNs is that they’re actually coded so you can see what caused it if you look at the binary. Only problem is; due to the nature of NaNs, that code is almost always going to resolve to “tried to perform arithmetic on a NaN”

There are also coded NaNs which are defined and sometimes useful, such as +/-INF, MAX, MIN (epsilon), and Imaginary

permalink
report
reply
7 points

Thanks. This is great

permalink
report
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 5.1K

    Monthly active users

  • 1.5K

    Posts

  • 33K

    Comments