Non-deterministic results between different machines

The issue mentioned above relates to why I was previously using the dot operator: to allow the dimensions of the model to scale automatically dependent on the number of columns of observations supplied.

Previously I had something like:

inputs  # dataframe with N rows of M input observations (M = [x1, x2, x3] in the original example)

coords = {"observations": inputs.index, "input_variables": inputs.columns}

with pm.Model(coords=coords) as model:
  ...
  # beta size set to M
  beta = pm.Normal('beta', mu=15, sigma=20, dims="input_variables")

  # observed size set to N
  data_observed = pm.MutableData("data_observed", output, dims=("observations"))
  # input data size set to N x M
  data_input = pm.MutableData("data_input", inputs, dims=("observations", "input_index"))

  # Intention is for mu to be size N, each entry equal to c0 + (c1 * x1) + (c2 * x2) + (c3 * x3) 
  mu = intercept + pm.math.dot(data_input, beta)
  pm.Normal('observed', mu=mu, sigma=sigma, observed=data_observed)
  ...

If a column was added to inputs then the size of beta etc updates automatically.

Is there a clean way to achieve the same goal without use of the dot operator?