Я пытался запустить какой-нибудь простой код tensorflow-gpu
2.0 для выполнения свертки на изображении.У меня есть среда Anaconda ubuntu
18.04x64 с питоном 3.6.8.
Ошибка, по-видимому, заключается в том, что при установке tensorflow-gpu
Anaconda установит старую версию cudnn-7.3.1
в каталог пакетов для среды conda
.Tensorflow
использует эту старую версию cudnn
, и это вызывает ошибку cudnn
при запуске кода ниже.
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_sample_image
# Load sample images
china = load_sample_image("china.jpg") / 255
flower = load_sample_image("flower.jpg") / 255
images = np.array([china, flower])
batch_size, height, width, channels = images.shape
# Create 2 filters
filters = np.zeros(shape=(7, 7, channels, 2), dtype=np.float32)
filters[:, 3, :, 0] = 1 # vertical line
filters[3, :, :, 1] = 1 # horizontal line
outputs = tf.nn.conv2d(images, filters, strides=1, padding="SAME")
plt.imshow(outputs[0, :, :, 1], cmap="gray") # plot 1st image's 2nd feature map
plt.axis("off") # Not shown in the book
plt.show()
Я пытаюсь запустить этот код и получаю сообщение об ошибке, говорящее о
tensorflow/stream_executor/cuda/cuda_dnn.cc:328]
Loaded runtime CuDNN library: 7.3.1 but source was
compiled with: 7.4.2. CuDNN library major and
minor version needs to match or have higher minor
version in case of CuDNN 7.0 or later version. If
using a binary install, upgrade your CuDNN
библиотеке.При сборке из исходных кодов убедитесь, что библиотека, загруженная во время выполнения, совместима с версией, указанной при конфигурировании компиляции.
На самом деле на моем компьютере установлена cudnn
версия 7.6, так что это противоречиво cudnn
7.3.1определенно из Анаконды.Я искал в каталоге среды Anaconda «cudnn» и нашел все эти старые версии библиотеки.Существует также множество старых tensorflow
версий, хотя, похоже, они не вызывают каких-либо проблем.
Есть идеи, как решить эту проблему?Я могу буквально скопировать правильные cudnn.h
файлы и тому подобное, но я не уверен, что это будет лучшей идеей.Это может дестабилизировать мою систему, если некоторые символы изменились и т.д.Первый был об установке нескольких версий cuda
и cudnn
на компьютер - это не то, что я хотел бы сделать.Но в посте пользователь указывает, что Anaconda установила версию 7.3.1.
Как использовать новейшую версию 7.5 cudnn в среде conda?
ОБНОВЛЕНИЕ 2:
Я отправил сообщение о проблеме на githubдля этой проблемы Анаконде.В основном не получил ответа.Похоже, они неправильно истолковали проблему.Их ответ состоял в том, что они не поддерживают pip
установленные колеса для Tensorflow.Но я использовал менеджер пакетов conda
, чтобы установить тензор потока-2.0, поэтому кажется, что они неправильно истолковали проблему.Но это есть на GitHub.
https://github.com/conda/conda/issues/8736