CUDNN ERROR: कन्वेंशन एल्गोरिथम प्राप्त करने में विफल


1

मैं एक स्रोत संकलित Tensorflow निर्माण के साथ Keras पर कनवल्शन नेटवर्क चलाने में परेशानी हो रही है। मैं CUDA 10.0 और CuDNN 7.4 का उपयोग कर रहा हूं और दोनों को सही ढंग से संकलित किया गया है, जैसा कि उनके उदाहरण मेकफाइल्स द्वारा सत्यापित किया गया है। जब मुझे एक नेट नेट चलता है, लेकिन एक घना नेटवर्क नहीं है, तो मुझे ये त्रुटियां हो रही हैं:

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 conv2d_1/convolution}}]]
 [[metrics/acc/Mean/_169]]

मैंने अपने पथ पर सीधे CUDA और CuDNN को पथ जोड़ने की कोशिश की है, बिना किसी परिणाम के साथ TensorFlow को पुन: स्थापित करने और पुन: स्थापित करने का प्रयास किया है। परस्पर विरोधी संस्करणों के साथ कोई समस्या नहीं होनी चाहिए क्योंकि यह इस मशीन पर एक ताज़ा स्थापित है।

import keras
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, Dropout
from keras.datasets import mnist
import sys

def one_hot(data, num_categories):
    oh = np.zeros((len(data),num_categories))
    for i,entry in enumerate(data):
        oh[i, entry] = 1
    return oh


# import data
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# preprocess data
x_train = x_train.reshape( (60000,28,28,1) ) / 256
x_test = x_test.reshape( (10000,28,28,1) ) / 256
y_train = one_hot(y_train, 10)
y_test = one_hot(y_test, 10)

# build the model
model = Sequential()
input_shape=(28,28,1)
model.add(Conv2D(filters=32,
                 kernel_size=(3,3),
                 activation='relu',
                 input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2,2),
                       strides=(2,2)))
model.add(Conv2D(filters=32,
                 kernel_size=(3,3),
                 activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2),
                       strides=(2,2)))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(units=256,
                activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(units=10,
                activation='softmax'))

# load model weight

# compile model
model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
model.summary()

# train
num_epochs = 20
if num_epochs != 0:
    # train the model
    model.fit(x_train, y_train,
              batch_size=32,
              epochs=num_epochs)

# evaluate model
score = model.evaluate(x_test, y_test)
print('\nScore: ', score)

जो कोड मैं चला रहा हूं वह मेरे लैपटॉप पर पूरी तरह से काम करता है, जिसमें एक समर्पित जीपीयू नहीं है, लेकिन मैं CUDA / CuDNN को प्राप्त करने और इस डेस्कटॉप पर चलने का प्रयास कर रहा हूं। इस मुद्दे का निदान करने में कोई मदद काफी सराहना की जाएगी।

अद्यतन: ऐसा लगता है कि डिफ़ॉल्ट NCCL का उपयोग करने से संबंधित एक त्रुटि हो सकती है क्योंकि स्रोत से TF का निर्माण करते समय नवीनतम संस्करण के विपरीत। मैं सबसे हालिया एनसीसीएल के ओएस-अज्ञेय संस्करण को स्थापित करने का प्रयास कर रहा हूं। यह एक नई त्रुटि ला रहा है: ldconfig एनसीसीएल को सूचीबद्ध करता है, लेकिन यह लाइब्रेरी नहीं पा सकता है। यह मेरे लिए नवीनतम एनसीसीएल के साथ स्रोत से निर्माण करना असंभव बनाता है, इसलिए मैं यह नहीं देख सकता कि क्या यह मूल कारण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.