all 21 comments

sorted by: hot top controversial new old
[–] [S] 80 points 2 years ago (2 children)

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.

  • source
  • hideshow 4 child comments
  • [–] 13 points 2 years ago (2 children)

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

  • source
  • parent
  • hideshow 4 child comments
  • [–] [S] 29 points 2 years ago (4 children)

    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.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 32 points 2 years ago

    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

  • source
  • [–] 8 points 2 years ago

    Fucking over-dramatic divisions by 0, sigh.

  • source
  • [–] 7 points 2 years ago* (last edited 2 years ago)

    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

  • source
  • [–] 7 points 2 years ago

    Thanks. This is great

  • source
  • [–] 7 points 2 years ago* (last edited 2 years ago)

    Also applies to nulls in SQL queries.

    It's not fun tracing where nulls are coming from when dealing with a 1500 line data warehouse pipeline query that aggregates 20 different tables.

  • source
  • [–] 6 points 2 years ago*

    "Bounds checking, mobof--ker! Do you speak it?"

  • source
  • [–] 3 points 2 years ago

    Consider IEEE754 arithmetic as monadic, simple!

  • source
  • [–] 3 points 2 years ago

    NaN is such a fun floating point virus. Some really wonky gameplay after we hit NaN in a few spots.

  • source
  • [–] 3 points 2 years ago

    As I was coding in C++ my own Engine with OpenGL. I forgot something to do. Maybe forgot to assign a pointer or forgot to pass a variable. At the end I had copied a NaN value to a vertieces of my Model as the Model should be a wrapper for Data I wanted to read and visualize.

    Printing the entire Model into the terminal confused me why everything is NaN suddenly when it started nicely.

  • source
  • [–] 3 points 2 years ago

    Nanananana! Batman!

  • source
  • [–] 1 point 2 years ago

    This gave me some real Agent Smith vibes

  • source