Я запускаю Keras в Google Colab, и в течение последнего дня или около того я получаю сообщение об ошибке ниже, когда использую графический процессор.Работает нормально при использовании ускорения ТПУ.
Глядя на логи, вижу эту ошибку.Мне кажется, что CoLab не загружает нужную версию библиотеки, но я не думаю, что могу контролировать этот процесс.Что мне делать?
Спасибо !!
9 мая 2019 г., 21:21:08 ПРЕДУПРЕЖДЕНИЕ 2019-05-09 14: 21: 08.027926: E tenorflow / stream_executor/cuda/cuda_dnn.cc:324] Загруженная библиотека CuDNN времени выполнения: 7.3.1, но источник был скомпилирован с: 7.4.2.Основная и дополнительная версия библиотеки CuDNN должны совпадать или иметь более высокую младшую версию в случае CuDNN 7.0 или более поздней версии.Если вы используете двоичную установку, обновите библиотеку CuDNN.При сборке из исходных кодов убедитесь, что библиотека, загруженная во время выполнения, совместима с версией, указанной при настройке компиляции.
---------------------------------------------------------------------------
UnknownError Traceback (most recent call last)
<ipython-input-14-fc8da73d140a> in <module>()
19 [x_train, x_train_pos_enc], y_train, validation_split=0.2,
20 batch_size=batch_size,
---> 21 epochs=10, callbacks=callbacks, verbose=1)
22 endtime = time.time()
23 print(f'This took {endtime-starttime:.2f} seconds')
4 frames
/usr/local/lib/python3.6/dist-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, max_queue_size, workers, use_multiprocessing, **kwargs)
878 initial_epoch=initial_epoch,
879 steps_per_epoch=steps_per_epoch,
--> 880 validation_steps=validation_steps)
881
882 def evaluate(self,
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_arrays.py in model_iteration(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps, mode, validation_in_fit, **kwargs)
327
328 # Get outputs.
--> 329 batch_outs = f(ins_batch)
330 if not isinstance(batch_outs, list):
331 batch_outs = [batch_outs]
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py in __call__(self, inputs)
3074
3075 fetched = self._callable_fn(*array_vals,
-> 3076 run_metadata=self.run_metadata)
3077 self._call_fetch_callbacks(fetched[-len(self._fetches):])
3078 return nest.pack_sequence_as(self._outputs_structure,
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in __call__(self, *args, **kwargs)
1437 ret = tf_session.TF_SessionRunCallable(
1438 self._session._session, self._handle, args, status,
-> 1439 run_metadata_ptr)
1440 if run_metadata:
1441 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg)
526 None, None,
527 compat.as_text(c_api.TF_Message(self.status.status)),
--> 528 c_api.TF_GetCode(self.status.status))
529 # Delete the underlying status object from memory otherwise it stays alive
530 # as there is a reference to status from this from the traceback due to
UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
[[{{node conv1d/conv1d/Conv2D}}]]
[[{{node loss/dense_1_loss/broadcast_weights/assert_broadcastable/is_valid_shape/has_valid_nonscalar_shape/has_invalid_dims/concat}}]]