721
submitted 7 months ago by Kajika@lemmy.ml to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] Kajika@lemmy.ml 85 points 7 months ago

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.

[-] flying_sheep@lemmy.ml 16 points 7 months ago

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

[-] Kajika@lemmy.ml 31 points 7 months ago

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.

[-] fkn@lemmy.world 12 points 7 months ago

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

[-] TheFadingOne@feddit.de 5 points 7 months ago* (last edited 7 months ago)

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

[-] flying_sheep@lemmy.ml 2 points 7 months ago

Oof. C++ really is a harsh mistress.

[-] nickwitha_k@lemmy.sdf.org 1 points 7 months ago

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

load more comments (2 replies)
load more comments (3 replies)
this post was submitted on 08 Feb 2024
721 points (99.3% liked)

Programmer Humor

32124 readers
1299 users here now

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

Rules:

founded 5 years ago
MODERATORS