{"library":"prodigyopt","title":"ProdigyOpt Optimizer","description":"ProdigyOpt is an Adam-like optimizer for neural networks, designed for high performance and memory efficiency. It features adaptive learning rate estimation and implements decoupled weight decay. The current version is 1.1.2, and releases typically focus on minor bug fixes and performance enhancements.","language":"python","status":"active","last_verified":"Thu Apr 16","install":{"commands":["pip install prodigyopt"],"cli":null},"imports":["from prodigyopt import Prodigy"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import torch\nimport torch.nn as nn\nfrom prodigyopt import Prodigy\n\n# 1. Define a simple model\nmodel = nn.Linear(10, 2)\n\n# 2. Initialize the optimizer with model parameters\n#    decouple_wd=True is default, but explicitly shown for clarity\noptimizer = Prodigy(model.parameters(), lr=1e-3, decouple_wd=True)\n\n# 3. Define a loss function\nloss_fn = nn.MSELoss()\n\n# 4. Prepare dummy data\ninputs = torch.randn(5, 10)\ntargets = torch.randn(5, 2)\n\n# 5. Perform a training step\noptimizer.zero_grad() # Clear gradients\noutputs = model(inputs) # Forward pass\nloss = loss_fn(outputs, targets) # Compute loss\nloss.backward() # Backward pass to compute gradients\noptimizer.step() # Update model parameters\n\nprint(f\"Loss after one step: {loss.item():.4f}\")","lang":"python","description":"This quickstart demonstrates how to initialize the Prodigy optimizer with a PyTorch model and perform a single optimization step. It includes model definition, loss calculation, and the standard optimizer workflow.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}