docs: def infer_dm(self, m, s, ds):
          """Infer probable output from input x, y
          """
          OptimizedInverseModel.infer_dm(self, ds)
          if len(self.fmodel.dataset) == 0:
              return [[0.0]*self.dim_out]
          else:
              _, index = self.fmodel.dataset.nn_dims(m, np.hstack((s, ds)), range(len(m)), range(self.dim_x, self.dim_x + self.dim_y), k=1)
              guesses = [self.fmodel.dataset.get_dims(index[0], dims=range(len(m), self.dim_x))]
              result = []
                      
              for g in guesses:
                  res = scipy.optimize.minimize(lambda dm:self._error_dm(m, dm, s), g,
                                                args        = (),
                                                method      = self.algo,
                                                options     = self.conf
                                               )
      
      
      
                  d = self._error_dm(m, res.x, s)
                  result.append((d, res.x))
              return [xi for fi, xi in sorted(result)][0]