class_docstr: NeRF solver class.
  
  Args:
      device: device for class tensors: Union[str, Device]
      dtype: type for all floating point calculations: torch.dtype
class_docstr_tok: ["NeRF","solver","class",".","Args",":","device",":","device","for","class","tensors",":","Union","[","str",",","Device","]","dtype",":","type","for","all","floating","point","calculations",":","torch.dtype"]
code: def init_training(
      self,
      cameras: PinholeCamera,
      min_depth: float,
      max_depth: float,
      ndc: bool,
      imgs: Images,
      num_img_rays: Tensor | int,
      batch_size: int,
      num_ray_points: int,
      irregular_ray_sampling: bool = True,
      log_space_encoding: bool = True,
      lr: float = 1.0e-3,
  ) -> None:
      self.setup_solver(
          cameras,
          min_depth,
          max_depth,
          ndc,
          imgs,
          num_img_rays,
          batch_size,
          num_ray_points,
          irregular_ray_sampling,
          log_space_encoding,
          lr,
      )
  
imports: from __future__ import annotations
  import logging
  from datetime import datetime
  from typing import cast
  import torch
  import torch.nn.functional
  from torch import optim
  from kornia.core import Module, Tensor, tensor
  from kornia.core.check import KORNIA_CHECK
  from kornia.geometry.camera import PinholeCamera
  from kornia.metrics import psnr
  from kornia.nerf.core import Images
  from kornia.nerf.data_utils import RayDataset, instantiate_ray_dataloader
  from kornia.nerf.nerf_model import NerfModel
  from kornia.utils import deprecated
label_desc: Use image node_id 3 for calling the NerfSolver obj's underlying member method code with example usage: obj.init_training(cameras, min_depth, max_depth, ndc, imgs, num_img_rays, batch_size, num_ray_points, irregular_ray_sampling, log_space_encoding, lr) without return types