Keras 2.3 & TensorFlow 2

При обновлении до Keras >= 2.3 и Tensorflow >= 2.0 в старых многопоточных приложениях может начать выскакивать ошибка:

AttributeError: '_thread._local' object has no attribute 'value'

Решить ее можно заменив импорты

from keras import что_нужно

на

from tensorflow.keras import что_нужно

UPD: Если после обновления появилось вот такое:

Error : 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.

Весьма вероятно, что cuDNN теперь не подходит по версии для TensorFlow ибо старовата. Найти нужную версию можно тут.

UPD 2: При обновлении cuDNN еще можно заметить, что в официальной инструкции установки на linux из архива не указано, что после копирования нужно сделать симлинки на so’шники. Иначе после sudo ldconfig будет ошибка (далее, вместо библиотеки версии 7, подставьте свою):

/usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link

Т. е. надо:

$ cd /usr/local/cuda/lib64/

$ ls -lha libcudnn*
-rwxr-xr-x 1 root root 374M июн 13 04:27 libcudnn.so
-rwxr-xr-x 1 root root 374M июн 13 04:27 libcudnn.so.7
-rwxr-xr-x 1 root root 374M июн 13 04:27 libcudnn.so.7.6.5
-rw-r--r-- 1 root root 373M июн 13 04:27 libcudnn_static.a

$ sudo rm libcudnn.so libcudnn.so.7
$ sudo ln libcudnn.so.7.6.5 libcudnn.so.7
$ sudo ln libcudnn.so.7 libcudnn.so
$ sudo ldconfig
Поделиться
Отправить
 27   2020   Keras   TensorFlow   Лайфхак
Популярное