I tried optimizing "func2C" with the model on GPU but got an error saying there're tensors on both CPU and GPU. I tried the same optimization experiment with CPU only and it completed without a problem.
if problem_type == 'mixed':
optim = MixedOptimizer(f.config, f.lb, f.ub, f.continuous_dims, f.categorical_dims,
n_init=args.n_init, use_ard=args.ard, acq=args.acq,
kernel_type=kernel_type,
noise_variance=noise_variance,
device = 'cuda',
min_cuda = 1,
**kwargs)
else:
optim = Optimizer(f.config, n_init=args.n_init, use_ard=args.ard, acq=args.acq,
kernel_type=kernel_type,
noise_variance=noise_variance,
device = 'cuda',
min_cuda = 1,
**kwargs)
idwwwoqq808@DESKTOP-35T3LEC:~/workspace/optimizer/Casmopolitan$ py main.py -p func2C --max_iters 4 --batch_size 8 --n_init 8 --n_trials 1
{'problem': 'func2C', 'max_iters': 4, 'lamda': 1e-06, 'batch_size': 8, 'n_trials': 1, 'n_init': 8, 'save_path': 'output/', 'ard': False, 'acq': 'ei', 'random_seed_objective': 20, 'debug': False, 'no_save': False, 'seed': None, 'kernel_type': None, 'infer_noise_var': False}
----- Starting trial 1 / 1 -----
Traceback (most recent call last):
File "/home/idwwwoqq808/workspace/optimizer/Casmopolitan/main.py", line 106, in <module>
x_next = optim.suggest(args.batch_size)
File "/home/idwwwoqq808/workspace/optimizer/Casmopolitan/bo/optimizer_mixed.py", line 184, in suggest
next = self.casmopolitan._create_and_select_candidates(X, fX, length=self.casmopolitan.length_discrete,
File "/home/idwwwoqq808/workspace/optimizer/Casmopolitan/bo/localbo_mixed.py", line 228, in _create_and_select_candidates
x_next, acq = interleaved_search(x_center[0], _ei,
File "/home/idwwwoqq808/workspace/optimizer/Casmopolitan/bo/localbo_utils.py", line 476, in interleaved_search
res = _interleaved_search(x0[i, :])
File "/home/idwwwoqq808/workspace/optimizer/Casmopolitan/bo/localbo_utils.py", line 420, in _interleaved_search
acq_x = f(x).detach().numpy()
File "/home/idwwwoqq808/workspace/optimizer/Casmopolitan/bo/localbo_mixed.py", line 181, in _ei
preds = gp(X)
File "/home/idwwwoqq808/.local/lib/python3.10/site-packages/gpytorch/models/exact_gp.py", line 283, in __call__
if all(torch.equal(train_input, input) for train_input, input in length_safe_zip(train_inputs, inputs)):
File "/home/idwwwoqq808/.local/lib/python3.10/site-packages/gpytorch/models/exact_gp.py", line 283, in <genexpr>
if all(torch.equal(train_input, input) for train_input, input in length_safe_zip(train_inputs, inputs)):
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument other in method wrapper_CUDA__equal)