Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: ValueError: The parameter loc has invalid values #61

Open
asifajrof opened this issue Dec 13, 2022 · 1 comment
Open

Error: ValueError: The parameter loc has invalid values #61

asifajrof opened this issue Dec 13, 2022 · 1 comment

Comments

@asifajrof
Copy link

While running on the tests data I am facing this error,

[2022-12-13 04:01:49,551] 🚨 ERROR : ValueError: The parameter loc has invalid values
              Trace Shapes:      
               Param Sites:      
          !!metagene!1!!_mu    10
          !!metagene!1!!_sd    10
mu_rate_g_condition-section  1 10
sd_rate_g_condition-section  1 10
              Sample Sites:      
        !!metagene!1!! dist 10  |
                      value 10  |
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 165, in __call__
    ret = self.fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/messenger.py", line 12, in _context_wrap
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 133, in guide
    _go(self.get_experiment(experiment), x)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 129, in _go
    for i, y in enumerate(experiment.guide(x)):
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 647, in guide
    _sample_condition(batch_idx, slide, covariate, condition)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 616, in _sample_condition
    Normal(mu_rate_g_condition, 1e-8 + sd_rate_g_condition),
  File "/usr/local/lib/python3.8/dist-packages/pyro/distributions/distribution.py", line 18, in __call__
    return super().__call__(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/normal.py", line 50, in __init__
    super(Normal, self).__init__(batch_shape, validate_args=validate_args)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/distribution.py", line 53, in __init__
    raise ValueError("The parameter {} has invalid values".format(param))
ValueError: The parameter loc has invalid values

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/xfuse/run.py", line 173, in run
    train(epochs)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/train.py", line 62, in train
    _epoch(epoch=epoch)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 263, in _fn
    apply_stack(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 198, in apply_stack
    default_process_message(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 159, in default_process_message
    msg["value"] = msg["fn"](*msg["args"], **msg["kwargs"])
  File "/usr/local/lib/python3.8/dist-packages/xfuse/train.py", line 47, in _epoch
    _step(x=to_device(x))
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 263, in _fn
    apply_stack(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 198, in apply_stack
    default_process_message(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 159, in default_process_message
    msg["value"] = msg["fn"](*msg["args"], **msg["kwargs"])
  File "/usr/local/lib/python3.8/dist-packages/xfuse/train.py", line 35, in _step
    pyro.infer.SVI(model.model, model.guide, optim, loss).step(x)
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/svi.py", line 128, in step
    loss = self.loss_and_grads(self.model, self.guide, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/trace_elbo.py", line 126, in loss_and_grads
    for model_trace, guide_trace in self._get_traces(model, guide, args, kwargs):
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/elbo.py", line 170, in _get_traces
    yield self._get_trace(model, guide, args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/trace_elbo.py", line 52, in _get_trace
    model_trace, guide_trace = get_importance_trace(
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/enum.py", line 44, in get_importance_trace
    guide_trace = poutine.trace(guide, graph_type=graph_type).get_trace(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 187, in get_trace
    self(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 171, in __call__
    raise exc from e
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 165, in __call__
    ret = self.fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/messenger.py", line 12, in _context_wrap
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 133, in guide
    _go(self.get_experiment(experiment), x)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 129, in _go
    for i, y in enumerate(experiment.guide(x)):
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 647, in guide
    _sample_condition(batch_idx, slide, covariate, condition)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 616, in _sample_condition
    Normal(mu_rate_g_condition, 1e-8 + sd_rate_g_condition),
  File "/usr/local/lib/python3.8/dist-packages/pyro/distributions/distribution.py", line 18, in __call__
    return super().__call__(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/normal.py", line 50, in __init__
    super(Normal, self).__init__(batch_shape, validate_args=validate_args)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/distribution.py", line 53, in __init__
    raise ValueError("The parameter {} has invalid values".format(param))
ValueError: The parameter loc has invalid values
              Trace Shapes:      
               Param Sites:      
          !!metagene!1!!_mu    10
          !!metagene!1!!_sd    10
mu_rate_g_condition-section  1 10
sd_rate_g_condition-section  1 10
              Sample Sites:      
        !!metagene!1!! dist 10  |
                      value 10  |

ERROR:xfuse.logging.logging:ValueError: The parameter loc has invalid values
              Trace Shapes:      
               Param Sites:      
          !!metagene!1!!_mu    10
          !!metagene!1!!_sd    10
mu_rate_g_condition-section  1 10
sd_rate_g_condition-section  1 10
              Sample Sites:      
        !!metagene!1!! dist 10  |
                      value 10  |
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 165, in __call__
    ret = self.fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/messenger.py", line 12, in _context_wrap
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 133, in guide
    _go(self.get_experiment(experiment), x)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 129, in _go
    for i, y in enumerate(experiment.guide(x)):
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 647, in guide
    _sample_condition(batch_idx, slide, covariate, condition)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 616, in _sample_condition
    Normal(mu_rate_g_condition, 1e-8 + sd_rate_g_condition),
  File "/usr/local/lib/python3.8/dist-packages/pyro/distributions/distribution.py", line 18, in __call__
    return super().__call__(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/normal.py", line 50, in __init__
    super(Normal, self).__init__(batch_shape, validate_args=validate_args)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/distribution.py", line 53, in __init__
    raise ValueError("The parameter {} has invalid values".format(param))
ValueError: The parameter loc has invalid values

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/xfuse/run.py", line 173, in run
    train(epochs)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/train.py", line 62, in train
    _epoch(epoch=epoch)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 263, in _fn
    apply_stack(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 198, in apply_stack
    default_process_message(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 159, in default_process_message
    msg["value"] = msg["fn"](*msg["args"], **msg["kwargs"])
  File "/usr/local/lib/python3.8/dist-packages/xfuse/train.py", line 47, in _epoch
    _step(x=to_device(x))
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 263, in _fn
    apply_stack(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 198, in apply_stack
    default_process_message(msg)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/runtime.py", line 159, in default_process_message
    msg["value"] = msg["fn"](*msg["args"], **msg["kwargs"])
  File "/usr/local/lib/python3.8/dist-packages/xfuse/train.py", line 35, in _step
    pyro.infer.SVI(model.model, model.guide, optim, loss).step(x)
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/svi.py", line 128, in step
    loss = self.loss_and_grads(self.model, self.guide, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/trace_elbo.py", line 126, in loss_and_grads
    for model_trace, guide_trace in self._get_traces(model, guide, args, kwargs):
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/elbo.py", line 170, in _get_traces
    yield self._get_trace(model, guide, args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/trace_elbo.py", line 52, in _get_trace
    model_trace, guide_trace = get_importance_trace(
  File "/usr/local/lib/python3.8/dist-packages/pyro/infer/enum.py", line 44, in get_importance_trace
    guide_trace = poutine.trace(guide, graph_type=graph_type).get_trace(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 187, in get_trace
    self(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 171, in __call__
    raise exc from e
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/trace_messenger.py", line 165, in __call__
    ret = self.fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pyro/poutine/messenger.py", line 12, in _context_wrap
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 133, in guide
    _go(self.get_experiment(experiment), x)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/xfuse.py", line 129, in _go
    for i, y in enumerate(experiment.guide(x)):
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 647, in guide
    _sample_condition(batch_idx, slide, covariate, condition)
  File "/usr/local/lib/python3.8/dist-packages/xfuse/model/experiment/st/st.py", line 616, in _sample_condition
    Normal(mu_rate_g_condition, 1e-8 + sd_rate_g_condition),
  File "/usr/local/lib/python3.8/dist-packages/pyro/distributions/distribution.py", line 18, in __call__
    return super().__call__(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/normal.py", line 50, in __init__
    super(Normal, self).__init__(batch_shape, validate_args=validate_args)
  File "/usr/local/lib/python3.8/dist-packages/torch/distributions/distribution.py", line 53, in __init__
    raise ValueError("The parameter {} has invalid values".format(param))
ValueError: The parameter loc has invalid values
              Trace Shapes:      
               Param Sites:      
          !!metagene!1!!_mu    10
          !!metagene!1!!_sd    10
mu_rate_g_condition-section  1 10
sd_rate_g_condition-section  1 10
              Sample Sites:      
        !!metagene!1!! dist 10  |
                      value 10  |

[2022-12-13 04:01:49,552] ℹ : Saving session to exception.session
INFO:xfuse.logging.logging:Saving session to exception.session

the error is not consistent, that is, it goes away sometimes if I run it from scratch again. what could be the reason behind this error?

changes i made:
in the xfuse/_config.py file: at 155 line -> ("epochs", Item(value=200)),
cause, higher epoch value was giving me memory error.

@ludvb
Copy link
Owner

ludvb commented Mar 30, 2023

Thank you for this report and sorry for my late reply! Can you provide the config.toml file you used for this analysis?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants