Open muammar opened 3 years ago
More advances, after installing a conda environment with python3.6, and trying to run the example I am getting this error:
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1355 try:
-> 1356 return fn(*args)
1357 except errors.OpError as e:
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata)
1338 # Ensure any changes to the graph are reflected in the runtime.
-> 1339 self._extend_graph()
1340 return self._call_tf_sessionrun(
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in _extend_graph(self)
1373 with self._graph._session_run_lock(): # pylint: disable=protected-access
-> 1374 tf_session.ExtendSession(self._session)
1375
InvalidArgumentError: No OpKernel was registered to support Op 'CudnnRNN' used by {{node bidirectional_1/CudnnRNN}}with these attrs: [rnn_mode="lstm", seed2=0, is_training=true, dropout=0, seed=87654321, T=DT_FLOAT, input_mode="linear_input", direction="unidirectional"]
Registered devices: [CPU, XLA_CPU]
Registered kernels:
<no registered kernels>
[[bidirectional_1/CudnnRNN]]
During handling of the above exception, another exception occurred:
InvalidArgumentError Traceback (most recent call last)
<ipython-input-44-ad7b10e344ac> in <module>
18 alpha_ref = 22,
19 patience = 50,
---> 20 n_epochs = 100)
~/git/SMILES-X/SMILESX/main.py in Main(data, data_name, bayopt_bounds, data_units, k_fold_number, augmentation, outdir, bayopt_n_epochs, bayopt_n_rounds, bayopt_it_factor, bayopt_on, lstmunits_ref, denseunits_ref, embedding_ref, batch_size_ref, alpha_ref, n_gpus, bridge_type, patience, n_epochs)
304 exact_feval = False,
305 normalize_Y = True,
--> 306 num_cores = multiprocessing.cpu_count()-1)
307 print("Optimization:\n")
308 Bayes_opt.run_optimization(max_iter=bayopt_n_rounds)
~/miniconda3/envs/py36/lib/python3.6/site-packages/GPyOpt/methods/bayesian_optimization.py in __init__(self, f, domain, constraints, cost_withGradients, model_type, X, Y, initial_design_numdata, initial_design_type, acquisition_type, normalize_Y, exact_feval, acquisition_optimizer_type, model_update_interval, evaluator_type, batch_size, num_cores, verbosity, verbosity_model, maximize, de_duplication, **kwargs)
117 self.initial_design_type = initial_design_type
118 self.initial_design_numdata = initial_design_numdata
--> 119 self._init_design_chooser()
120
121 # --- CHOOSE the model type. If an instance of a GPyOpt model is passed (possibly user defined), it is used.
~/miniconda3/envs/py36/lib/python3.6/site-packages/GPyOpt/methods/bayesian_optimization.py in _init_design_chooser(self)
193 if self.X is None:
194 self.X = initial_design(self.initial_design_type, self.space, self.initial_design_numdata)
--> 195 self.Y, _ = self.objective.evaluate(self.X)
196 # Case 2
197 elif self.X is not None and self.Y is None:
~/miniconda3/envs/py36/lib/python3.6/site-packages/GPyOpt/core/task/objective.py in evaluate(self, x)
48
49 if self.n_procs == 1:
---> 50 f_evals, cost_evals = self._eval_func(x)
51 else:
52 try:
~/miniconda3/envs/py36/lib/python3.6/site-packages/GPyOpt/core/task/objective.py in _eval_func(self, x)
72 for i in range(x.shape[0]):
73 st_time = time.time()
---> 74 rlt = self.func(np.atleast_2d(x[i]))
75 f_evals = np.vstack([f_evals,rlt])
76 cost_evals += [time.time()-st_time]
~/git/SMILES-X/SMILESX/main.py in create_mod(params)
285 shuffle = True,
286 initial_epoch = 0,
--> 287 verbose = 0)
288
289 best_epoch = np.argmin(history.history['val_loss'])
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
1730 use_multiprocessing=use_multiprocessing,
1731 shuffle=shuffle,
-> 1732 initial_epoch=initial_epoch)
1733
1734 @interfaces.legacy_generator_methods_support
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
40
41 do_validation = bool(validation_data)
---> 42 model._make_train_function()
43 if do_validation:
44 model._make_test_function()
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/engine/training.py in _make_train_function(self)
331 updates=updates + metrics_updates,
332 name='train_function',
--> 333 **self._function_kwargs)
334
335 def _make_test_function(self):
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in function(inputs, outputs, updates, **kwargs)
3004 def function(inputs, outputs, updates=None, **kwargs):
3005 if _is_tf_1():
-> 3006 v1_variable_initialization()
3007 return tf_keras_backend.function(inputs, outputs,
3008 updates=updates,
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in v1_variable_initialization()
418
419 def v1_variable_initialization():
--> 420 session = get_session()
421 with session.graph.as_default():
422 variables = tf.global_variables()
~/miniconda3/envs/py36/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in get_session()
383 '`get_session` is not available when '
384 'TensorFlow is executing eagerly.')
--> 385 return tf_keras_backend.get_session()
386
387
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in get_session(op_input_list)
460 if not _MANUAL_VAR_INIT:
461 with session.graph.as_default():
--> 462 _initialize_variables(session)
463 return session
464
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in _initialize_variables(session)
877 # marked as initialized.
878 is_initialized = session.run(
--> 879 [variables_module.is_variable_initialized(v) for v in candidate_vars])
880 uninitialized_vars = []
881 for flag, v in zip(is_initialized, candidate_vars):
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)
948 try:
949 result = self._run(None, fetches, feed_dict, options_ptr,
--> 950 run_metadata_ptr)
951 if run_metadata:
952 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1171 if final_fetches or final_targets or (handle and feed_dict_tensor):
1172 results = self._do_run(handle, final_targets, final_fetches,
-> 1173 feed_dict_tensor, options, run_metadata)
1174 else:
1175 results = []
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
1348 if handle is None:
1349 return self._do_call(_run_fn, feeds, fetches, targets, options,
-> 1350 run_metadata)
1351 else:
1352 return self._do_call(_prun_fn, handle, feeds, fetches)
~/miniconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1368 pass
1369 message = error_interpolation.interpolate(message, self._graph)
-> 1370 raise type(e)(node_def, op, message)
1371
1372 def _extend_graph(self):
InvalidArgumentError: No OpKernel was registered to support Op 'CudnnRNN' used by node bidirectional_1/CudnnRNN (defined at /home/elkhatim/miniconda3/envs/py36/lib/python3.6/site-packages/keras/layers/cudnn_recurrent.py:517) with these attrs: [rnn_mode="lstm", seed2=0, is_training=true, dropout=0, seed=87654321, T=DT_FLOAT, input_mode="linear_input", direction="unidirectional"]
Registered devices: [CPU, XLA_CPU]
Registered kernels:
<no registered kernels>
[[bidirectional_1/CudnnRNN]]
Errors may have originated from an input operation.
Input Source operations connected to node bidirectional_1/CudnnRNN:
bidirectional_1/ExpandDims_2 (defined at /home/elkhatim/miniconda3/envs/py36/lib/python3.6/site-packages/keras/layers/cudnn_recurrent.py:488)
bidirectional_1/transpose (defined at /home/elkhatim/miniconda3/envs/py36/lib/python3.6/site-packages/keras/layers/cudnn_recurrent.py:484)
bidirectional_1/ExpandDims_1 (defined at /home/elkhatim/miniconda3/envs/py36/lib/python3.6/site-packages/keras/layers/cudnn_recurrent.py:487)
bidirectional_1/concat (defined at /home/elkhatim/miniconda3/envs/py36/lib/python3.6/site-packages/keras/layers/cudnn_recurrent.py:60)
I would love trying to help with this but I am just fluent in PyTorch, and have not used keras too much. Any ideas how to solve this issue?
Best,
I tried using SMILES-X with a recent environment, and the example notebook is failing with the following error:
This is due to the latest version of Keras deprecating
CuDNNLSTM
. As I am under a conda environment with Python3.8, I tried installing the version2.3.0
of Keras but not possible:It seems the only way to use SMILES-X would be to install an environment with Python3.6 and use the Keras version posted above, which becomes very inconvenient on my setup to access my jupyterlab instance.