-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Whenever I run ns-train with gaussian-splatting or igs2gs I get the following error (it works fine when using nerfacto):
{NOTE] Not running eval iterations since only viewer is enabled.
Use --vis {wandb, tensorboard, viewer+wandb, viewer+tensorboard} to run with eval.
No Nerfstudio checkpoint to load, so training from scratch.
Disabled comet/tensorboard/wandb event writers
C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py:359: UserWarning: Error checking compiler version for cl:
[WinError 2] The system cannot find the file specified
warnings.warn(f'Error checking compiler version for {compiler}: {error}')
( ● ) gsplat: Setting up CUDA (This may take a few minutes the first time)INFO: Could not find files for the given pattern(s).
Printing profiling stats, from longest to shortest duration in seconds
VanillaPipeline.get_train_loss_dict: 0.6218
Trainer.train_iteration: 0.6218
Traceback (most recent call last):
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\gsplat\cuda_backend.py", line 56, in
from gsplat import csrc as C
ImportError: cannot import name 'csrc' from 'gsplat' (C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\gsplat_init.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\micro\anaconda3\envs\nerfstudio\Scripts\ns-train.exe_main.py", line 7, in
File "C:\Apps\nerfstudio\nerfstudio\scripts\train.py", line 262, in entrypoint
main(
File "C:\Apps\nerfstudio\nerfstudio\scripts\train.py", line 247, in main
launch(
File "C:\Apps\nerfstudio\nerfstudio\scripts\train.py", line 189, in launch
main_func(local_rank=0, world_size=world_size, config=config)
File "C:\Apps\nerfstudio\nerfstudio\scripts\train.py", line 100, in train_loop
trainer.train()
File "C:\Apps\nerfstudio\nerfstudio\engine\trainer.py", line 250, in train
loss, loss_dict, metrics_dict = self.train_iteration(step)
File "C:\Apps\nerfstudio\nerfstudio\utils\profiler.py", line 127, in inner
out = func(*args, **kwargs)
File "C:\Apps\nerfstudio\nerfstudio\engine\trainer.py", line 471, in train_iteration
_, loss_dict, metrics_dict = self.pipeline.get_train_loss_dict(step=step)
File "C:\Apps\nerfstudio\nerfstudio\utils\profiler.py", line 127, in inner
out = func(*args, **kwargs)
File "C:\Apps\nerfstudio\nerfstudio\pipelines\base_pipeline.py", line 304, in get_train_loss_dict
model_outputs = self._model(ray_bundle) # train distributed data parallel model if world_size > 1
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "C:\Apps\nerfstudio\nerfstudio\models\base_model.py", line 143, in forward
return self.get_outputs(ray_bundle)
File "C:\Apps\nerfstudio\nerfstudio\models\gaussian_splatting.py", line 591, in get_outputs
self.xys, depths, self.radii, conics, num_tiles_hit, _ = ProjectGaussians.apply( # type: ignore
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\autograd\function.py", line 506, in apply
return super().apply(*args, **kwargs) # type: ignore[misc]
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\gsplat\project_gaussians.py", line 67, in forward
) = C.project_gaussians_forward(
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\gsplat\cuda_init.py", line 7, in call_cuda
from ._backend import _C
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\gsplat\cuda_backend.py", line 79, in
_C = load(
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 1284, in load
return _jit_compile(
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 1509, in _jit_compile
_write_ninja_file_and_build_library(
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 1611, in _write_ninja_file_and_build_library
_write_ninja_file_to_build_library(
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 2048, in _write_ninja_file_to_build_library
_write_ninja_file(
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 2188, in _write_ninja_file
cl_paths = subprocess.check_output(['where',
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\subprocess.py", line 415, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "C:\Users\micro\anaconda3\envs\nerfstudio\lib\subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['where', 'cl']' returned non-zero exit status 1.
Steps to reproduce the behavior:
- After running COLMAP I run : ns-train gaussian-splatting --data output
- First few steps seem to work fine and then it crashes once it gets to: Trainer.train_iteration
- See error message above
Expected behavior
I expect the COLMAP data to be trained using the gaussian-splatting or igs2gs model.
Additional context
I followed the installation instructions exactly.
After nerfstudio dependencies I installed gsplat using:
pip install git+https://github.com/nerfstudio-project/gsplat.git
After that I installed nerfstudio following instructions:
git clone https://github.com/nerfstudio-project/nerfstudio.git
cd nerfstudio
pip install --upgrade pip setuptools
pip install -e .
Visual Studio 2019 is installed including Desktop development with C+.