bstriner / keras-tqdm

Keras integration with TQDM progress bars
MIT License
348 stars 41 forks source link

Metrics Error in categorical_embedder #38

Closed Dhananjay201 closed 4 years ago

Dhananjay201 commented 4 years ago

code

X_train, X_test, y_train, y_test = train_test_split(X_encoded,y)

embeddings = ce.get_embeddings(X_train, y_train, categorical_embedding_info=embedding_info, is_classification=True, epochs=100,batch_size=256 )

error

KeyError Traceback (most recent call last) in 3 4 embeddings = ce.get_embeddings(X_train, y_train, categorical_embedding_info=embedding_info, ----> 5 is_classification=True, epochs=100,batch_size=256 6 )

/opt/conda/lib/python3.6/site-packages/categorical_embedder/init.py in get_embeddings(X_train, y_train, categorical_embedding_info, is_classification, epochs, batch_size) 173 174 nnet.compile(loss=loss, optimizer='adam', metrics=[metrics]) --> 175 nnet.fit(x_inputs, y_train.values, batch_size=batch_size, epochs=epochs, validation_split=0.2, callbacks=[TQDMNotebookCallback()], verbose=0) 176 177 embs = list(map(lambda x: x.get_weights()[0], [x for x in nnet.layers if 'Embedding' in str(x)]))

/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, kwargs) 64 def _method_wrapper(self, *args, *kwargs): 65 if not self._in_multi_worker_mode(): # pylint: disable=protected-access ---> 66 return method(self, args, kwargs) 67 68 # Running inside run_distribute_coordinator already.

/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing) 853 context.async_wait() 854 logs = tmp_logs # No error, now safe to assign to logs. --> 855 callbacks.on_train_batch_end(step, logs) 856 epoch_logs = copy.copy(logs) 857

/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/callbacks.py in on_train_batch_end(self, batch, logs) 388 if self._should_call_train_batch_hooks: 389 logs = self._process_logs(logs) --> 390 self._call_batch_hook(ModeKeys.TRAIN, 'end', batch, logs=logs) 391 392 def on_test_batch_begin(self, batch, logs=None):

/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/callbacks.py in _call_batch_hook(self, mode, hook, batch, logs) 296 for callback in self.callbacks: 297 batch_hook = getattr(callback, hook_name) --> 298 batch_hook(batch, logs) 299 self._delta_ts[hook_name].append(time.time() - t_before_callbacks) 300

/opt/conda/lib/python3.6/site-packages/tensorflow/python/keras/callbacks.py in on_train_batch_end(self, batch, logs) 613 """ 614 # For backwards compatibility. --> 615 self.on_batch_end(batch, logs=logs) 616 617 @doc_controls.for_subclass_implementers

/opt/conda/lib/python3.6/site-packages/keras_tqdm/tqdm_callback.py in on_batch_end(self, batch, logs) 115 self.inner_count += update 116 if self.inner_count < self.inner_total: --> 117 self.append_logs(logs) 118 metrics = self.format_metrics(self.running_logs) 119 desc = self.inner_description_update.format(epoch=self.epoch, metrics=metrics)

/opt/conda/lib/python3.6/site-packages/keras_tqdm/tqdm_callback.py in append_logs(self, logs) 134 135 def append_logs(self, logs): --> 136 metrics = self.params['metrics'] 137 for metric, value in six.iteritems(logs): 138 if metric in metrics:

KeyError: 'metrics'

br4in1 commented 4 years ago

I have the same problem

Dhananjay201 commented 4 years ago

Hey br4in1.I have found a solution to this problem.So the problem is with the packages versions !pip install tensorflow_addons==0.8.3 !pip install tqdm==4.41.1 !pip install keras==2.3.1 !pip install tensorflow==2.2.0

Use these versions and you'll be good to go Cheers!