Skip to content
This repository was archived by the owner on Sep 18, 2025. It is now read-only.
This repository was archived by the owner on Sep 18, 2025. It is now read-only.

RuntimeError: Batching rule not implemented for aten::_make_dual; the fallback path doesn't work on out= or view ops #14

Description

@JieaiMai

RuntimeError: Batching rule not implemented for aten::_make_dual; the fallback path doesn't work on out= or view ops
UserWarning: .test(ckpt_path="best") is called with Trainer configured with multiple ModelCheckpoint callbacks. It will use the best checkpoint path from first checkpoint callback.
rank_zero_warn(
Restoring states from the checkpoint path at ./rfmcsp-conditional-perov/ekgeh2jv/checkpoints/epoch=1184-step=14220.ckpt
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [4]
Loaded model weights from checkpoint at ./rfmcsp-conditional-perov/ekgeh2jv/checkpoints/epoch=1184-step=14220.ckpt
Testing DataLoader 0: 0%| | 0/1 [00:00<?, ?it/s]Error executing job with overrides: ['data=perov', 'model=null_params']
Traceback (most recent call last):
File "/data0/mai/examples/flowmm/scripts_model/run.py", line 206, in main
run(cfg)
File "/data0/mai/examples/flowmm/scripts_model/run.py", line 193, in run
trainer.test(datamodule=datamodule, ckpt_path=ckpt_path)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 780, in test
return call._call_and_handle_interrupt(
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 38, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 829, in _test_impl
results = self._run(model, ckpt_path=self.ckpt_path)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1098, in _run
results = self._run_stage()
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1174, in _run_stage
return self._run_evaluate()
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1214, in _run_evaluate
eval_loop_results = self._evaluation_loop.run()
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/loops/dataloader/evaluation_loop.py", line 152, in advance
dl_outputs = self.epoch_loop.run(self._data_fetcher, dl_max_batches, kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 137, in advance
output = self._evaluation_step(**kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 234, in _evaluation_step
output = self.trainer._call_strategy_hook(hook_name, *kwargs.values())
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1480, in _call_strategy_hook
output = fn(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 399, in test_step
return self.model.test_step(*args, **kwargs)
File "/data0/mai/examples/flowmm/src/flowmm/model/model_pl.py", line 1030, in test_step
return self.shared_eval_step(
File "/data0/mai/examples/flowmm/src/flowmm/model/model_pl.py", line 736, in shared_eval_step
loss_dict = self.loss_fn(batch)
File "/data0/mai/examples/flowmm/src/flowmm/model/model_pl.py", line 546, in loss_fn
return self.rfm_loss_fn(batch, *args, **kwargs)
File "/data0/mai/examples/flowmm/src/flowmm/model/model_pl.py", line 594, in rfm_loss_fn
x_t, u_t = manifold.cond_u(x0, x1, t)
File "/data0/mai/examples/flowmm/src/flowmm/rfm/vmap.py", line 235, in cond_u
return self.vmap(CondU, (x0, x1, t), data_in_dim=data_in_dim)
File "/data0/mai/examples/flowmm/src/flowmm/rfm/vmap.py", line 125, in vmap
return torch.func.vmap(wrapper, (0, 0, data_in_dim), randomness="different")(
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/apis.py", line 188, in wrapped
return vmap_impl(func, in_dims, out_dims, randomness, chunk_size, *args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/vmap.py", line 266, in vmap_impl
return _flat_vmap(
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/vmap.py", line 38, in fn
return f(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/vmap.py", line 379, in _flat_vmap
batched_outputs = func(*batched_inputs, **kwargs)
File "/data0/mai/examples/flowmm/src/flowmm/rfm/vmap.py", line 118, in wrapper
return torch.func.functional_call(
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/functional_call.py", line 143, in functional_call
return nn.utils.stateless._functional_call(
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/nn/utils/stateless.py", line 264, in _functional_call
return module(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/data0/mai/examples/flowmm/src/flowmm/rfm/vmap.py", line 24, in forward
return method(*args, **kwargs)
File "/data0/mai/examples/flowmm/src/flowmm/rfm/manifolds/product.py", line 106, in cond_u
x_t, u_t = self._cond_u(manifold, x0p, x1p, t)
File "/data0/mai/examples/flowmm/src/flowmm/rfm/manifolds/product.py", line 95, in _cond_u
x_t, u_t = jvp(path, (t,), (torch.ones_like(t).to(t),))
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/eager_transforms.py", line 919, in jvp
return _jvp_with_argnums(func, primals, tangents, argnums=None, strict=strict, has_aux=has_aux)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/vmap.py", line 38, in fn
return f(*args, **kwargs)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/eager_transforms.py", line 962, in _jvp_with_argnums
flat_duals = tuple(fwAD.make_dual(p, t)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/_functorch/eager_transforms.py", line 962, in
flat_duals = tuple(fwAD.make_dual(p, t)
File "/data0/jieai/miniforge3/envs/flowmm/lib/python3.9/site-packages/torch/autograd/forward_ad.py", line 121, in make_dual
return torch._VF._make_dual(tensor, tangent, level=level)
RuntimeError: Batching rule not implemented for aten::_make_dual; the fallback path doesn't work on out= or view ops.

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace
It seems that this error occurs during evaluation, but it works fine during training. How can I solve this problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions