You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are encountering an issue when trying to optimize for a subset of data:
When setting a time window that does not contain data for all of the channels in the model, the Summerizer works fine but the Optimizer frequently fails. It doesn't seem to matter if we force any channels to zero in the constraints:
[/usr/local/lib/python3.11/dist-packages/meridian/analysis/optimizer.py](https://localhost:8080/#) in _create_response_curves_section(self)
867 response_curves = formatter.ChartSpec(
868 id=summary_text.OPTIMIZED_RESPONSE_CURVES_CHART_ID,
--> 869 chart_json=self.plot_response_curves(
870 n_top_channels=n_channels
871 ).to_json(),
[/usr/local/lib/python3.11/dist-packages/meridian/analysis/optimizer.py](https://localhost:8080/#) in plot_response_curves(self, n_top_channels)
418 else:
419 title = summary_text.INC_KPI_LABEL
--> 420 df = self._get_plottable_response_curves_df(n_top_channels=n_top_channels)
421 base = (
422 alt.Chart(df)
[/usr/local/lib/python3.11/dist-packages/meridian/analysis/optimizer.py](https://localhost:8080/#) in _get_plottable_response_curves_df(self, n_top_channels)
577 })
578
--> 579 response_curves_ds = self.get_response_curves()
580 response_curves_df = (
581 response_curves_ds.to_dataframe()
[/usr/local/lib/python3.11/dist-packages/meridian/analysis/optimizer.py](https://localhost:8080/#) in get_response_curves(self)
536 # max upper spend constraint + padding.
537 upper_limit = max(max(upper_bound) + c.SPEND_CONSTRAINT_PADDING, 2)
--> 538 spend_multiplier = np.arange(0, upper_limit, c.RESPONSE_CURVE_STEP_SIZE)
539 # WARN: If `selected_times` is not None (i.e. a subset time range), this
540 # response curve computation might take a significant amount of time.
ValueError: arange: cannot compute length
``
The error "ValueError: arange: cannot compute length" arises when np.arange cannot determine the number of elements to generate because the step size is zero or leads to an infinite loop. In this context, within the _get_plottable_response_curves_df method of the BudgetOptimizer class, the code uses np.arange(0, upper_limit, c.RESPONSE_CURVE_STEP_SIZE) to generate spend multipliers for plotting response curves. The error suggests that c.RESPONSE_CURVE_STEP_SIZE is likely zero or leading to an infinite loop, preventing the calculation of the range length.
The text was updated successfully, but these errors were encountered:
I am unable to pinpoint the root cause of the error you are experiencing and would like some additional information to better understand the issue. Please share the following details:
You have mentioned that the Optimizer fails frequently? Can you let me know if it is working fine sometimes but throws an error some other times?
Can you let me know the reason for unavailability of the data? Was there media execution during that period and you don’t have the data or was there no media execution for those channels in those time periods?
Can you share the code you are using to set the time window and how you are running the budget optimizer?
Please share the above requested information to help debug this issue.
We are encountering an issue when trying to optimize for a subset of data:
When setting a time window that does not contain data for all of the channels in the model, the Summerizer works fine but the Optimizer frequently fails. It doesn't seem to matter if we force any channels to zero in the constraints:
The error "ValueError: arange: cannot compute length" arises when np.arange cannot determine the number of elements to generate because the step size is zero or leads to an infinite loop. In this context, within the _get_plottable_response_curves_df method of the BudgetOptimizer class, the code uses np.arange(0, upper_limit, c.RESPONSE_CURVE_STEP_SIZE) to generate spend multipliers for plotting response curves. The error suggests that c.RESPONSE_CURVE_STEP_SIZE is likely zero or leading to an infinite loop, preventing the calculation of the range length.
The text was updated successfully, but these errors were encountered: