code: def __init__(
      self,
      params,
      lr=1.0,
      rho=0.9,
      eps=1e-6,
      weight_decay=0,
      foreach: Optional[bool] = None,
      *,
      maximize: bool = False,
      differentiable: bool = False,
  ):
      if not 0.0 <= lr:
          raise ValueError(f"Invalid learning rate: {lr}")
      if not 0.0 <= rho <= 1.0:
          raise ValueError(f"Invalid rho value: {rho}")
      if not 0.0 <= eps:
          raise ValueError(f"Invalid epsilon value: {eps}")
      if not 0.0 <= weight_decay:
          raise ValueError(
              f"Invalid weight_decay value: {weight_decay}"
          )
  
      defaults = dict(
          lr=lr,
          rho=rho,
          eps=eps,
          weight_decay=weight_decay,
          maximize=maximize,
          foreach=foreach,
          differentiable=differentiable,
      )
      super().__init__(params, defaults)
  
file_path: pytorch/torch/optim/adadelta.py
imports: import torch
  from torch import Tensor
  from .optimizer import Optimizer, _use_grad_for_differentiable, _default_to_fused_or_foreach, _differentiable_doc, _foreach_doc, _maximize_doc, _view_as_real
  from typing import List, Optional
label_desc: Use image node_id 1 to create a new Adadelta object from inherited base classes: Optimizer with example: obj = Adadelta(params, lr, rho, eps, weight_decay, foreach)