SatoshiNotMe

SatoshiNotMe t1_jacas00 wrote

I never liked wandb aggressive forced annual Subscription pricing. I’ve been a happy user of ClearML for a year now. I only use their hosted service for experiment tracking, I don’t have my own server.

No specific experience with long running jobs etc.

2

SatoshiNotMe t1_j88fz8v wrote

I agree, some of the things that make ML code inscrutable are that (a) every tensor has a shape that you have to guess, and keep track of as it goes through the various layers, plus (b) layers or operations that you have to constantly look up how they change the tensor shapes.

I’ve settled on two best practices to mitigate these:

  1. Always include the tensor dimensions in the variable name: e.g. x_b_t_e is a tensor of shape (b,t,e), a trick I learned at a Berkeley DRL workshop many years ago.
  2. Einops all the things! https://einops.rocks/

With einops you can express ops and layers in a transparent way by how the tensor dims change. And now suddenly your code is refreshingly clear.

The Einops page gives many nice examples but here’s a quick preview. Contrast these two lines:

`

y= x.view(x.shape[0], -1) # x: (batch, 256, 19, 19)

y_b_chw = rearrange(x_b_c_h_w, b c h w -> b (c h w)’)

`

Yes a little verbose but I find this helps hugely with the two issues mentioned above. YMMV :)

5

SatoshiNotMe t1_j4pp5zy wrote

This is called Online Learning, as opposed to Batch Learning. It’s a somewhat neglected topic in terms of available packages, but there is one here (it has decision trees, not RF):

https://github.com/online-ml/river

There is a nice interview with the author on the ML Podcast

https://podcasts.apple.com/us/podcast/the-machine-learning-podcast/id1626358243?i=1000577393019

8