Sobre MíQué hagoProyectosLabContacto

Entrenamiento

param-lens

Cuenta los parámetros de un modelo PyTorch desde el editor, sin ejecutar código.

MIT license

Instalación

Todavía no hay listing en el Marketplace; se instala el .vsix empaquetado de un release:

code --install-extension param-lens-0.1.0.vsix

Qué hace

Se apunta a una selección o a un fichero entero: busca asignaciones que llaman a una capa nn.* reconocida —Linear, Conv2d, Embedding, LayerNorm, MultiheadAttention, LSTM, GRU— o a otra clase definida en el mismo fichero, calcula el número de parámetros a partir de los argumentos de cada llamada y muestra un desglose agrupado por clase. Es un lector heurístico, mitad regex y mitad AST ligero, no un intérprete de Python: nunca importa ni ejecuta el fichero, y cuando un argumento no se puede resolver a un número literal la línea queda listada como no resuelta en vez de adivinarse.

En acción

Param Lens: Count parameters in selection/file  (test/fixtures/nanogpt.py)
Total: 59,328 parameters

CausalSelfAttention (nn.Module) [used by: Block] — 4,224 params — line 19
  c_attn     nn.Linear     32x96 + 96 (bias)                 =  3,168
  c_proj     nn.Linear     32x32 + 32 (bias)                 =  1,056

GPT (nn.Module) [root] — 59,328 params — line 53
  wte        nn.Embedding  100x32                            =  3,200
  wpe        nn.Embedding  64x32                             =  2,048
  h          Block         Block() = 12,704 params/instance  = 50,816  x4
  ln_f       nn.LayerNorm  32 (weight) + 32 (bias)            =     64
  lm_head    nn.Linear     32x100 (bias=False)                =  3,200

Características

  • Reconoce nn.Linear, Conv2d, Embedding, LayerNorm, MultiheadAttention, LSTM y GRU.
  • Sigue ModuleList([...]) y bucles for con append() para multiplicar capas repetidas.
  • Resuelve identificadores contra los valores literales del fichero, incluso config.n_embd.
  • Un CodeLens opcional muestra ~N params sobre cada class X(nn.Module).
Ver el código en GitHub

Otras herramientas

hola@jmwebsoluciones.com