Hi Jo,
I was just able to update my dev branch build today. I modified my script based on your gist.
I am returning another āis_file_classā error. Please see below.
Starting optimization
---------------------------------------------------------------------------
RemoteTraceback Traceback (most recent call last)
RemoteTraceback:
"""
Traceback (most recent call last):
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\multiprocess\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\multiprocess\pool.py", line 48, in mapstar
return list(map(*args))
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pathos\helpers\mp_helper.py", line 15, in <lambda>
func = lambda args: f(*args)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py", line 705, in eval_fun
results = self.evaluate_objectives(
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py", line 108, in wrapper
return func(self, x, *args, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py", line 683, in evaluate_objectives
value = self._evaluate(x, objective, force)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py", line 108, in wrapper
return func(self, x, *args, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py", line 1446, in _evaluate
result = step.evaluate(current_request)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py", line 2450, in __call__
results = self.evaluator(request, *args, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\simulator\simulator.py", line 196, in simulate
results = self.simulate_n_cycles(
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py", line 82, in wrapper
result = function(*args, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py", line 133, in wrapper
results = function(*args, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py", line 112, in wrapper
raise e
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py", line 104, in wrapper
return function(*args, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\simulator\simulator.py", line 250, in simulate_n_cycles
return self.run(process, **kwargs)
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 232, in run
if cadet.is_file:
File "C:\Users\~\Anaconda3\envs\CADETProcessTest\lib\site-packages\cadet\cadet.py", line 169, in is_file
if self._is_file_class is not None:
AttributeError: 'Cadet' object has no attribute '_is_file_class'
"""
The above exception was the direct cause of the following exception:
AttributeError Traceback (most recent call last)
Input In [1], in <cell line: 147>()
147 if __name__ == '__main__':
148 print('Starting optimization')
--> 149 optimization_results = optimizer.optimize(
150 optimization_problem,
151 use_checkpoint=False
152 )
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizer.py:124, in OptimizerBase.optimize(self, optimization_problem, save_results, results_directory, log_level, delete_cache, remove_similar, *args, **kwargs)
120 plt.switch_backend('agg')
122 start = time.time()
--> 124 self.run(optimization_problem, *args, **kwargs)
126 self.results.time_elapsed = time.time() - start
128 if delete_cache:
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\pymooAdapter.py:75, in PymooInterface.run(self, optimization_problem, use_checkpoint, update_parameters)
73 n_gen = 1
74 while self.algorithm.has_next():
---> 75 self.algorithm.next()
77 X = self.algorithm.pop.get("X").tolist()
78 F = self.algorithm.pop.get("F").tolist()
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pymoo\core\algorithm.py:161, in Algorithm.next(self)
159 # call the advance with them after evaluation
160 if infills is not None:
--> 161 self.evaluator.eval(self.problem, infills, algorithm=self)
162 self.advance(infills=infills)
164 # if the algorithm does not follow the infill-advance scheme just call advance
165 else:
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pymoo\core\evaluator.py:69, in Evaluator.eval(self, problem, pop, skip_already_evaluated, evaluate_values_of, count_evals, **kwargs)
65 # evaluate the solutions (if there are any)
66 if len(I) > 0:
67
68 # do the actual evaluation - call the sub-function to set the corresponding values to the population
---> 69 self._eval(problem, pop[I], evaluate_values_of, **kwargs)
71 # update the function evaluation counter
72 if count_evals:
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pymoo\core\evaluator.py:90, in Evaluator._eval(self, problem, pop, evaluate_values_of, **kwargs)
87 X = pop.get("X")
89 # call the problem to evaluate the solutions
---> 90 out = problem.evaluate(X, return_values_of=evaluate_values_of, return_as_dictionary=True, **kwargs)
92 # for each of the attributes set it to the problem
93 for key, val in out.items():
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pymoo\core\problem.py:187, in Problem.evaluate(self, X, return_values_of, return_as_dictionary, *args, **kwargs)
184 only_single_value = not (isinstance(X, list) or isinstance(X, np.ndarray))
186 # this is where the actual evaluation takes place
--> 187 _out = self.do(X, return_values_of, *args, **kwargs)
189 out = {}
190 for k, v in _out.items():
191
192 # copy it to a numpy array (it might be one of jax at this point)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pymoo\core\problem.py:229, in Problem.do(self, X, return_values_of, *args, **kwargs)
227 self._evaluate_elementwise(X, out, *args, **kwargs)
228 else:
--> 229 self._evaluate_vectorized(X, out, *args, **kwargs)
231 # finally format the output dictionary
232 out = self._format_dict(out, len(X), return_values_of)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pymoo\core\problem.py:237, in Problem._evaluate_vectorized(self, X, out, *args, **kwargs)
236 def _evaluate_vectorized(self, X, out, *args, **kwargs):
--> 237 self._evaluate(X, out, *args, **kwargs)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\pymooAdapter.py:242, in PymooProblem._evaluate(self, x, out, *args, **kwargs)
240 opt = self.optimization_problem
241 if opt.n_objectives > 0:
--> 242 F = opt.evaluate_objectives_population(
243 x,
244 untransform=True,
245 n_cores=self.n_cores,
246 )
247 out["F"] = np.array(F)
249 if opt.n_nonlinear_constraints > 0:
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:108, in OptimizationProblem.untransforms.<locals>.wrapper(self, x, untransform, *args, **kwargs)
105 if untransform:
106 x = self.untransform(x)
--> 108 return func(self, x, *args, **kwargs)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:119, in OptimizationProblem.ensures2d.<locals>.wrapper(self, population, *args, **kwargs)
116 population = np.array(population, ndmin=2)
117 population = population.tolist()
--> 119 return func(self, population, *args, **kwargs)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:725, in OptimizationProblem.evaluate_objectives_population(self, population, force, n_cores)
722 self.cache.close()
724 with pathos.pools.ProcessPool(ncpus=n_cores) as pool:
--> 725 results = pool.map(eval_fun, population)
727 return results
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pathos\multiprocessing.py:139, in ProcessPool.map(self, f, *args, **kwds)
137 AbstractWorkerPool._AbstractWorkerPool__map(self, f, *args, **kwds)
138 _pool = self._serve()
--> 139 return _pool.map(star(f), zip(*args))
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\multiprocess\pool.py:364, in Pool.map(self, func, iterable, chunksize)
359 def map(self, func, iterable, chunksize=None):
360 '''
361 Apply `func` to each element in `iterable`, collecting the results
362 in a list that is returned.
363 '''
--> 364 return self._map_async(func, iterable, mapstar, chunksize).get()
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\multiprocess\pool.py:771, in ApplyResult.get(self, timeout)
769 return self._value
770 else:
--> 771 raise self._value
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\multiprocess\pool.py:125, in worker()
123 job, i, func, args, kwds = task
124 try:
--> 125 result = (True, func(*args, **kwds))
126 except Exception as e:
127 if wrap_exception and func is not _helper_reraises_exception:
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\multiprocess\pool.py:48, in mapstar()
47 def mapstar(args):
---> 48 return list(map(*args))
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\pathos\helpers\mp_helper.py:15, in starargs.<locals>.<lambda>()
13 def starargs(f):
14 """decorator to convert a many-arg function to a single-arg function"""
---> 15 func = lambda args: f(*args)
16 #func.__module__ = f.__module__
17 #func.__name__ = f.__name__
18 doc = "\nNOTE: all inputs have been compressed into a single argument"
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:705, in eval_fun()
704 def eval_fun(ind):
--> 705 results = self.evaluate_objectives(
706 ind,
707 force=force,
708 )
709 self.cache.close()
711 return results
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:108, in wrapper()
105 if untransform:
106 x = self.untransform(x)
--> 108 return func(self, x, *args, **kwargs)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:683, in evaluate_objectives()
681 for objective in self.objectives:
682 try:
--> 683 value = self._evaluate(x, objective, force)
684 f += value
685 except CADETProcessError:
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:108, in wrapper()
105 if untransform:
106 x = self.untransform(x)
--> 108 return func(self, x, *args, **kwargs)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:1446, in _evaluate()
1444 step.evaluate(current_request, eval_obj)
1445 else:
-> 1446 result = step.evaluate(current_request)
1447 if step not in self.cached_steps:
1448 tag = 'temp'
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\optimization\optimizationProblem.py:2450, in __call__()
2447 else:
2448 kwargs = self.kwargs
-> 2450 results = self.evaluator(request, *args, **kwargs)
2452 return results
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\simulator\simulator.py:196, in simulate()
194 process.lock = True
195 if not self.evaluate_stationarity:
--> 196 results = self.simulate_n_cycles(
197 process, self.n_cycles, previous_results, **kwargs
198 )
199 else:
200 results = self.simulate_to_stationarity(
201 process, previous_results, **kwargs
202 )
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py:82, in wrapper()
79 @wraps(function)
80 def wrapper(*args, **kwargs):
81 start = time.time()
---> 82 result = function(*args, **kwargs)
83 elapsed = time.time() - start
84 logger = get_logger(logger_name, level=None)
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py:133, in wrapper()
129 logger = get_logger(logger_name, level=None)
131 logger.debug('{} was called with {}, {}'.format(
132 function, *args, **kwargs))
--> 133 results = function(*args, **kwargs)
134 logger.debug(f'Results: {results}')
136 return results
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py:112, in wrapper()
109 logger.exception(err)
111 # re-raise the exception
--> 112 raise e
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\log.py:104, in wrapper()
102 logger = get_logger(logger_name, level=None)
103 try:
--> 104 return function(*args, **kwargs)
105 except Exception as e:
106 # log the exception
107 err = "There was an exception in "
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\simulator\simulator.py:250, in simulate_n_cycles()
247 if previous_results is not None:
248 self.set_state_from_results(process, previous_results)
--> 250 return self.run(process, **kwargs)
252 self.n_cycles = n_cyc_orig
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\CADETProcess\simulator\cadetAdapter.py:232, in run()
228 cadet = CadetAPI()
230 cadet.root = self.get_process_config(process)
--> 232 if cadet.is_file:
233 if file_path is None:
234 cadet.filename = self.get_tempfile_name()
File ~\Anaconda3\envs\CADETProcessTest\lib\site-packages\cadet\cadet.py:169, in is_file()
167 if self._is_file is not None:
168 return bool(self._is_file)
--> 169 if self._is_file_class is not None:
170 return bool(self._is_file_class)
AttributeError: 'Cadet' object has no attribute '_is_file_class'