|Happy Halloween 2021!
(31 Oct 2021 at 22:46)
|This is the busiest time of year for me, and several weekends were filled up with activities. For example as mentioned in post 1197 we did a trail Ragnar race in New Jersey at the beginning of the month. I have done a few Ragnar-type races before (e.g. post 1162 or 1174), but only the kind where the team drives the course in a van and it covers several hundred real miles. With the trail style, you have a camp site where you stay the whole time, and all the running starts and ends near there, with team members all doing the same three routes. Since we had a last-minute dropout I ended up doing one of the loops twice in quick succession, even. The distance was mild but the terrain in this park (Wawayanda) was pretty bad, with tree roots and loose boulders everywhere. I got sick of hearing the word "technical." It was especially ankle-sprainy in the dark (since it runs continuously, everybody has at least one middle-of-the-night run with a headlamp) but I was somehow unscathed. I missed the component of actually covering a lot of ground, but it was nice to not be cramped in a smelly car so much. My 4th leg was noticeably easier than usual, perhaps because I was able to walk around and sleep reasonably to recover. We were helped by perfect weather and it was low on COVID, being pretty much entirely outdoors.|
I did find a little time for projects. I'm still hacking on this custom ML package with some audio applications in mind, although I'm letting myself get distracted by some simple toy problems (e.g. word embeddings) since with those it's easier to understand whether it's working. One of the main things I did recently was to make it possible for layers to mix various configurations (e.g. a dense component and two convolutional components with different window sizes), which is basically straightforward but required me to gut the whole thing and deal with a lot of fiddly bits. (When I'm programming for fun I really do like problems where performance matters, and this is one of them!) Since I was having some disappointing results on these toy problems I tried adding some known techniques (e.g. adaptive per-feature learning rates), which helped. It helps even more to find bugs: Several times it was "kind of working but disappointing," but when I investigated there was actually some serious problem. (Example bug: I was zeroing only the first quarter of a vector because I forgot to multiply by sizeof (float). But it was still able to learn effectively with 3/4 of its brain damaged. Other bug: I separated a kernel into two passes, but then forgot to call the second pass. It was still able to learn something because the gradients were only wrong half the time, and only on earlier layers.) Fixing those bugs is even more satisfying than performance fiddling. Makes you kinda want to add bugs on purpose like little puzzles for yourself. But, nothing of interest to share from this endeavor yet; I'm mostly just staring at homemade visualizations like this:
This actually ends well, believe it or not
Video gaming: I finished Deathloop, which I definitely enjoyed, although it had several flaws and doesn't quite live up to its premise. Certainly it was no Outer Wilds! I also played through Axiom Verge 2, which was okay but not as good as the first, and had some serious problems (pretty much all the "boss" fights you could just brute force, at least if you had been collecting the fairly easy "secrets" as you played). It was a reasonable appetizer for Metroid: Dread, which I am playing now. The Alien: Isolation aspect is a good fit for this aging genre, I think.
Have a spoopy Halloween!