重要提示
您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新的库 NeMo Run。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
常用配置文件#
本节介绍 NeMo 配置文件设置,该设置特定于 MM NeRF 集合中的模型。有关如何设置和运行实验(所有 NeMo 模型通用,例如实验管理器和 PyTorch Lightning 训练器参数)的常规信息,请参阅核心文档部分。
NeMo 多模态 NeRF 配置文件的模型部分通常需要有关数据集、背景和/或前景 NeRF 网络、渲染器和正在使用的指导模型的信息。本页的章节更详细地介绍了这些内容。
所有 NeMo 多模态 NeRF 脚本的示例配置文件都可以在示例的 config 目录中找到 {NEMO_ROOT/examples/multimodal/generative/nerf/conf}
。
训练器配置#
训练器配置指定 Pytorch Lightning Trainer 对象的参数。
trainer:
devices: 1 # Number of GPUs for distributed, or the list of the GPUs to use e.g. [0, 1]
num_nodes: 1 # Number of nodes for distributed training
precision: 16 # Use 16 to enable or 32 for FP32 precision
max_steps: 10000 # Number of training steps to perform
accelerator: gpu # accelerator to use, only "gpu" is officially supported
enable_checkpointing: False # Provided by exp_manager
logger: False # Provided by exp_manager
log_every_n_steps: 1 # Interval of logging
val_check_interval: 100 # Interval of validation
accumulate_grad_batches: 1 # Accumulates gradients over k batches before stepping the optimizer.
benchmark: False # Enable the inbuilt cudnn auto-tuner to find the best algorithm to use for your hardware.
enable_model_summary: True # Enable or disable the model summarization
有关所有可能的参数,请参阅 Pytorch Lightning Trainer API 部分
实验管理器配置#
NeMo 实验管理器提供了一种配置日志记录、保存、恢复选项等的便捷方法。
exp_manager:
name: ${name} # The name of the experiment.
exp_dir: /results # Directory of the experiment, if None, defaults to "./nemo_experiments"
create_tensorboard_logger: False # Whether you want exp_manger to create a TensorBoard logger
create_wandb_logger: False # Whether you want exp_manger to create a Wandb logger
wandb_logger_kwargs: # Wandb logger arguments
project: dreamfusion
group: nemo-df
name: ${name}
resume: True
create_checkpoint_callback: True # Whether you want Experiment manager to create a model checkpoint callback
checkpoint_callback_params: # Model checkpoint callback arguments
every_n_epochs: 0
every_n_train_steps:
monitor: loss
filename: '${name}-{step}'
save_top_k: -1
always_save_nemo: False
resume_if_exists: True # Whether this experiment is resuming from a previous run
resume_ignore_no_checkpoint: True # Experiment manager errors out if resume_if_exists is True and no checkpoint could be found. This behavior can be disabled, in which case exp_manager will print a message and continue without restoring, by setting resume_ignore_no_checkpoint to True
模型配置#
数据集配置#
训练、验证和测试参数使用模型配置文件中的 data
部分指定。根据任务的不同,可能有参数指定数据集的增强、图像分辨率、相机参数等等。
可以在配置文件中设置实验中使用的 Dataset 类接受的任何初始化参数。有关数据集及其各自参数的列表,请参阅 API 的 数据集部分。
NeRF 数据集配置示例应如下所示
model:
data:
train_batch_size: 1
train_shuffle: false
train_dataset:
_target_: a pytorch Dataset or IterableDataset class
val_batch_size: 1
val_shuffle: false
val_dataset:
_target_: a pytorch Dataset or IterableDataset class
test_batch_size: 1
test_shuffle: false
test_dataset:
_target_: a pytorch Dataset or IterableDataset class
模型架构配置#
每个配置文件都应描述用于实验的模型pipeline和架构。
以下是 nerf pipeline 可能使用的一系列模块
模块 |
描述 |
---|---|
|
指导模型 |
|
用于前景密度和颜色的主网络 |
|
用于背景颜色的补充层 |
|
用于光照和阴影效果的材质网络 |
|
渲染层 |
有关模型特定配置,请参阅 DreamFusion。
优化器配置#
optim:
name: adan
lr: 5e-3
eps: 1e-8
weight_decay: 2e-5
max_grad_norm: 5.0
foreach: False
默认情况下,我们使用 adan
作为优化器,有关所有支持的优化器,请参阅 NeMo 用户指南。