Tensorflow: Cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATUS_INTERNAL_ERROR

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рджрд┐рд╕ре░ 2018  ┬╖  181рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tensorflow/tensorflow

рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред рдЯреИрдЧ: Bug_template

рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрд╛рдирдХрд╛рд░реА

  • рдХреНрдпрд╛ рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ (TensorFlow рдореЗрдВ рджреА рдЧрдИ рд╕реНрдЯреЙрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд): рд╣рд╛рдБ рдФрд░ рдирд╣реАрдВ (рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИ)
  • рдУрдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рд╡рд┐рддрд░рдг (рдЬреИрд╕реЗ, рд▓рд┐рдирдХреНрд╕ рдЙрдмрдВрдЯреВ 16.04): рдордВрдЬрд╝рд░реЛ
  • рдпрджрд┐ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ (рдЬреИрд╕реЗ iPhone 8, рдкрд┐рдХреНрд╕реЗрд▓ 2, рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА):
  • TensorFlow (рд╕реНрд░реЛрдд рдпрд╛ рдмрд╛рдЗрдирд░реА) рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд: tf-nightly-gpu (рджрд┐рд╕рдореНрдмрд░ 19, r1.13)
  • TensorFlow рд╕рдВрд╕реНрдХрд░рдг (рдиреАрдЪреЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ): 1.13.0-dev20181219
  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.7.1
  • Bazel рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди):
  • рдЬреАрд╕реАрд╕реА / рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди):
  • CUDA / cuDNN рд╕рдВрд╕реНрдХрд░рдг: CUDA 10 cuDNN 7.4.1 рдХреЗ рд╕рд╛рде
  • GPU рдореЙрдбрд▓ рдФрд░ рдореЗрдореЛрд░реА: RTX 2070 8GB

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдореИрдВ MNN рдкрд░ CNN рдореЙрдбрд▓ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рдореИрдВ GPU рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореЗрд░рд╛ рд╕рд╛рдордирд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ
2018-12-20 20:09:13.644176: E tensorflow/stream_executor/cuda/cuda_dnn.cc:334] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

рдореИрдВрдиреЗ рдХреБрдЫ рдЦреБрджрд╛рдИ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдореЗрдореЛрд░реА рдЗрд╢реНрдпреВ рд╣реИ (рдЬреЛ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 32 рдЬреАрдмреА рдХреА рд░реИрдо рдФрд░ 64 рд╕реНрд╡реИрдк рдХреА рд╣реИред рдореИрдВ рдореЙрдбрд▓ рдЪрд▓рд╛рддреЗ рд╕рдордп htop рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ 20 + рдЬреАрдмреА рдореБрдлреНрдд рд╣реИ, рдЬреЛ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ 8GB vRAM рдореИрдкрд┐рдВрдЧ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

gpu_options.allow_growth = True рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЙрдбрд▓ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ os.environ['CUDA_VISIBLE_DEVICES'] = '-1' рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреИрд╕реЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, gpu_options.allow_growth = True рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ / рдореЙрдбрд▓ / рдЖрдзрд┐рдХрд╛рд░рд┐рдХ / mnist / рдореЙрдбрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб

import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import math
import time
# Killing optional CPU driver warnings
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
tf.logging.set_verbosity(tf.logging.ERROR)


class Model:

    def __init__(self, image, label):
        """
        A Model class contains a computational graph that classifies images
        to predictions. Each of its methods builds part of the graph
        on Model initialization. Do not modify the constructor, as doing so
        would break the autograder. You may, however, add class variables
        to use in your graph-building. e.g. learning rate, 

        image: the input image to the computational graph as a tensor
        label: the correct label of an image as a tensor
        prediction: the output prediction of the computational graph,
                    produced by self.forward_pass()
        optimize: the model's optimizing tensor produced by self.optimizer()
        loss: the model's loss produced by computing self.loss_function()
        accuracy: the model's prediction accuracy
        """
        self.image = image
        self.label = label

        # TO-DO: Add any class variables you want to use.

        self.prediction = self.forward_pass()
        self.loss = self.loss_function()
        self.optimize = self.optimizer()
        self.accuracy = self.accuracy_function()

    def forward_pass(self):
        """
        Predicts a label given an image using convolution layers

        :return: the prediction as a tensor
        """
        filter_1 = tf.Variable(tf.truncated_normal([3, 3, 1, 8], stddev=0.1))
        conv_1 = tf.nn.conv2d(self.image, filter_1, [1, 1, 1, 1], "SAME")

        reshaped = tf.reshape(conv_1, shape=[50, -1])

        L1 = reshaped.shape[1].value
        L2 = 500
        W1 = tf.Variable(tf.random_normal([L1, L2], mean=0, stddev=0.01))
        b1 = tf.Variable(tf.random_normal([L2], mean=0, stddev=0.01))
        relu_1 = tf.nn.relu(tf.matmul(reshaped, W1) + b1)

        W2 = tf.Variable(tf.random_normal([L2, 10], mean=0, stddev=0.01))
        b2 = tf.Variable(tf.random_normal([10], mean=0, stddev=0.01))
        logits = tf.nn.relu(tf.matmul(relu_1, W2) + b2)
        return logits

    def loss_function(self):
        """
        Calculates the model cross-entropy loss

        :return: the loss of the model as a tensor
        """
        loss = tf.losses.softmax_cross_entropy(onehot_labels=self.label, logits=self.prediction)
        return loss

    def optimizer(self):
        """
        Optimizes the model loss using an Adam Optimizer

        :return: the optimizer as a tensor
        """
        learning_rate = 0.1
        sgd = tf.train.GradientDescentOptimizer(learning_rate)
        train = sgd.minimize(self.loss)
        return train

    def accuracy_function(self):
        """
        Calculates the model's prediction accuracy by comparing
        predictions to correct labels тАУ no need to modify this

        :return: the accuracy of the model as a tensor
        """
        correct_prediction = tf.equal(tf.argmax(self.prediction, 1),
                                      tf.argmax(self.label, 1))
        return tf.reduce_mean(tf.cast(correct_prediction, tf.float32))


def main():
    t_start = time.time()

    mnist = input_data.read_data_sets("data/mnist/", one_hot=True)
    batch_sz = 50
    batch = 2000

    inputs = tf.placeholder(shape=[batch_sz, 28, 28, 1], dtype=tf.float32)
    labels = tf.placeholder(shape=[batch_sz, 10], dtype=tf.float32)

    model = Model(inputs, labels)

    session_config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True))
    sess = tf.Session(config=session_config)

    # sess = tf.Session()

    sess.run(tf.global_variables_initializer())
    for i in range(batch):
        next_image, next_label = mnist.train.next_batch(batch_sz)
        next_image = next_image.reshape((batch_sz, 28, 28, 1))
        sess.run(model.optimize, feed_dict={inputs: next_image, labels: next_label})

    acc, test_images, test_labels = 0, mnist.test.images, mnist.test.labels
    test_batch = math.ceil(len(test_images) / batch_sz)
    for i in range(test_batch):
        batch_images = test_images[i * batch_sz: (i + 1) * batch_sz]
        batch_images = batch_images.reshape((batch_sz, 28, 28, 1))
        batch_labes = test_labels[i * batch_sz: (i + 1) * batch_sz]
        acc += sess.run(model.accuracy, feed_dict={inputs: batch_images, labels: batch_labes})
    acc /= test_batch
    print(acc)

    print(time.time() - t_start, 'seconds')

    return


if __name__ == '__main__':
    main()

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рд╕рднреА 181 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдПрдХ рд╣реА GPU рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ: "CUDNN_STATUS_INTERNAL_ERROR"ред

RTX 2070 рдЬреАрдкреАрдпреВ
CUDA 10
cuDNN 7.4.2
рдЙрдмреБрдиреНрдЯреБ 18.04
tf-nightly-gpu (r1.13, 13 рдЬрдирд╡рд░реА)
рдЕрдЬрдЧрд░ 3.6.7

2019-01-15 05:01:03.503415: I tensorflow/stream_executor/platform/default/dso_loader.cc:154] successfully opened CUDA li
brary libcublas.so.10.0 locally
2019-01-15 05:01:03.752563: I tensorflow/stream_executor/platform/default/dso_loader.cc:154] successfully opened CUDA li
brary libcudnn.so.7 locally
2019-01-15 05:01:04.905618: E tensorflow/stream_executor/cuda/cuda_dnn.cc:493] Could not create cudnn handle: CUDNN_STAT
US_INTERNAL_ERROR
2019-01-15 05:01:04.908147: E tensorflow/stream_executor/cuda/cuda_dnn.cc:493] Could not create cudnn handle: CUDNN_STAT
US_INTERNAL_ERROR
2019-01-15 05:01:04.908191: W tensorflow/core/framework/op_kernel.cc:1412] OP_REQUIRES failed at conv_ops_fused.cc:801 :
 Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to se
e if a warning log message was printed above.

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

RTX2080 GPU
CUDA 10
cudnn 7.4.2

рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд tf рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА tf-nightly-gpu рдФрд░ рдПрдХ рд╕реНрд╡ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЧреБрд░реБ рд╕реЗ (060b6e32ad)ред
рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИред

CUDNN_LOGINFO_DBG = 1;
CUDNN_LOGDEST_DBG = stdout

рддрдм рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

I0117 14: 11: 24.441819 140433563125568 basic_session_run_hooks.py/94] 0t //mp/mnist/model.ckpt рдореЗрдВ 0 рдХреЗ рд▓рд┐рдП рдЪреМрдХрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ред
2019-01-17 14: 11: 25.916269: I рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ / рд╕реНрдЯреНрд░реАрдо_рдПрдХреНрд╕рдкреНрд▓рд┐рдХреЙрд░ / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо / рдбрд┐рдлрд╝реЙрд▓реНрдЯ / dso_loader.cc: 154] рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ CUDA рд▓рд╛рдЗрдмреНрд░реЗрд░реА libcublas.so.10.0 рдЦреЛрд▓рд╛ рдЧрдпрд╛

рдореИрдВ! CuDNN (v7402) рдлрд╝рдВрдХреНрд╢рди cudnnCreate () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдореИрдВ! рд╕рдордп: 2019-01-17T14: 11: 26.079184 (0d + 0h + 0m + 0s рдкреНрд░рд╛рд░рдВрдн рд╕реЗ)
рдореИрдВ! рдкреНрд░рдХреНрд░рд┐рдпрд╛ = 29255; рдзрд╛рдЧрд╛ = 29356; GPU = NULL; рд╕рдВрднрд╛рд▓ = рдкреВрд░рд╛; рд╕реНрдЯреНрд░реАрдордЖрдИрдб = NULLред

2019-01-17 14: 11: 26.079151: рдореИрдВ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ / рд╕реНрдЯреНрд░реАрдо_рдПрдХреНрд╕реЙрдЬрд╝рд┐рдЯрд░ / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо / рдбрд┐рдлрд╝реЙрд▓реНрдЯ / dso_loader.cc: 154] рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ CUDA рд▓рд╛рдЗрдмреНрд░реЗрд░реА libcudnn.so.7 рдЦреЛрд▓рд╛ рдЧрдпрд╛

рдореИрдВ! CuDNN (v7402) рдлрд╝рдВрдХреНрд╢рди cudnnCreate () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдореИрдВ! рд╕рдордп: 2019-01-17T14: 11: 26.571897 (0d + 0h + 0m + 0s рдкреНрд░рд╛рд░рдВрдн рд╕реЗ)
рдореИрдВ! рдкреНрд░рдХреНрд░рд┐рдпрд╛ = 29255; рдзрд╛рдЧрд╛ = 29356; GPU = NULL; рд╕рдВрднрд╛рд▓ = рдкреВрд░рд╛; рд╕реНрдЯреНрд░реАрдордЖрдИрдб = NULLред

2019-01-17 14: 11: 26.571858: рдИ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ / рд╕реНрдЯреНрд░реАрдо_рдПрдХреНрд╕рд▓реЗрдЯрд░ / рдХреВрдбрд╛ / cuda_dnn.cc: 493] cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATIN_INTERNAL_ERROR
2019-01-17 14: 11: 26.579375: рдИ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ / рд╕реНрдЯреНрд░реАрдо_рдПрдХреНрд╕рд▓реЗрдЯрд░ / рдХреВрдбрд╛ / cuda_dnn.cc: 493] cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATIN_INTERNAL_ERROR

рдореИрдВ! CuDNN (v7402) рдлрд╝рдВрдХреНрд╢рди cudnnCreate () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдореИрдВ! рд╕рдордп: 2019-01-17T14: 11: 26.579803 (0d + 0h + 0m + 0s рдкреНрд░рд╛рд░рдВрдн рд╕реЗ)
рдореИрдВ! рдкреНрд░рдХреНрд░рд┐рдпрд╛ = 29255; рдзрд╛рдЧрд╛ = 29356; GPU = NULL; рд╕рдВрднрд╛рд▓ = рдкреВрд░рд╛; рд╕реНрдЯреНрд░реАрдордЖрдИрдб = NULLред

2019-01-17 14: 11: 26.585818: рдИ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ / рд╕реНрдЯреНрд░реАрдо_рдПрдХреНрд╕рд▓реЗрдЯрд░ / рдХреВрдбрд╛ / cuda_dnn.cc: 493] cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATIN_INTERNAL_ERROR
2019-01-17 14: 11: 26.585850: W ./tensorflow/stream_executor/stream.h:2109] DNN рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ StreamExecutor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DNN рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 1335, _do_call рдореЗрдВ
рд╡рд╛рдкрд╕реА fn (* args)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 1320, _run_fn рдореЗрдВ
рд╡рд┐рдХрд▓реНрдк, feed_dict, fetch_list, target_list, run_metadata)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 1408, _call_tf_sessionrun рдореЗрдВ
run_metadata)
рдЯреЗрдВрд╕реЛрд░рдлрд╝реНрд▓реЛрдлрд╝реНрдереЛрди.рдлрд╝реНрд░рд╛рдорд╡рд░реНрдХ.errors_impl.UnognError: рдХрдирд╡рд┐рдХреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
[[{{рдиреЛрдб рдбрд┐рд╕реНрдХреНрд░рд┐рдорд┐рдиреЗрдЯрд░ рез / рдХрдиреНрд╡реЛрдХреЗрд╢рди / рдХрдиреНрд╡рд░реНрд╢рди реи}}]]
[[рдЯреНрд░реЗрди / рд╡рд┐рднреЗрджрдХ_рдЯреНрд░реЗрди / рдЯреНрд░реЗрди_рдк / рдирд┐рдпрдВрддреНрд░рдг_ рдирд┐рд░реНрднрд░рддрд╛ / _ релрем реп]]

рдЙрдкрд░реЛрдХреНрдд рдЕрдкрд╡рд╛рдж рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдФрд░ рдЕрдкрд╡рд╛рдж рд╣реБрдЖ:

рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "/home/dj/projects/gan/tf_models/research/gan/mnist/train.py", рдкрдВрдХреНрддрд┐ 151, рдореЗрдВ
tf.app.run ()
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/platform/app.py", рдкрдВрдХреНрддрд┐ 125, рд░рди рдореЗрдВ
_sys.exit (рдореБрдЦреНрдп (argv))
рдлрд╝рд╛рдЗрд▓ "/home/dj/projects/gan/tf_models/research/gan/mnist/train.py", рдкрдВрдХреНрддрд┐ 147, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
get_hooks_fn = tfgan.get_joint_train_hooks ())
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/gan/python/train.py", рдкрдВрдХреНрддрд┐ 1200, gan_train рдореЗрдВ
config = config)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/training/python/training/training.py", рдкрдВрдХреНрддрд┐ 546, рдЯреНрд░реЗрди рдореЗрдВ
loss = session.run (train_op, run_metadata = run_metadata)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", рд▓рд╛рдЗрди 693, рд░рди рдореЗрдВ
run_metadata = run_metadata)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", рдкрдВрдХреНрддрд┐ 1188, рд░рди рдореЗрдВ
run_metadata = run_metadata)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", рдкрдВрдХреНрддрд┐ 1287, рд░рди рдореЗрдВ
рдЫрд╣ рдЙрдард╛рдПрдБред рдореВрд▓ (рдореВрд▓_рдПрдХреНрд╕рд╕реА_рдЗрдиреНрдлреЛ




рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", рдкрдВрдХреНрддрд┐ 1336, рд░рди рдореЗрдВ
feed_dict, рд╡рд┐рдХрд▓реНрдк)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", рдкрдВрдХреНрддрд┐ 1362, _call_book_before_run рдореЗрдВ
рдЕрдиреБрд░реЛрдз = hook.before_run (run_context)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/gan/python/train.py", рдкрдВрдХреНрддрд┐ 1061, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ_рд░реБрди рдореЗрдВ
run_context.session.run (self._train_ops)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 930, рд░рди рдореЗрдВ
run_metadata_ptr)
рдлрд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 1153, _run рдореЗрдВ
feed_dict_tensor, рд╡рд┐рдХрд▓реНрдк, run_metadata)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 1329, _do_run рдореЗрдВ
run_metadata)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py", рдкрдВрдХреНрддрд┐ 1349, _do_call рдореЗрдВ
рдЙрдард╛рдирд╛ рдкреНрд░рдХрд╛рд░ (рдИ) (рдиреЛрдб_рдбреЗрдлрд╝, рдСрдк, рд╕рдВрджреЗрд╢)
рдЯреЗрдВрд╕реЛрд░рдлрд╝реНрд▓реЛрдлрд╝реНрдереЛрди.рдлрд╝реНрд░рд╛рдорд╡рд░реНрдХ.errors_impl.UnognError: рдХрдирд╡рд┐рдХреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
[[рдиреЛрдб Discriminator_1 / Conv / Conv2D (рдШрд░ / рдбреАрдЬреЗ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдЧрдг / tf_models / рдЕрдиреБрд╕рдВрдзрд╛рди / рдЧрдг / mnist / networks.py рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд: 152)]]
[[рдЯреНрд░реЗрди / рд╡рд┐рднреЗрджрдХ_рдЯреНрд░реЗрди / рдЯреНрд░реЗрди_рдк / рдирд┐рдпрдВрддреНрд░рдг_ рдирд┐рд░реНрднрд░рддрд╛ / _ релрем реп]]

рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдПрдХ рдЗрдирдкреБрдЯ рдСрдкрд░реЗрд╢рди рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдиреЛрдб рдбрд┐рд╕реНрдХреНрд░рд┐рдорд┐рдиреЗрдЯрд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдЗрдирдкреБрдЯ рд╕реЛрд░реНрд╕ рдСрдкрд░реЗрд╢рди
рдЖрджрд╛рдиреЛрдВ / рдмреИрдЪ / рдПрди (рдШрд░ / рдбреАрдЬреЗ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдЧрдг / tf_models / рдЕрдиреБрд╕рдВрдзрд╛рди / рдЧрдг / mnist / data_provider.py: 67 рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд)

'Discriminator_1 / Conv / Conv2D' рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕:
рдлрд╝рд╛рдЗрд▓ "рдШрд░ / рдбреАрдЬреЗ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдЧрдг / tf_models / рдЕрдиреБрд╕рдВрдзрд╛рди / рдЧрдг / mnist / train.py", рд▓рд╛рдЗрди 151, рдореЗрдВ
tf.app.run ()
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / python / platform / app.py", line 125, in run
_sys.exit (рдореБрдЦреНрдп (argv))
рдлрд╝рд╛рдЗрд▓ "рдШрд░ / рдбреАрдЬреЗ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдЧрдг / tf_models / рдЕрдиреБрд╕рдВрдзрд╛рди / рдЧрдг / mnist / train.py", рд▓рд╛рдЗрди 87, рдореБрдЦреНрдп рдореЗрдВ
[FLAGS.batch_size, FLAGS.noise_dims]))
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / contrib / gan / python / train.py", line 118, gan_model рдореЗрдВ
discriminator_real_outputs = discriminator_fn (real_data, рдЬрдирд░реЗрдЯрд░_inputs)
рдлрд╝рд╛рдЗрд▓ "рдШрд░ / рдбреАрдЬреЗ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдЧрдг / tf_models / рдЕрдиреБрд╕рдВрдзрд╛рди / рдЧрдг / mnist / networks.py", рд░реЗрдЦрд╛ 176, рдмрд┐рдирд╛ рд╢рд░реНрдд_рд╡рд┐рд╖рдпрдХ рдореЗрдВ
net = _discriminator_helper (img, рдЧрд▓рдд, рдХреЛрдИ рдирд╣реАрдВ, weight_decay)
рдлрд╝рд╛рдЗрд▓ "рдШрд░ / рдбреАрдЬреЗ / рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ / рдЧрдг / tf_models / рдЕрдиреБрд╕рдВрдзрд╛рди / рдЧрдг / mnist / networks.py", рдкрдВрдХреНрддрд┐ 152, _discriminator_helper рдореЗрдВ
рд╢реБрджреНрдз = рдкрд░рддреЗрдВ .conv2d (img, 64, [4, 4], рд╕реНрдЯреНрд░рд╛рдЗрдб = 2)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / contrib / рдврд╛рдВрдЪрд╛ / python / ops / arg_scope.py", рдкрдВрдХреНрддрд┐ 182, func_with_bgs рдореЗрдВ
рд╡рд╛рдкрд╕реА func ( args, * current_args)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / contrib / рдкрд░рддреЛрдВ / python / рдкрд░рддреЛрдВ / рдкрд░рддреЛрдВ", рдкрдВрдХреНрддрд┐ 1155, convolution2d рдореЗрдВ
conv_dims = 2)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / contrib / рдврд╛рдВрдЪрд╛ / python / ops / arg_scope.py", рдкрдВрдХреНрддрд┐ 182, func_with_bgs рдореЗрдВ
рд╡рд╛рдкрд╕реА func ( args, * current_args)
рдлрд╝рд╛рдЗрд▓ "usr / рд╕реНрдерд╛рдиреАрдп / lib / python3.6 / dist-package / tanorflow / contrib / рдкрд░рддреЛрдВ / python / рдкрд░рддреЛрдВ / рдкрд░рддреЛрдВ", рдкрдВрдХреНрддрд┐ 1058, рдореЗрдВ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк
рдЖрдЙрдЯрдкреБрдЯ = рд▓реЗрдпрд░ редapply (рдЗрдирдкреБрдЯреНрд╕)
рдлрд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / keras / engine / base_layer.py", рдкрдВрдХреНрддрд┐ 1228, рдЖрд╡реЗрджрди рдореЗрдВ
рд╕реНрд╡ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ .__ рдХреЙрд▓ __ (рдЗрдирдкреБрдЯреНрд╕, рдЖрд░реНрдЧреНрд╕, * рдХреНрд╡рд╛рд░реНрдЧреНрд╕)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / python / рдкрд░рддреЛрдВ / base.py", рдкрдВрдХреНрддрд┐ 531, __call__ рдореЗрдВ
рдЖрдЙрдЯрдкреБрдЯ = рд╕реБрдкрд░ (рдкрд░рдд, рд╕реНрд╡) .__ рдХреЙрд▓ __ (рдЗрдирдкреБрдЯреНрд╕, рдЖрд░реНрдЧреНрд╕, * рдХреНрд╡рд╛рд░реНрдЧреНрд╕)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / keras / engine / base_layer.py", рдкрдВрдХреНрддрд┐ 564, __call__ рдореЗрдВ
рдЖрдЙрдЯрдкреБрдЯ = self.call (рдЗрдирдкреБрдЯреНрд╕, рдЖрд░реНрдЧреНрд╕ , * рдХреНрд╡рд╛рд░реНрдЧреНрд╕)
рдлрд╝рд╛рдЗрд▓ "usr / рд╕реНрдерд╛рдиреАрдп / lib / python3.6 / dist-package / tanorflow / python / keras / рдкрд░рддреЛрдВ / convolutional.py", рдкрдВрдХреНрддрд┐ 196, рдХреЙрд▓ рдореЗрдВ
рдЖрдЙрдЯрдкреБрдЯ = self._convolution_op (рдЗрдирдкреБрдЯ, рд╕реНрд╡ред рдХрд░реНрдиреЗрд▓)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / ops / nn_ops.py", рдкрдВрдХреНрддрд┐ 966, __call__ рдореЗрдВ
рд╕реНрд╡ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ редconv_op (inp, рдлрд╝рд┐рд▓реНрдЯрд░)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / ops / nn_ops.py", рд▓рд╛рдЗрди 591, __call__ рдореЗрдВ
рд╕реНрд╡.рдкреЙрд▓ рд▓реМрдЯреЗрдВред (inp, рдлрд╝рд┐рд▓реНрдЯрд░)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / ops / nn_ops.py", рдкрдВрдХреНрддрд┐ 208, __call__ рдореЗрдВ
рдирд╛рдо = self.name)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / python / ops / nn_ops.py", рдкрдВрдХреНрддрд┐ 1578, conv2d рдореЗрдВ
рдирд╛рдо = рдирд╛рдо)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tanorflow / python / ops / gen_nn_ops.py", рдкрдВрдХреНрддрд┐ 1040, conv2d рдореЗрдВ
data_format = data_format, dilations = dilations, name = name)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / рдлреНрд░реЗрдорд╡рд░реНрдХ / op_def_library.py", рдкрдВрдХреНрддрд┐ 788, _apply_op_helper рдореЗрдВ
op_def = op_def)
рдлрд╝рд╛рдЗрд▓ "usr / local / lib / python3.6 / dist-package / tensorflow / python / рдЙрдкрдпреЛрдЧ / deprecation.py", рд▓рд╛рдЗрди 501, new_func рдореЗрдВ
рд╡рд╛рдкрд╕реА func ( args, * kwargs)
рдлрд╝рд╛рдЗрд▓ "usr / рд╕реНрдерд╛рдиреАрдп / lib / python3.6 / dist-package / tanorflow / python / рдлреНрд░реЗрдорд╡рд░реНрдХ / ops.py", рд▓рд╛рдЗрди 3300, create_op рдореЗрдВ
op_def = op_def)
рдлрд╝рд╛рдЗрд▓ "usr / рд╕реНрдерд╛рдиреАрдп / lib / python3.6 / dist-package / tanorflow / python / рдврд╛рдВрдЪрд╛ / ops.py", рдкрдВрдХреНрддрд┐ 1801, __in__ рдореЗрдВ
self._traceback = tf_stack.extract_stack ()

рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? рдореИрдВ рдЕрдкрдирд╛ рдкреВрд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реВрдВ :-(

рд╕реНрд░реЛрдд рд╕реЗ r1.13 рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░рд╛ рддрдп рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ (RTX 2060 рдкрд░, Ubuntu 18.04, Python 3.6.7, CUDA 10.0.130, cuDNN 7.4.2, Tensorflow 1.13.0-rc0 рд╕реНрд░реЛрдд рд╕реЗ)ред @ Va-andrew рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ allow_growth рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрд░рдЯреАрдПрдХреНрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдо рд╕рдорд╕реНрдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреНрдпреВрдбреАрдП 10.0 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирдП рдХрд╛рд░реНрдб рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЛ 1.13 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрди рдХрд╛рд░реНрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдХрд┐ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рддрд╣рдд рднреА рдЗрд╕рдХрд╛ рдЕрдиреБрднрд╡ рд╣реБрдЖ рд╣реИ:

  • Https://github.com/tensorflow/benchmark рд╕реЗ tf рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЪрд▓рд╛рдирд╛
  • RTX 2080
  • рдЙрдмреБрдиреНрдЯреБ 18.04
  • рд╕реАрдпреВрдбреАрдП 10.0
  • рдПрдирд╡реАрдбрд┐рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ 415.27
  • Tensorflow 1.13.0-dev20190125
  • CuDNN 7.4.2
  • рдЕрдЬрдЧрд░ рей

рд╕рдм рдХреБрдЫ рдХреЗ рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде Tensorflow Docker GPU рдХрдВрдЯреЗрдирд░ рдпрд╛ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╡реЗ рд░рд┐рдкреЛрд░реНрдЯ CUDNN_STATUS_INTERNAL_ERROR рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ segfault)ред

рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ, рдЪреАрдЬреЗрдВ Tensorflow v1.12 рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ!

рдФрд░ рджреВрд╕рд░реЛрдВ рдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, allow_growth рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдЪреАрдЬрд╝реЗрдВ рдареАрдХ рд╕реЗ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред

рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ред

  • RTX 2070
  • рдЙрдмреБрдиреНрдЯреБ 18.04
  • CUDNN 7.4.2 (рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднрд╛рдЧреНрдп рдХреЗ рдЕрдиреНрдп рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ)
  • Tensorflow 1.13.0-dev20190125 (Cuda 10 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд Tensorflow 1.12 рднреА рдЖрдЬрдорд╛рдпрд╛)

рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ, allow_growth = TRUE рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдЪреАрдЬрд╝реЗрдВ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрдиреЗ рд╣рд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрдВрдж рдХрд░рдирд╛ред рдзрдиреНрдпрд╡рд╛рдж!

@ymodak рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреАрдЖрд░ рдХрд╛ рд╕рдВрджрд░реНрдн

рдореИрдВ RTX 2080 рдкрд░ tf-nightly-gpu-2.0-preview рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реИ

рдПрдХ RTX2080 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛, рджреЛ рджрд┐рди recompiling рдФрд░ рдмрдЧ рд╢рд┐рдХрд╛рд░ рдмрд┐рддрд╛рдпрд╛ рдЬрдм рддрдХ рдореБрдЭреЗ рдпрд╣ рдареАрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
(allow_growth = рд╕рдЪреНрдЪреА рдмрд╛рдд рдЗрд╕реЗ рддрдп рдХрд░рддреА рд╣реИ)

рдЖрдкрдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдирд╛ рджрд┐рдпрд╛

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ allow_growth = true рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ? рдореЗрд░реЗ рдкрд╛рд╕ tf-nightly-gpu-2.0-рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╣реИ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХреА:

tf рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛
config = tf.ConfigProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = tf.Session (config = config, ...)

рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

рд╡рд┐рд╢реЗрд╖рддрд╛ рдЯреНрд░реЗрд╕реЗрдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо)
рдореЗрдВ()
1 рдЖрдпрд╛рдд tsorflow tf рдХреЗ рд░реВрдк рдореЗрдВ
----> 2 рд╡рд┐рдиреНрдпрд╛рд╕ = tf.ConfigProto ()

рдЧреБрдг: рдореЙрдбреНрдпреВрд▓ 'рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ' рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ 'рд╡рд┐рдиреНрдпрд╛рд╕'

рдореИрдВ рдЕрдиреБрдорд╛рд░реНрдЧрдг 2.0 рдореЗрдВ allow_growth рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдареАрдХ рд╣реИ, рдЗрд╕реЗ tf-nightly-gpu-2.0-рдкреНрд░реАрд╡реНрдпреВ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ ipython рдиреЛрдЯрдмреБрдХ рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛:

Tetorflow.compat.v1 рдЗрдВрдкреЛрд░реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдкреНрд░реЛрдЯреЛ рд╕реЗ
Tetorflow.compat.v1 рд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ

config = configProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ (рд╡рд┐рдиреНрдпрд╛рд╕ = рд╡рд┐рдиреНрдпрд╛рд╕)

рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛, gpu_options.allow_growth рдХреЗ рд╕рд╛рде = рд╕рд╣реА рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдХреА рдЧрдИред

@newhouseb рдЖрдкрдиреЗ рд╕рднреА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ / рдХрд╣рд╛рдБ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рдмрджрд▓рд╛рд╡ рдерд╛?

рдХреНрдпрд╛ рдХрдВрдмрд▓ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ?

рдПрдХ рдХрд╛рд░рдг рд╕реЗ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
https://www.tensorflow.org/guide/using_gpu#allowing_gpu_memory_growth

рдореЗрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ

рдореИрдВ рдЯреАрдПрдл рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬреАрдкреАрдпреВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреАрдкреАрдпреВ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реАрдорд┐рдд рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛ рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд╕реА ++ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

OOM рддреНрд░реБрдЯрд┐ рдореЗрдВ рдЕрдиреБрдорддрд┐ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЬреЛрдбрд╝рдирд╛ред

рдЗрд╕ рдХреЛрдб рдХреА рд░реЗрдЦрд╛ рдХреЗ рдмрд┐рдирд╛ рдореЙрдбрд▓ рдПрдХ рд╣реА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред

OOM рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде

options.config.mutable_gpu_options()->set_allow_growth(true);
options.config.mutable_gpu_options()->set_per_process_gpu_memory_fraction(fraction);

OOM рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛

//options.config.mutable_gpu_options()->set_allow_growth(true);
options.config.mutable_gpu_options()->set_per_process_gpu_memory_fraction(fraction);

рддреЛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ segfault рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

@ymodak рдпрд╣ рдмрдЧ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрдХреАрдирди, рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рдлрдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ рддреЛ allow_growth рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛ CUDNN_STATUS_INTERNAL_ERROR рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

@ymodak рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдмрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИ рдЗрд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдмрджрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдЖрд░рдЯреАрдПрдХреНрд╕ рдХрд╛рд░реНрдб рдкрд░ рдмреЙрдХреНрд╕_ рдХреЗ _out рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЗрди рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рднреА рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@samhodge рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдкрд░ рд╕реБрдЭрд╛рдП рдЧрдП config.gpu_options.per_process_gpu_memory_fraction = 0.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OOM рдХреЛ рдирд╣реАрдВ рд░реЛрдХ рд╕рдХрддреЗ?

рдореИрдВ рдЕрдкрдиреЗ RTX 2080 рдкрд░ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмреВрд▓рд┐рдпрди рд╣реИрдХ рд╕реЗ рднреНрд░рдорд┐рдд рд╣реВрдВ: рдХреНрдпрд╛ рдпрд╣ allow_growth = True рдПрдХ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдЕрдкрдиреЗ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордп рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ? (рд╕реНрдХреНрд░реАрди рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ GPU рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд)

рдореИрдВ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдХ рд╕реНрдерд┐рд░ рдПрдордПрд▓ рд╕реНрдЯреИрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЧрдбрд╝рдмрдбрд╝реА (рдмрдбрд╝реЗ рдЧреНрд░рд┐рдбрд╕рд░реНрдЪ, рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рд╡рд╛рд▓реЗ рдореЙрдбрд▓ рдЖрджрд┐) рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рдЕрднреА рддрдХ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдмрд╕ рдЗрд╕ рдмреВрд▓рд┐рдпрди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рдкрд╛рдпрд╛ рдерд╛ рдХрд┐ рдореИрдВ GPU RAM рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдорд╛рдкрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдореИрдВ 8Gb рдХрд╛рд░реНрдб рдкрд░ рд╣реВрдВ рдФрд░ 6Gb рд╕реНрд╡рддрдВрддреНрд░ рд╣реВрдВ рддреЛ рдореИрдВ 0.75 рдХреЗ рдЕрдВрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХрднреА-рдХрднреА рдПрдХ OOM рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ 0.95 * 0.75 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ OOM рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк Tensorflow рдХреЗ рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрднреА-рдХрднреА рд╕реАрдорд╛ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдУрдУрдПрдо рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдорд╛рдкрддрд╛ рд╣реВрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ GPU рдпрд╛ CPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

@samhodge рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ allow_growth рдмреВрд▓рд┐рдпрди рд╣реИрдХ рдПрдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдХреЛрдИ рдкреНрд░рдореБрдЦ GPU рдСрдкрд░реЗрд╢рди рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ tsorflow рджреНрд╡рд╛рд░рд╛ time_at_ (рдмреИрдЪ рдЖрдХрд╛рд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛) GPU рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рдУрд╡рд░рдлреНрд▓реЛ рдХрд░реЗрдВ ...?

рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рднреА GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

CUDA 10.0 / cuDNN 7.4.2.24/Nvidia рдбреНрд░рд╛рдЗрд╡рд░ 410 / Ubuntu 16.04 рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк рд╕реЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.13.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GTX 1050 рдкрд░ рдПрдХ рд╣реА рдЕрдВрдХ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдЕрднреА рднреА рдпрд╣рд╛рдБ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "config.gpu_options.allow_growth = True" рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред TF-gpu 1.14.1 рдФрд░ TF-gpu 2.0 рджреЛрдиреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИред RTX1070, CUDA 10.0, рдЙрдмрдВрдЯреВ 18.04, рдПрдирд╡реАрдбрд┐рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ 430.09ред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреА рдЬрд╛ рд░рд╣реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ (рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг) cuDNN рд╣реИрдВрдбрд▓ рдмрдирд╛рддреЗ рд╕рдордп GPU рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ TensorFlow рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рднреА рдореЗрдореЛрд░реА рд▓реЗ рд▓реА рд╣реИ (рдпрд╛ рддреЛ рдХреНрдпреЛрдВрдХрд┐ config.gpu_options.allow_growth = false, рдпрд╛ per_process_gpu_memory_fraction 1.0 рдХреЗ рдХрд░реАрдм рд╣реИ) рддреЛ cuDNN рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореЗрдореЛрд░реА рдирд╣реАрдВ рдмрдЪреА рд╣реИред

рдЖрдк nvprof рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ TensorFlow рдЪрд▓рд╛рдХрд░ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╕рдлрд▓ cuMemAlloc рдХреЙрд▓ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдЯреНрд░реЗрд╕ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ # 6698 рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреА рд╣реИред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдПрдХ cuDNN рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рдЙрдирдХреЗ CUDA рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред рдХреНрдпрд╛ рдЖрдк рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ CUDA 10 рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдкрд░ рдЖрдк CUDA 10 рдХреЗ рд▓рд┐рдП cuDNN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ cuDNN рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдорд╣рд╛рди рдореВрд░реНрдЦ рд╣реВрдБред TF2-nightly рдХреЛ рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╡реГрджреНрдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реА рдЧрдИрдВ, рдФрд░ рдпрд╣ рд╕рдм рдЕрдЪреНрдЫрд╛ рд╣реИред

рдХреЙрдирдбрд╛ рд╕реЗ рдХреНрдпреБрдбрд╛рдЯреБрд▓рдХрд┐рдЯ рдФрд░ рдХреБрдбрди рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛рдПрдВ?

рдЪреВрдВрдХрд┐ рдПрдирд╛рдХреЛрдВрдбрд╛-рд╢рд╛рдорд┐рд▓ (рдпрд╛ рдПрдореНрдмреЗрдбреЗрдб) cudnn рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рддреНрд░реБрдЯрд┐ рд╣реИ, рдореИрдВ рдХреЛрдВрдбрд╛-рд╕реНрдерд╛рдкрд┐рдд cudatoolkit рдФрд░ cudnn рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ Nvidia рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ CUDA рдФрд░ cudnn рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рддреНрд░реБрдЯрд┐: рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдореИрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ред
conda remove --name рдХреБрдбрд╛ - рд▓рдВрдмрд╛
conda remove --name cudnn --all

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд░рд╛рд╕реНрддреЗ рдореЗрдВ cudatoolkit-10.0.130-0 рдФрд░ cudnn-7.3.1-cuda10.0.0_0 рд╕рд╣рд┐рдд рджреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред

/home/anaconda3/pkgs/cudatoolkit-10.0.130-0
/home/anaconda3/pkgs/cudnn-7.3.1-cuda10.0.0_0

рдореИрдВ рдПрдирд╛рдХреЛрдВрдбрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ (рдпрд╛ рдПрдореНрдмреЗрдбреЗрдб) cuda рдФрд░ cudnn рдХреЛ рдХреИрд╕реЗ (рдпрд╛ рд╣рдЯрд╛) рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж,

рдорд╛рдЗрдХ

@ mikechen66 рдХреЛрдВрдбрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реИ? рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдХреНрдпреВрдбрд╛ рдФрд░ рдХреЙрдбреНрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдХреНрдпреЛрдВ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрджрд┐ рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдирд╛рдХреЛрдВрдбрд╛ рдХреЗ рдмрдЬрд╛рдп рдорд┐рдиреАрдХреЛрдиреНрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдорд┐рдирд┐рдХреЛрдВрдбрд╛ рдХреЗрд╡рд▓ рдХреЛрдВрдбрд╛ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдп tydlwav:

рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЧрддрддрд╛ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХреА рддрд╛рд░реАрдЦ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕рдВрдмрдВрдзрд┐рдд рджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рд╕рд░рд▓ MNIST рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдЪрд▓рд╛рдпрд╛ рдФрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдирд╛рдХреЛрдВрдбрд╛ 3 рднреА cudnn рдФрд░ TensorFlow рдХреЗ рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдпрд╣ рдПрдирд╛рдХреЛрдВрдбрд╛ 3 рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдирд╛рдХреЛрдВрдбрд╛ рд╕реЗ рд╣рд▓реНрдХреЗ рдХреВрдбрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреНрдпреВрдбрд╛ рдФрд░ рдХреБрдбрдирди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВред

  1. рд╕реНрдерд╛рдкрдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг

рдПрдирд╡реАрдбрд┐рдпрд╛ GeForce RTX 2060
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдбреНрд░рд╛рдЗрд╡рд░: NVIDIA-Linux-x86_64-415.27 (15 рдЬрдирд╡рд░реА, 2019)
1 рд╕рдВрд╕реНрдХрд░рдг рдЬреЛ RTX 2060 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
рдПрдирд╛рдХреЛрдВрдбрд╛ 3: рдПрдирд╛рдХреЛрдВрдбрд╛ 3-2019.03-Luxux-x86_64.sh (2019.04-04)
- рдХреБрдбрд╛рдЯреБрд▓рдХрд┐рдЯ -резрежud.рез.рейреж-0
- рдХреБрдбрди-7.3.1-cuda10.0.0_0
- рддреЗрдВрд╕реЛрд░рд▓реЛ резрей.рез
- рдЬреВрдкреНрдпреВрдЯрд░ рдиреЛрдЯрдмреБрдХ рдФрд░ рдЖрдИрдкрд╛рдЗрдХрд░реНрдирд▓
- Ananconda3 рджреНрд╡рд╛рд░рд╛ рдЖрдХреНрд░рдордг

  1. MNIST рдЯреЗрд╕реНрдЯ рдХреЛрдб:

рдЖрдпрд╛рдд рдХрд░реЗрд╕
keras.datasets рд╕реЗ mnist рдЖрдпрд╛рдд рдХрд░реЗрдВ
keras.models рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
keras.layers рд╕реЗ рдШрдиреЗ, рдбреНрд░реЙрдкрдЖрдЙрдЯ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
keras.layers рд╕реЗ Flatten, MaxPooling2D, Conv2D рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
keras.callbacks рд╕реЗ TensorBoard рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ

(X_train, y_train), (X_test, y_test) = mnist.load_pata ()

X_train = X_train.reshape (60000,28,28,1) .astype ('flo3232)
X_test = X_test.reshape (10000,28,28,1) .astype ('float32)

X_train / = 255
X_test / = 255

n_classes = 10
y_train = keras.utils.to_categorical (y_train, n_classes)
y_test = keras.utils.to_categorical (y_test, n_classes)

рдореЙрдбрд▓ = рдЕрдиреБрдХреНрд░рдорд┐рдХ ()
model.add (Conv2D (32, kernel_size = (3,3), рд╕рдХреНрд░рд┐рдпрдг = 'relu', input_shape = (28,28,1)))
model.add (Conv2D (64, kernel_size = (3,3), рд╕рдХреНрд░рд┐рдпрдг = 'relu'))
model.add (MaxPooling2D (pool_size = (2,2)))
model.add (рдбреНрд░реЙрдкрдЖрдЙрдЯ (0.25))
model.add (рд╕рдкрд╛рдЯ ())
model.add (рдШрдирд╛ (128, рд╕рдХреНрд░рд┐рдпрдг = 'рд░рд┐рд▓реЗ'))
model.add (рдбреНрд░реЙрдкрдЖрдЙрдЯ (0.5))
model.add (рдШрдирд╛ (n_classes, рд╕рдХреНрд░рд┐рдпрдг = 'рд╕реЙрдлреНрдЯрдореИрдХреНрд╕'))

model.compile (рд╣рд╛рдирд┐ = 'рд╢реНрд░реЗрдгреАрдмрджреНрдз_ рд╕рдХрд▓', рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ = 'рдПрдбреИрдо', рдореЗрдЯреНрд░рд┐рдХреНрд╕ = ['рд╕рдЯреАрдХрддрд╛'])

рдЯреЗрдВрд╕реЛрд░_рдмреЛрд░реНрдб = рдЯреЗрдиреНрд╕рд░рдмреЛрд░реНрдб ('./ рд▓реЙрдЧ / рд▓реЗрдиреЗрдЯ-рдПрдордПрдирдЖрдИрдПрд╕рдЯреА -1')

model.fit (X_train, y_train, рдмреИрдЪ_рд╕рд╛рдЗрдЬ = 128, рдпреБрдЧ = 15, рдХреНрд░рд┐рдпрд╛ = 1,)
validation_data = (X_test, y_test), рдХреЙрд▓рдмреИрдХ = [рдЯреИрдВрд╕рд░_рдмреЛрд░реНрдб])

  1. рдЖрдЙрдЯрдкреБрдЯ:

TensorFlow рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдЪреЗрддрд╛рд╡рдиреА: рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ : /home/mike/anaconda3/envs/tf-gpu/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ рдкреНрд░рд╡рд╛рд╣) рд╕реЗ ) рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢:
рдкреНрд▓реЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓реЛрдХреЗрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдиреА: рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ: /home/mike/anaconda3/envs/tf-gpu/lib/python3.7/site-packages/keras/backend/tensorn_backend.py:3445: рдХреЙрд▓рд┐рдВрдЧрдЖрдЙрдЯ рд╕реЗ (рдЯреЗрдирд╕реЛрд░рдлрд╝реНрд▓реЛрд╕реНрдЯреНрд░реЛрде.рдСрди .nn_ops) Keep_prob рдХреЗ рд╕рд╛рде рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢:
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ rate рдХреЗ рдмрдЬрд╛рдп keep_prob ред рджрд░ rate = 1 - keep_prob рд╕реЗрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЪреЗрддрд╛рд╡рдиреА: рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ : /home/mike/anaconda3/envs/tf-gpu/lib/python3.7/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tanorflow.python.ops.math_ops_ops/ ) рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢:
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп tf.cast рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
60000 рдирдореВрдиреЛрдВ рдкрд░ рдЯреНрд░реЗрди, 10000 рдирдореВрдиреЛрдВ рдкрд░ рдорд╛рдиреНрдп
рдпреБрдЧ рез/резрел

рдЕрдирдЬрд╛рдиреЗ рдЯреНрд░реИрд╕рд░рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо)
рдореЗрдВ
34
35 рдореЙрдбрд▓
---> 36 рд╕рддреНрдпрд╛рдкрди_рджрд╛рддрд╛ = (рдПрдХреНрд╕_рдЯреЗрд╕реНрдЯ, рд╡рд╛рдИ_рдЯреЗрд╕реНрдЯ), рдХреЙрд▓рдмреИрдХ = [рдЯреЗрдВрд╕реЛрд░_рдмреЛрд░реНрдб]]

~ / anaconda3 / envs / tf-gpu / lib / python3.7 / рд╕рд╛рдЗрдЯ-рд╕рдВрдХреБрд▓ / keras / рдЗрдВрдЬрди / рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдлрд┐рдЯ (рд╕реНрд╡, x, y, batch_size, рдпреБрдЧреЛрдВ, рдХреНрд░рд┐рдпрд╛рдУрдВ, рдХреЙрд▓рдмреИрдХ, рд╕рддреНрдпрд╛рдкрди_рдПрд╕рдкреАрдПрд▓рдЯреА, рд╕рддреНрдпрд╛рдкрди_рджрддрд╛, рдлреЗрд░рдмрджрд▓, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, ** kwargs)
1037 рдЖрд░рдВрднрд┐рдХ_рдкреЙрдЪ = рдЖрд░рдВрднрд┐рдХ_рдЪреЛрдЪ,
1038 рдЪрд░рдг_рдкрд░_рдкреЙрдЪ = рдЪрд░рдг_рдкрд░_рдкреБрдЫ,
-> 1039 рд╕рддреНрдпрд╛рдкрди_рд╕реНрдЯреЗрдк = рд╕рддреНрдпрд╛рдкрди_рд╕реНрдЯреЗрдкреНрд╕)
1040 рд╣реИ
1041 рдбреАрдИрдП рдореВрд▓реНрдпрд╛рдВрдХрди (рд╕реНрд╡рдпрдВ, x = рдХреЛрдИ рдирд╣реАрдВ, y = рдХреЛрдИ рдирд╣реАрдВ,

~ / anaconda3 / envs / tf-gpu / lib / python3.7 / site-package / keras / engine / training_arrays.py to fit_loop (рдореЙрдбрд▓, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins) рдлреЗрд░рдмрджрд▓, рдХреЙрд▓рдмреИрдХ_рдореЗрдЯреНрд░рд┐рдХреНрд╕, рдЖрд░рдВрднрд┐рдХ_рдкреЙрдЪ, рд╕реНрдЯреЗрдкреНрд╕_рдкрд░_рдкреНрд░реЛрдЪ, рд╕рддреНрдпрд╛рдкрди_рд╕реНрдЯреЗрдкреНрд╕)
197 ins_batch [i] = ins_batch [i] .toarray ()
198
-> 199 рдмрд╣рд┐ = f (ins_batch)
200 рдмрд╛рд╣рд░реА = to_list (рдмрд╛рд╣рд░реА)
201 for l, o in zip (out_labels, outs):

~ / anaconda3 / envs / tf-gpu / lib / python3.7 / рд╕рд╛рдЗрдЯ-рд╕рдВрдХреБрд▓ / keras / рдмреИрдХрдПрдВрдб / tanorflow_backend.py __call __ (рд╕реНрд╡рдпрдВ, рдЗрдирдкреБрдЯ)
2713 рд╕реНрд╡ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред
2714
-> 2715 рд╕реНрд╡ред
2716 рдФрд░:
2717 рдпрджрд┐ рдЗрдирдкреБрдЯ рдореЗрдВ x рдХреЗ рд▓рд┐рдП py_any (is_tensor (x)):

~ / anaconda3 / envs / tf-gpu / lib / python3.7 / рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ / рдХреЗрд░реЗрд╕ / рдмреИрдХрдПрдВрдб / tanorflow_backend.py_call (рд╕реНрд╡рдпрдВ, рдЗрдирдкреБрдЯ)
2673 рд▓рд╛рдпрд╛ рдЧрдпрд╛ = self._callable_fn ( array_vals, run_metadata = self.run_metatata)2674 рдФрд░:-> 2675 рдорд┐рд▓реЗ = рд╕реНрд╡ред
2676 рд▓реМрдЯреЗ [: len (self.outputs)]
2677

~ / anaconda3 / envs / tf-gpu / lib / python3.7 / рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ / рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ / рдкрд╛рдпрдерди / рдХреНрд▓рд╛рдЗрдВрдЯ / рд╕реЗрд╢рди __call __ (рд╕реНрд╡рдпрдВ, args, * kwargs) рдореЗрдВ
1437 рд░рд┐рдЯ = tf_session.TF_SessionRunCallable (
1438 self._session._session, self._handle, args, рд╕реНрдерд┐рддрд┐,
-> 1439 run_metadata_ptr)
1440 рдпрджрд┐ run_metadata:
1441 рдкреНрд░реЛрдЯреЛ_рдбрд╛рдЯрд╛ = tf_session.TF_GetBuffer (run_metadata_ptr)

~ / anaconda3 / envs / tf-gpu / lib / python3.7 / рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ / рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ / python / рдлреНрд░реЗрдорд╡рд░реНрдХ / рддреНрд░реБрдЯрд┐рдпрд╛рдБ_impl.py рдореЗрдВ __exit __ (рд╕реНрд╡рдпрдВ, type_arg, value_arg, рдЯреНрд░реЗрд╕рдмреИрдХ_arg)
526 рдХреЛрдИ рдирд╣реАрдВ, рдХреЛрдИ рдирд╣реАрдВ,
527 рдХрдВрдкреЗрдЯрд░реНрд╕ редas_text (c_api.TF_Message (self.status.status)),
-> 528 c_api.TF_GetCode (self.status.status))
529 # рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдерд┐рддрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдореГрддрд┐ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЬреАрд╡рд┐рдд рд░рд╣рддрд╛ рд╣реИ
530 # рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реЗрд╕рдмреИрдХ рд╕реЗ рдЗрд╕ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИ

UnknownError: рдХрдирд╡рд▓реНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
[[{{рдиреЛрдб conv2d_1 / рдХрдирд╡рд▓реНрд╢рди}}]]
[[{{рдиреЛрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ / рдПрд╕реАрд╕реА / рдореАрди}}]]

рд╣рд╛рдп tydlwav:

рдореИрдВ cuda рдФрд░ cudnn рджреЛрдиреЛрдВ рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрднреА рднреА рдПрдирд╛рдХреЛрдВрдбрд╛ 3 рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдЕрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдирд╛рдХреЛрдВрдбрд╛ 3 рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдЯрд┐рдирдо рдХреА рдореБрдЦреНрдп рдХреНрд╖рдорддрд╛ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рднреА рдмрдЧ рд╣реИред рдореИрдВ рдпрд╛ рддреЛ рд╕реНрд╡рддрдВрддреНрд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреНрдпреВрдбрд╛ (рдирд┐рд░рд╛рдзрд╛рд░ рдПрдирд╕реАрд╕реАрд╕реА) рдФрд░ рдХреБрдбрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдпрд╛ рдирдП рдХреЛрдбрд╛ рдпрд╛ рдХреБрдбрдирди рдХреЛ рдХреЛрдВрдбрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреВрдВрдЧрд╛ред

рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ рдЖрджреЗрд╢:

conda рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ

рдкреИрдХреЗрдЬ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдХрддреНрд░рд┐рдд рдХрд░рдирд╛: рдХрд┐рдпрд╛ рдЧрдпрд╛
рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╣рд▓: рдХрд┐рдпрд╛

рдкреИрдХреЗрдЬ рдпреЛрдЬрдирд╛

рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрдерд╛рди: / рдШрд░ / рдорд╛рдЗрдХ / anaconda3 / envs / tf-gpu

рд╣рдЯрд╛рдП рдЧрдП рдРрдирдХ:
- рдХреБрдбрд╛рдЯреБрд▓рдХрд┐рдЯ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬ рдпрд╛рдж рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:

cudatoolkit-10.0.130-0
cudnn-7.3.1-cuda10.0_0
рдХрдкрдЯреА- 10.0.130-0
рдХреЗрд░-2.2.4-0
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 1.13.1-gpu_py37hc158e3b_0
рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ-рдмреЗрд╕-1.13.1-gpu_py37h8d69cac_0
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ-1.13.1-h0d30ee6_0

рдЖрдЧреЗ рдмрдврд╝реЗрдВ ([y] / n)? рдп

рд▓реЗрдирджреЗрди рддреИрдпрд╛рд░ рдХрд░рдирд╛:
рд▓реЗрди-рджреЗрди рдХрд╛ рд╕рддреНрдпрд╛рдкрди: рдХрд┐рдпрд╛ рдЧрдпрд╛
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реЗрдирджреЗрди: рдХрд┐рдпрд╛ рдЧрдпрд╛

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:

рдЬрдм рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛, рддрдм рдЬреБрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ "рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ" рдирд╛рдо рдХрд╛ рдХреЛрдИ рдореИрдбреНрдпреВрд▓ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрд╕рдВрдмрджреНрдзрддрд╛ рд╕рдлрд▓ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреЛрдиреЛрдВ cudatoolkit рдФрд░ cudnn рдЕрднреА рднреА рдПрдирд╛рдХреЛрдВрдбрд╛ 3 рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрдЯрд┐рдирдо рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рджреЛрдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдЖрддрд╛ред

/home/anaconda3/pkgs/cudatoolkit-10.0.130-0
/home/anaconda3/pkgs/cudnn-7.3.1-cuda10.0.0_0

рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╣реА рдирд┐рдХрд╛рд▓ рдЪреБрдХреЗ рд╣реИрдВред pkgs рдХреА рдлрд╛рдЗрд▓реЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреЛрдВрдбрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдВред рдореИрдВ рдПрдХ RTX 2080, cuda 10.1, cudnn v7.5.1.10 рдФрд░ рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ 1.14 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХрд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╡рд┐рдХрд╛рд╕ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рдХрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдмреЗрдореЗрд▓ рд╣реИ?

рдХреНрдпрд╛ рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ 1.14 рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд┐рдХреНрд╕ рд╣реЛрдЧрд╛?

рдзрдиреНрдпрд╡рд╛рдж

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ RTX 20XX рдЯреНрдпреВрд░рд┐рдВрдЧ рд╢реНрд░реГрдВрдЦрд▓рд╛, рдЯреЗрдВрд╕реЛрд░рдлреНрд▓реЛ рдФрд░ рдПрдирд╛рдХреЛрдВрдбрд╛ рдХреЗ рдмреАрдЪ рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ RTX 20XX рд╢реНрд░реГрдВрдЦрд▓рд╛ cudnn 7.5.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, TensorFlow рдХреЗрд╡рд▓ cudnn 7.4 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдирд╛рдХреЛрдВрдбрд╛ рдореЗрдВ рдПрдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд 7.3.1 рд╢рд╛рдорд┐рд▓ рд╣реИ, рдпрд╣ рддреАрди рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреБрд▓ рдмреЗрдореЗрд▓ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, RTX 20XX рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ Ubuntu 16.04 LTS рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХрднреА-рдХрднреА, Ubuntu 16.04 рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдУрдПрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рджреЛ рдмреВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдпреВрдПрд╕рдмреА рд╕реНрдЯрд┐рдХ рд▓рд╛рдиреЗ рдкрдбрд╝реЗред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛ рдкреАрд╕реА рдХреЛ рдЙрдмрдВрдЯреВ 18.04 рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдФрд░ рдорд┐рдирд┐рдХреЛрдВрдбрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рддрдм рдореИрдВ рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрд╕реНрдХрд░рдг Tensorflow рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:

Nvidia рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ Jetson TX1 / TX2 рдФрд░ Jetson рдиреИрдиреЛ рдореЛрдмрд╛рдЗрд▓ GPU рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╕реНрдЯрдо Ubuntu 18.04 LTS рд╣реИред рдПрдирд╡реАрдбрд┐рдпрд╛ рдЕрдкрдиреЗ рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдЖрд░рдЯреАрдПрдХреНрд╕ 20XX рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЙрдмрдВрдЯреВ 18.04 рдПрд▓рдЯреАрдПрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдирд┐рдЪрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдЙрдмрдВрдЯреВ 20.04 рдХреЗ рд╕рд╛рдеред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреЙрдиреНрдЯрд┐рдирдо рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛ рдЖрд░рдЯреАрдПрдХреНрд╕ 20 рдПрдХреНрд╕рдПрдХреНрд╕ рдЯреНрдпреВрд░рд┐рдВрдЧ рд╕реАрд░реАрдЬрд╝ рдХреА рдЕрдкрдиреА рдЕрдкрдЧреНрд░реЗрдб рдпреЛрдЬрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

RTX рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЗрд╕ рд╕рдордп рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЧреИрд░-рдЙрдмрдВрдЯреВ рд╡рд┐рддрд░рдг рдкрд░ рдПрдХ рдХреЛрдВрдбрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ RTX 2070 рдХреЗ рд╕рд╛рде tf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред Cuda рдФрд░ cudnn рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдмрд╕ conda create -n tf python==3.6.8 рд╕рд╛рде рдПрдХ рдирдпрд╛ Python 3.6 рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ conda install tensorflow-gpu рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдорд╣рд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ Tensorflow 1.12.0 CUDA 10.0 рдФрд░ CUDNN 7.4.2.24 рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдореБрдЯреНрдареА рднрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде RTX рдХрд╛рд░реНрдбреНрд╕ рдХреЗ рд╕рд╛рде CNNN рдХреЗ рд╕рд╛рде GPU рдкрд░ cudnn рд╣реИред рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ CUDA 9.0 рдХреЗ рд▓рд┐рдП рдЧрд▓рдд CUDNN рдкреИрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рдВрд╕реНрдХрд░рдг RTX2080 рдФрд░ рдЕрдиреНрдп рдЯреНрдпреВрд░рд┐рдВрдЧ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдб рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ?

рд╣рд╛рдп tydlwav:

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдорд┐рдирд┐рдХреЛрдВрдбрд╛ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдЬрдЧрд░ рдФрд░ рдЯреЗрдВрд╕реЛрд░рдлрд╝реНрд▓реЛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рд╣реИ: рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдердо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ ......ред
рдХреГрдкрдпрд╛ рдХреЛрдИ рд╣рд▓ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВред

рдХреГрдкрдпрд╛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЪрд░рдг рджреЗрдЦреЗрдВред

  1. рдЕрдкрдиреЗ рдЧрд╛рдЗрдбрд▓рд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрдВрд╕реНрдЯрд╛рд▓ рдЕрдЬрдЧрд░ 3.6.8ред
    conda create -n tf python == 3.6.8

  2. рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ
    conda рд╕рдХреНрд░рд┐рдп tf

  3. рдЕрдкрдиреЗ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ tf рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
    рдХреЛрдВрдбрд╛ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ cudatoolkit рдФрд░ cudnn рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
тАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжред тАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжред
cudatoolkit pkgs / main / linux-64 :: cudatoolkit-10.0.130-0
cudnn pkgs / main / linux-64 :: cudnn-7.3.1-cuda10.0_0
тАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжред тАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжтАжред

  1. рд╡реЗрдмрдкреЗрдЬ рдкрд░ рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ, рдЖрдИрдкреАрдХреНрдпреБрд▓рд░ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

1)ред рдмреГрд╣рд╕реНрдкрддрд┐ рдиреЛрдЯрдмреБрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
conda jupyter рдиреЛрдЯрдмреБрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

реи)ред рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдИрдкрд╛рд░реНрдХрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
conda рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рей)ред Jupyter рдиреЛрдЯрдмреБрдХ рдХреЗ рд╡реЗрдмрдкреЗрдЬ рдореЗрдВ TensorFlow-GPU рдмрдирд╛рдПрдБ
python -m ipykernel install --user --name tf-gpu --display-name "TensorFlow-GPU"

  1. рдЬреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдЦреЛрд▓реЗрдВ
    1)ред jupyter рдиреЛрдЯрдмреБрдХ рд╡реЗрдмрдкреЗрдЬ рдореЗрдВ рдХрдорд╛рдВрдб
    рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ

реи)ред TensorFlow-GPU рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдореЗрдиреВ рдореЗрдВ "рдирдпрд╛" рдФрд░ "рдкреЗрдЬ рдореЗрдВ рдЯреЗрдВрд╕реЛрд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп, рд╕реЗрд▓ рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рд╡реЗрдмрдкреЗрдЬ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рд╡реЗрдмрдкреЗрдЬ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред
http: // localhost : 8888 / рдиреЛрдЯрдмреБрдХреНрд╕ / рдЕрдирдЯрд╛рдЗрдЯрд▓рдб 3.ipynb? рдХрд░реНрдиреЗрд▓_рдирд╛рдо = tf-gpu?

  1. рд╕рд░рд▓ MNIST рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдЪрд▓рд╛рдПрдБ

рдЖрдпрд╛рдд рдХрд░реЗрд╕
keras.datasets рд╕реЗ mnist рдЖрдпрд╛рдд рдХрд░реЗрдВ
keras.models рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
keras.layers рд╕реЗ рдШрдиреЗ, рдбреНрд░реЙрдкрдЖрдЙрдЯ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
keras.layers рд╕реЗ Flatten, MaxPooling2D, Conv2D рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
keras.callbacks рд╕реЗ TensorBoard рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ

(X_train, y_train), (X_test, y_test) = mnist.load_pata ()

X_train = X_train.reshape (60000,28,28,1) .astype ('flo3232)
X_test = X_test.reshape (10000,28,28,1) .astype ('float32)

X_train / = 255
X_test / = 255

n_classes = 10
y_train = keras.utils.to_categorical (y_train, n_classes)
y_test = keras.utils.to_categorical (y_test, n_classes)

рдореЙрдбрд▓ = рдЕрдиреБрдХреНрд░рдорд┐рдХ ()
model.add (Conv2D (32, kernel_size = (3,3), рд╕рдХреНрд░рд┐рдпрдг = 'relu', input_shape = (28,28,1)))
model.add (Conv2D (64, kernel_size = (3,3), рд╕рдХреНрд░рд┐рдпрдг = 'relu'))
model.add (MaxPooling2D (pool_size = (2,2)))
model.add (рдбреНрд░реЙрдкрдЖрдЙрдЯ (0.25))
model.add (рд╕рдкрд╛рдЯ ())
model.add (рдШрдирд╛ (128, рд╕рдХреНрд░рд┐рдпрдг = 'рд░рд┐рд▓реЗ'))
model.add (рдбреНрд░реЙрдкрдЖрдЙрдЯ (0.5))
model.add (рдШрдирд╛ (n_classes, рд╕рдХреНрд░рд┐рдпрдг = 'рд╕реЙрдлреНрдЯрдореИрдХреНрд╕'))

model.compile (рд╣рд╛рдирд┐ = 'рд╢реНрд░реЗрдгреАрдмрджреНрдз_ рд╕рдХрд▓', рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ = 'рдПрдбреИрдо', рдореЗрдЯреНрд░рд┐рдХреНрд╕ = ['рд╕рдЯреАрдХрддрд╛'])

рдЯреЗрдВрд╕реЛрд░_рдмреЛрд░реНрдб = рдЯреЗрдиреНрд╕рд░рдмреЛрд░реНрдб ('./ рд▓реЙрдЧ / рд▓реЗрдиреЗрдЯ-рдПрдордПрдирдЖрдИрдПрд╕рдЯреА -1')

model.fit (X_train, y_train, рдмреИрдЪ_рд╕рд╛рдЗрдЬ = 128, рдпреБрдЧ = 15, рдХреНрд░рд┐рдпрд╛ = 1,)
validation_data = (X_test, y_test), рдХреЙрд▓рдмреИрдХ = [рдЯреИрдВрд╕рд░_рдмреЛрд░реНрдб])

  1. рдкрд┐рдЫрд▓реЗ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рдорд╛рди рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ:

UnknownError: рдХрдирд╡рд▓реНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
[[{{рдиреЛрдб conv2d_1 / рдХрдирд╡рд▓реНрд╢рди}}]]
[[{{рдиреЛрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ / рдПрд╕реАрд╕реА / рдореАрди}}]]

рдзрдиреНрдпрд╡рд╛рдж,

рдорд╛рдЗрдХ

HI tydlwav:

рд╡реИрд╕реЗ, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХреЗрд░рд╕ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред
conda рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рдЪреВрдВрдХрд┐ рдХрднреА рд╕реНрдерд╛рдкрдирд╛ рд╕рд╣реА рд╣реИ, рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ Miniconda рдФрд░ RTX20XX рдЯреНрдпреВрд░рд┐рдВрдЧ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмреАрдЪ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдПрдирд╛рдХреЛрдВрдбрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдорд┐рдирд┐рдХреЛрдВрдбрд╛ рдФрд░ рдПрдирд╛рдХреЛрдВрдбрд╛ рдореЗрдВ рдХреНрдпреВрдбрди рдФрд░ рдХреНрдпреВрдбрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рди рд╣реИрдВред

рдпрд╣ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдореБрдЭреЗ рд▓рдЧрднрдЧ 10 рдФрд░ cudnn7.3 рдХреЛ рд▓рдЧрднрдЧ рдбреЗрдврд╝ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдХреЛрдВрдбрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рддрдм рд╕реЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ pytorch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╕рдордп рд╣реЛрдЧрд╛ред

рд╣рд╛рдп tydlwav:

рдореИрдВ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдкрд╛рдЗрдЯреЛрд░реЗрдХред рдЕрдм рдЬрдм Google рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.14 рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореИрдВ рдирд┐рдореНрди рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.14 рдХреЛ Google рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдирд┐рдХреЛрдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

Google рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ: https://www.tensorflow.org/install/source

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:

рдХреЙрдирдбрд╛ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ рд╣реИ рдЬреЛ 1.0.1 рд╕реЗ 1.13.1 рддрдХ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред рдмрд┐рд▓реНрдб рдЗрддрдиреЗ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рд▓реНрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Google TensorFlow рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Nvidia GeForce RTX 20XX (2060 ~ 2080) Truing рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝ рдирд╣реАрдВ рд╕рдХреЗред

рдЖрджреЗрд╢:
рдХреЛрдВрдбрд╛ рдЦреЛрдЬ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ

рдЪреИрдирд▓ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ: рдХрд┐рдпрд╛

рдирд╛рдо рд╕рдВрд╕реНрдХрд░рдг рдмрд┐рд▓реНрдб рдЪреИрдирд▓
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ- gpu 1.0.1 py27_4 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ- gpu 1.0.1 py35_4 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-gpu 1.0.1 py36_4 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.1.0 np111py27_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.1.0 np111py35_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.1.0 np111py36_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.1.0 np112py27_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.1.0 np112py35_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.1.0 np112py36_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py27cuda7.5cudnn5.1_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py27cuda7.5cudnn6.0_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py27cuda8.0cudnn5.1_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py27cuda8.0cudnn6.0_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py35cuda7.5cudnn5.1_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py35cuda7.5cudnn6.0_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py35cuda8.0cudnn5.1_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py35cuda8.0cudnn6.0_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py36cuda7.5cudnn5.1_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py36cuda7.5cudnn6.0_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py36cuda8.0cudnn5.1_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.2.1 py36cuda8.0cudnn6.0_0 pkgs / рдореБрдлреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.3.0 0 рдкреАрдХреЗрдЬреА / рдореБрдХреНрдд
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.4.1 0 pkgs / main
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.5.0 0 рдкреАрдХреЗрдЬреА / рдореБрдЦреНрдп
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.6.0 0 pkgs / main
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.7.0 0 рдкреАрдХреЗрдЬреА / рдореБрдЦреНрдп
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.8.0 h7b35bdc_0 pkgs / main
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.9.0 hf154084_0 pkgs / main
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.10.0 hf154084_0 pkgs / main
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.11.0 h0d30ee6_0 pkgs / main
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.12.0 h0d30ee6_0 pkgs / main
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.13.1 h0d30ee6_0 pkgs / main

рд╡реЗ рдкреБрд░рд╛рдиреЗ рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ RTX 2070 рдХреЗ рд╕рд╛рде tf 1.12 рдХреЗ conda рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдирдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрдорддреМрд░ рдкрд░ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ RTX рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЦреЗрд▓ рдореЗрдВ рдХреБрдЫ рдЕрдЬреАрдм рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдореБрджреНрджреЗ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЬреБрд▓рд╛рдИ рддрдХ рдЖрд░рдЯреАрдПрдХреНрд╕ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╕реНрд░реЛрдд рд╕реЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд░реНрдорд┐рдд tf рд╕реЗ рдХрд╛рдлрд┐рд▓реЗ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХрднреА рдЕрд╕рдлрд▓ рдирд╣реАрдВ рд░рд╣рд╛ (рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рд╕рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ)ред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдпрд╣ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рдХреЗ рд╡рд┐рддрд░рдг рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛ рд░реЗрдбрд┐рдЯ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рд▓реЛрдЧ рдЗрд╕реЗ рджреЗрдЦ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдВрдЧреЗред

рдЖрдкрдХрд╛ рдореБрджреНрджрд╛ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рд╣реИред

@chsigg рдЖрдк рдирд┐рджрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ w / CUDNN рд╣реИ рдЬреЛ рдХрд┐ GPU рдореЗрдореЛрд░реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдмрдВрдЯрд┐рдд рд╣реИ, рдореБрдЭреЗ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред рдмрд╕ per_process_gpu_memory_fraction=0.9 рдмрдЬрд╛рдп 0.95 рдХрд░рдирд╛ рдореЗрд░реЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ cuDNN рдХреЛ 7.6 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ред

tensorflow.python.framework.errors_impl.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

рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ: 1.13.1
рдХреВрдбрд╛: 10.0
CuDNN: 7.3.1

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреЗрдирдбреЛрдлрд╝реНрд▓реЛ рдФрд░ CuDNN рдХреЛрдирджрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
conda list cudnn

cudnn                     7.3.1                cuda10.0_0    anaconda

рдЪреАрдЬреЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдХреАрдВ:

  1. рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдВрдбрд╛ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛред
    conda remove tensorflow
  2. Conda cuDNN рдХреА рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ
    conda remove cudnn
  3. рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
    pip install tensorflow
  4. Https://developer.nvidia.com/cudnn рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд cuDNN 7.6 рд░рдирдЯрд╛рдЗрдо рдбрд┐рдмреЗрдЯ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  5. рдЗрд╕реЗ sudo dpkg -i libcudnn_xxxxx_amd64.deb рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

@nluehr рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА? рдХреНрдпрд╛ рд╣рдо MinSystemMemory () cuda / cudnn рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрд╡рдЧрдд рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдПрдХ рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐ рд╣реИ, рдпрджрд┐ tf.keras рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ
config = tf.ConfigProto ()
config.gpu_options.allow_growth = рд╕рдЪ
tf.keras.backend.set_session (tf.Session (config = config))

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднреА рднрд╛рдЧ рдЧрдпрд╛, рдФрд░ @ va-andrew рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ @colinsteidtmann рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛрдЕрд░.рдХреЗрдпрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рдХреЗрд╡рд▓ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (https://www.tensorflow.org/guide/use_gpu) рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЖрдк рдЗрд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ TF_FORCE_GPU_ALLP_GROWTH рдХреЛ рд╕рддреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рд╡реГрджреНрдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдпрд╣ рднреА рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП YMMV (Ubuntu 18.04 рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдореИрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВ:
Ubuntu 18.04.2 LTS, рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ GeForce RTX 2080 рдЯрд░реНрдмреЛ, NVIDIA рдбреНрд░рд╛рдЗрд╡рд░ 430.26, CUDA 10.0.130, cuDNN 7.4.2.24, рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.13.1, рдкрд╛рдпрдереЗ 3.6ред рдореИрдВ рд╕реНрдкрд╛рдЗрдбрд░ 3.3.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рднреАрддрд░ рд╕реЗ рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдПрдХ рджреВрд╕рд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЗ рдмрд╛рдж, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдЙрд╕ рдорд╢реАрди рдкрд░ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереАред рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдареАрдХ рдЙрд╕реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд╛рд▓рд╛ рдПрдХ рддреАрд╕рд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрд╕рдореЗрдВ 2080 рдХреЗ рдмрдЬрд╛рдп 2080 рддрд┐рд╡рд╛рд░реА рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗрдЯ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реАрдВ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░, рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рдерд╛ред

рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ CUDA, cuDNN рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХреБрдЫ рд╕рдВрдШрд░реНрд╖реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЗ рдореЙрдбрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ; рдореИрдВрдиреЗ рдХреЗрд╡рд▓ RTX 2060, 2070 рдФрд░ 2080 рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рджреЗрдЦрд╛ рд╣реИред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдЕрд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ cuDNN рдХреЛ 7.6 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ред

tensorflow.python.framework.errors_impl.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

рдЯреЗрдиреНрд╕рдлрд╝реНрд▓реЛрдлрд╝: 1.13.1
рдХреВрдбрд╛: 10.0
CuDNN: 7.3.1

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреЗрдирдбреЛрдлрд╝реНрд▓реЛ рдФрд░ CuDNN рдХреЛрдирджрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
conda list cudnn

cudnn                     7.3.1                cuda10.0_0    anaconda

рдЪреАрдЬреЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдХреАрдВ:

1. Uninstalled conda tensorflow.
   `conda remove tensorflow`

2. Uninstall conda cuDNN
   `conda remove cudnn`

3. Install tensorflow with pip
   `pip install tensorflow`

4. Download corresponding cuDNN 7.6 runtime deb file from https://developer.nvidia.com/cudnn

5. Install it with `sudo dpkg -i libcudnn7_-1+cuda9.0_amd64.deb`

@ alexforever86 рдЖрдкрдиреЗ рдЕрдкрдирд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ GPU рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ CPU рдирд╣реАрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ cuDNN рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг), рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк "рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ "рдкрд┐рдк рдЗрдВрд╕реНтАНрдЯреЙрд▓ рдЯреЗрдВрд╕реЛрд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд╣реАрдВ? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдк CUDA 10 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪреАрдмрджреНрдз cuDNN рдбрд┐рдмреЗрдЯ cuda9.0 рдХреЗ рд▓рд┐рдП рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдпрд╣ рд╕рдмреВрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ cuDNN 7.6 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред

@ synapse8 рдЖрдк рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-gpu рдФрд░ cuDNN рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВред рдореИрдВ рдЕрдм рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЕрдм рд╡рд┐рд╡рд░рдг рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рд╡реИрд╕реЗ рднреА, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВред

pip show tensorflow-gpu
рдирд╛рдо: рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ
рд╕рдВрд╕реНрдХрд░рдг: 1.13.1

nvidia-smi
NVIDIA-SMI 430.26 рдЪрд╛рд▓рдХ рд╕рдВрд╕реНрдХрд░рдг: 430.26 CUDA рд╕рдВрд╕реНрдХрд░рдг: 10.2

sudo apt search cudnn | grep installed
libcudnn7 / рдЕрдм 7.6.0.64-1 + cuda10.0 amd64

@ alexforever86 рдЕрдм рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрдк рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ? (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ cuda10, 410 рдбреНрд░рд╛рдЗрд╡рд░, 7.6 cudnn рдФрд░ TF-gpu 1.14 (рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

@ robzor92 рдореИрдВ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.13 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдореИрдВрдиреЗ рдЕрднреА рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1.14 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ (рдореЗрд░реЗ рд▓рд┐рдП)ред рдореИрдВ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЕрднреА рднреА 'рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВ' рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рдлрд┐рд░ рд╕реЗ, рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╕реМрджрд╛ рдирд╣реАрдВ)ред

рдЖрдк рдХрд┐рд╕ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@ synapse8 рдиреЗ GTX 1070 рдХреЗ рд╕рд╛рде

@ synapse8 рдореИрдВрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреНрд░рд┐рдПрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕реИрдВрдкрд▓ рдХреЛрдб рдХреЛ рдЕрднреА-рдЕрднреА рдЖрдЬрд╝рдорд╛рдпрд╛, рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ RTX рд▓рд╛рдЗрди рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ GTX 1050Ti рдкрд░ TF 1.13.1 рдХреЗ рд╕рд╛рде рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреА рдереАред рдЙрд╕реА рдбреНрд░рд╛рдЗрд╡рд░ / рдХреНрдпреВрдбрд╛ / рдХреЙрдбрди рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред

@ robzor92 рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ 1050Ti рдХреА рд╕рдорд╕реНрдпрд╛ рдЫреЛрдЯреЗ VRAM рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╣реИред RTX рдХрд╛рд░реНрдб рдЗрд╕рдХрд╛ рдореВрд▓ CNN MNIST рдореЙрдбрд▓ рдкрд░ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд░рд╡реАрдПрдХреНрд╕ рдХрд╛рд░реНрдбреЛрдВ рдкрд░ рд╡реАрдЖрд░рдПрдПрдо рдЖрд╡рдВрдЯрди рдХреА рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдХреА рдЯреНрд╡рд┐рдХрд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдореБрдЭреЗ рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ 1.14.0 рдФрд░ RTX2080 рдкрд░ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рддреНрд░реБрдЯрд┐ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдореИрдВ рдХрдирд╡рд▓реНрд╢рди рд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

2019-07-14 21:48:13.041683: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-07-14 21:48:13.064262: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3600000000 Hz
2019-07-14 21:48:13.064955: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55abe99bcd30 executing computations on platform Host. Devices:
2019-07-14 21:48:13.064967: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
2019-07-14 21:48:13.066219: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1
2019-07-14 21:48:13.153748: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-14 21:48:13.154195: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55abebb44f00 executing computations on platform CUDA. Devices:
2019-07-14 21:48:13.154207: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): GeForce RTX 2080, Compute Capability 7.5
2019-07-14 21:48:13.154317: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-14 21:48:13.154707: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties: 
name: GeForce RTX 2080 major: 7 minor: 5 memoryClockRate(GHz): 1.71
pciBusID: 0000:01:00.0
2019-07-14 21:48:13.154845: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.0
2019-07-14 21:48:13.155504: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcublas.so.10.0
2019-07-14 21:48:13.156112: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcufft.so.10.0
2019-07-14 21:48:13.156265: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcurand.so.10.0
2019-07-14 21:48:13.157040: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusolver.so.10.0
2019-07-14 21:48:13.157646: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusparse.so.10.0
2019-07-14 21:48:13.159661: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2019-07-14 21:48:13.159730: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-14 21:48:13.160165: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-14 21:48:13.160542: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0
2019-07-14 21:48:13.160559: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.0
2019-07-14 21:48:13.161120: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-07-14 21:48:13.161129: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0 
2019-07-14 21:48:13.161133: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N 
2019-07-14 21:48:13.161331: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-14 21:48:13.161730: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-14 21:48:13.162120: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6794 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080, pci bus id: 0000:01:00.0, compute capability: 7.5)
2019-07-14 21:48:13.497639: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2019-07-14 21:48:14.077729: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2019-07-14 21:48:14.080055: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    print(model.predict(test_inputs))
  File "/home/yudai/.local/share/virtualenvs/pipenv_practice-DKmRVcs4/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py", line 1078, in predict
    callbacks=callbacks)
  File "/home/yudai/.local/share/virtualenvs/pipenv_practice-DKmRVcs4/lib/python3.7/site-packages/tensorflow/python/keras/engine/training_arrays.py", line 363, in model_iteration
    batch_outs = f(ins_batch)
  File "/home/yudai/.local/share/virtualenvs/pipenv_practice-DKmRVcs4/lib/python3.7/site-packages/tensorflow/python/keras/backend.py", line 3292, in __call__
    run_metadata=self.run_metadata)
  File "/home/yudai/.local/share/virtualenvs/pipenv_practice-DKmRVcs4/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1458, in __call__
    run_metadata_ptr)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: 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/Conv2D}}]]
  (1) Unknown: 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/Conv2D}}]]
     [[flatten/Reshape/_7]]
0 successful operations.
0 derived errors ignored.

рдореИрдВрдиреЗ config.gpu_options.allow_growth = True рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░реЗред

рдзрдиреНрдпрд╡рд╛рджред

RTX 2070 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛

рдореИрдВрдиреЗ рдЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реИ:
рдореИрдВ рднреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ Failed to get convolution algorithm рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR ред
рд╕рд┐рд╕реНрдЯрдо: рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреНрд╡рд╛рдбреНрд░реЛ P2000, рдЙрдмрдВрдЯреВ 18.04, tf 1.13.1, cuda10, cudnn 7.4.2 рдХреЗ рд╕рд╛рде рд▓реИрдкрдЯреЙрдк рдорд╢реАрди
рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ allow_growth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред

рджрд┐рд▓рдЪрд╕реНрдк: рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИ tf.layers.conv... рд▓реЗрдХрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ tf.keras.layers.... рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП allow_growth , рдЗрд╕рд▓рд┐рдП keras рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдореЗрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ tf рдХреЛрдбред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рд╕реВрдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрд╕реЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП tf.layers рд╕реЗ рдЪрд┐рдкрдХреЗ рд╣реБрдП рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЪрд░ рд╕реНрдХреЛрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЖрд╕рд╛рди рд╡рдЬрди рд╕рд╛рдЭрд╛рдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХреЗрд░рд╕ рджреНрд╡рд╛рд░рд╛ рджреБ: рдЦрдж рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

@ DavidS3141 рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рдХрдирдлрд░реНрдореЗрд╢рди рд▓реЗрдпрд░ tf.layers рдФрд░ tf.keras.layers рджреЛрдиреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ...

рдЬрдм рдореИрдВ pytorch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ torch.cuda.is_available рд╕рддреНрдп рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдХрдирд╡рд▓реНрд╢рди рд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред

рдореИрдВ @ рд╣рдпрд╛рд╢реА-рдпреБрджрд╛рдИ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ: рдПрдордПрдХреНрд╕рдиреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдпрд╣реА рд╕рдЪ рд╣реИред рдЬрдм Tensorflow рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкрд╣рдЪрд╛рди рд╕рдВрдмрдВрдзреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╡рд╛рддрд╛рд╡рд░рдг:
RTX2080
рдЙрдмрдВрдЯреВ 18.10
рдЪрд╛рд▓рдХ 430.26
CUDA 10.0 (10.1 рднреА, рдЬреЛ рдЕрднреА рддрдХ TF рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ)
cuDNN 7.6.1
mxnet-cu100 1.4.1
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.14.0

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рдЕрдкрдиреЗ CSM рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП COCO рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ ResNet50 рдмреИрдХрдмреЛрди рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рд╕реЗ рд╡рдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ: рдЕрдЬреНрдЮрд╛рдд: рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред
--рдмреИрдЪ-рдЖрдХрд╛рд░ eps - рд╕реНрдЯреЗрдк реп - рдкреЗрдкреНрд╕ рек
--snapshot- рдкрд╛рде рд╕реНрдиреИрдкрд╢реЙрдЯ --tensorboard-dir рдЯреЗрдВрд╕рд░рдмреЛрд░реНрдб
csv рдбреЗрдЯрд╛рд╕реЗрдЯ / train.csv рдбреЗрдЯрд╛рд╕реЗрдЯ / classes.csvI рдиреЗ рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
рдЕрдЬрдЧрд░

рдЖрдпрд╛рдд рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ

Tetorflow.compat.v1 рдЗрдВрдкреЛрд░реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдкреНрд░реЛрдЯреЛ рд╕реЗ
Tetorflow.compat.v1 рд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
config = configProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ (рд╡рд┐рдиреНрдпрд╛рд╕ = рд╡рд┐рдиреНрдпрд╛рд╕)

рд╕рд╛рде рд╣реА рд╕рд╛рде
tf рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛
config = tf.ConfigProto ()
config.gpu_options.allow_growth = рд╕рдЪ
session = tf.Session (config = config) рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдореЗрд░реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдЙрдмрдВрдЯреВ 16.0
рдХреВрдбрд╛: 10.0
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ 1.14.0

рддреНрд░реБрдЯрд┐:
рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛрдлрд╝реНрдереЛрди.рдлрд╝реНрд░рд╛рдорд╡рд░реНрдХ.errors_impl.UnognError: 2 рд░реВрдЯ рддреНрд░реБрдЯрд┐ (s) рдорд┐рд▓реАрдВред тФВ | рдХреЛрдИ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА |
(0) рдЕрдЬреНрдЮрд╛рдд: рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА because + ------------------------------- ---------------------------------------------- +
рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред тФВ
[[{{рдиреЛрдб conv1 / conv}}]] conv
[[рдиреБрдХрд╕рд╛рди / рдЬреЛрдбрд╝ / _2377]] /
(1) рдЕрдЬреНрдЮрд╛рдд: рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА u
рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред тФВ
[[{{рдиреЛрдб conv1 / conv}}]] conv
0 рд╕рдлрд▓ рдСрдкрд░реЗрд╢рдиред тФВ
0 рд╡реНрдпреБрддреНрдкрдиреНрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ред тФВ
рдПрдХ рд╕рдХреНрд░рд┐рдп рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд┐рдирд╛ рдмреБрд▓рд╛рдпрд╛ рдЯрд░реНрдорд┐рдиреЗрдЯ
рдирд┐рд░рд╕реНрдд (рдХреЛрд░ рдбрдВрдк)
рдХрд┐рд╕реА рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ред Allow_growth рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА MNIST рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдорд┐рд▓рддреА рд╣реИред

рдпрд╣рд╛рдВ RTX2060 рдореЛрдмрд╛рдЗрд▓ред

рд╕рдорд╕реНрдпрд╛ r2.0 рд╢рд╛рдЦрд╛ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЯреАрдПрдл 1.4 рдХреЛ рдХреЛрдВрдбрд╛ (рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@ рд╣рдпрд╛рд╢реА-рдпреБрджрд╛рдИ

рдореИрдВрдиреЗ config.gpu_options.allow_growth = True рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рдЯреАрдХ рдЖрджреЗрд╢ рдХреНрдпрд╛ рдереЗ? рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЕрдЧрд░ рдпрд╣ рдЕрд▓рдЧ рд╣реИ ...

config = tf.ConfigProto ()
config.gpu_options.allow_growth = рд╕рдЪ
tf.keras.backend.set_session (tf.Session (config = config))

@ synapse8 рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдирддреАрдЬрд╛ рд╡рд╣реА рдирд┐рдХрд▓рд╛ред

рд╡реИрд╕реЗ, рдореИрдВрдиреЗ рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХрдЯрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ рдХрд┐ рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг 3.5 рд╣реИред
https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/running.html#running

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдЬрдЧрд░ 3.6.8 рдФрд░ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ 1.12.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдПрдирд╛рдХреЛрдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

conda create -n <virtual env name> python=3.6.8
conda install tensorflow-gpu==1.12.0
conda install cudnn==7.3.1    # By default, cudnn7.6 is installed but it causes the error

рдореИрдВрдиреЗ CUDA-10.1 рдФрд░ CUDNN-7.6.2.4 рдХреЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рднрд╡рди tf-2.0.0-beta1 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрдЯ рд╣реБрдИред

рдЖрдк рдпрд╣рд╛рдБ tf-gpu рдкреИрдХреЗрдЬ рдФрд░ tf- рдмреЗрд╕ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП docker рдЪрд┐рддреНрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
https://github.com/edowson/docker-tensorflow

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдПрдирд╛рдХреЛрдВрдбрд╛ рдЪреИрдирд▓ рдореЗрдВ cudnn==7.6.2 ред

рд╡рд┐рдВрдбреЛрдЬ 7, рдиреЗ рдПрдХ рдирдИ рдорд╢реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХрд╛рдлреА рджреЗрд░ рддрдХ Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR рджреАрд╡рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рдзрд░рд╛рд╢рд╛рдпреА рдХрд┐рдпрд╛ред

Reinstalls, рдЗрд╕ рдФрд░ рдЕрдиреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп cudnn64_7.dll рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг CUDNN_STATUS_INTERNAL_ERROR рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА, рдореИрдВрдиреЗ dll рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ред рддреНрд░реБрдЯрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп CUDNN NOT INSTALLED рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдереА, рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЦреЛрд▓ рджрд┐рдпрд╛ред

рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рдпрд╛ рдХреИрд╕реЗ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд░рддрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ tf.Session рдХреЛ рджреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ рдереА

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

# several lines of code later...

sess = tf.Session(config=config)

рд╢рд╛рдпрдж рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдмрд╕ "allow_growth = True" рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ
rtx 2080ti, ubuntu18.04, cuda9.0, cudnn7, tf1.9

config = tf.ConfigProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = tf.Session (рд╡рд┐рдиреНрдпрд╛рд╕ = рд╡рд┐рдиреНрдпрд╛рд╕)

рдпрд╣ cudnn рд╣реИрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП GPU рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рдЕрдВрд╢ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ per_process_gpu_memory_fraction рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдореЗрдореЛрд░реА рдЕрдВрд╢ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдХрдо рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред

> sess_config = tf.ConfigProto(gpu_options =
> tf.GPUOptions(per_process_gpu_memory_fraction=0.7),
> allow_soft_placement = True)
> 
> with tf.Session(config=sess_config) as sess:
>      sess.run([whatever])

рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдЕрдВрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред (рдХреЛрдб рдореЗрдВ, рдореИрдВ 0.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЖрдк 0.3 рдпрд╛ рдЙрд╕рд╕реЗ рднреА рдЫреЛрдЯреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрдм рддрдХ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рди рдорд┐рд▓реЗ, рдпрд╣ рдЖрдкрдХреА рд╕реАрдорд╛ рд╣реИред)
рдЗрд╕реЗ рдЕрдкрдиреЗ tf.Session() рдпрд╛ tf.train.MonitoredTrainingSession() рдпрд╛ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ sv.managed_session() рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░реЗрдВред

рдпрд╣ рдЖрдкрдХреЗ GPU рдХреЛ рдЖрдкрдХреЗ TensorFlow рдХреЛрдб рдХреЗ рд▓рд┐рдП cudnn рд╣реИрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдБ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TF 2.0 рдореЗрдВ рдирдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ:

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  # Currently, memory growth needs to be the same across GPUs
  try:
    for gpu in gpus:
      tf.config.experimental.set_memory_growth(gpu, True)
  except RuntimeError as e:
    print(e)

рдЗрд╕ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдФрд░ TF 2.0 RC1 рдХреЗ рд╕рд╛рде, рддреНрд░реБрдЯрд┐ рдЕрдм рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, 20XX рдПрдирд╡реАрдбрд┐рдпрд╛ рдЬреАрдкреАрдпреВ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреАрдПрдл 2.0 рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ред

рдореИрдВ TF1.4 рдкрд░ 1080Ti рдФрд░ TitanX рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ @ va-andrew рдФрд░ @oscarlinux рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдиреЗ рджрд┐рди рдмрдЪрд╛ рд▓рд┐рдпрд╛! рдЬреЛ рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╛рдЗрдЯреЛрд░рдЪ рдореЗрдВ рдХреНрдпреЛрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдХрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╡рд╣рд╛рдБ рдЕрднреА рднреА pf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ ppl рд╣реИрдВ .... рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрднреА рднреА рдЗрд╕ рджрд░реНрдж рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬрдм рднреА рдореИрдВ рдЙрдирдХреЗ рдХреЛрдбрдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ... рд╢рд╛рдпрдж рдпрд╣ ONNX рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдкреАрдЖрдИ рдФрд░ рдХреЛрдб рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИрдВред

рдЙрдмрдВрдЯреВ рез 18
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ 2.0
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-рдЬреАрдкреАрдпреВ реи.реж
GeForce RTX 2070

рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХреЛрдбред

import tensorflow as tf
config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.compat.v1.Session(config=config)

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред (TF-GPU 2.0, Windows 10, GeForce RTX 2070)

physical_devices = tf.config.experimental.list_physical_devices('GPU')
assert len(physical_devices) > 0, "Not enough GPU hardware devices available"
tf.config.experimental.set_memory_growth(physical_devices[0], True)

рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛рдкреЙрдЗрдВрдЯ рдЬреЛрдбрд╝реЗрдВ:
rtx 2080ti, ubuntu18.04, cuda10.0, cudnn7
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ tf1.14 рдФрд░ 1.15rc3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

@ w4nderlust , 1.14 рдФрд░ 1.15 рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рддреНрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд▓реНрдк config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдХреНрдпрд╛ рдЖрдк рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рд╕рд┐рд░реНрдл tf.config.experimental рддрдВрддреНрд░ рд╣реИ?

@ w4nderlust , 1.14 рдФрд░ 1.15 рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рддреНрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд▓реНрдк config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдХреНрдпрд╛ рдЖрдк рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рд╕рд┐рд░реНрдл tf.config.experimental рддрдВрддреНрд░ рд╣реИ?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ config.gpu_options.allow_growth = True рдмрд┐рдирд╛ рдпрд╣ рдЕрднреА рднреА 1.14 рдФрд░ 1.15rc3 рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ config.gpu_options.allow_growth = True рд╕реЗ рдмреЗрд╣рддрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛ред

рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП (_RTX 2070_, docker рдХреА рдЫрд╡рд┐ _tensorflow: 1.15.0-gpu-py3_), рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ _CUDNN_STATUS_INTERNAL_ERROR_ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЕрднреА рднреА рд╕рдВрдкреВрд░реНрдг GPU рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ ред
рдпрд╣ рдмрдбрд╝реЗ рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬреЛ allow_growth рдореЛрдб рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рддрдм рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдкреВрд░реА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред

RTX рдкрд░ рд╕рдВрдкреВрд░реНрдг рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
config.gpu_options.per_process_gpu_memory_fraction = 1.0

RTX рдкрд░ рд╕рдВрдкреВрд░реНрдг рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
config.gpu_options.per_process_gpu_memory_fraction = 1.0

@PoloShock
рдореИрдВрдиреЗ TF 2.0 рдХреЗ рд╕рд╛рде рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
Ubuntu18.04, RTX 2080, CUDA10, cudnn 7.6ред

TF 2.0 рдХреЗ рд▓рд┐рдП GPU рдореЗрдореЛрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

gpus = tf.config.experimental.list_physical_devices('GPU')

tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=1024)]

@nluehr рдХреНрдпрд╛ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХреЗрд╡рд▓ RTX рдкрд░ рдХреНрдпреЛрдВ

рдореЗрд░реЗ рд▓рд┐рдП рд╕реАрдзреЗ рдпрд╣ рдбреАрдмрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрд░рдЯреАрдПрдХреНрд╕ рдЬреАрдкреАрдпреВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

@sanjoy рдореИрдВ рдПрдХреАрдХреГрдд gpu рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред TensorFlow рдЪрд▓рд╛рддреЗ рд╕рдордп рдореЗрд░реЗ рдПрдХрд▓ RTX gpu рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдРрдк рдирд╣реАрдВред

рдореИрдВрдиреЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.0 рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

    config = tf.compat.v1.ConfigProto()
    config.gpu_options.allow_growth = True
    session = tf.compat.v1.Session(config=config)

рдпрд╣ рдореЗрд░реЗ rtx2080 рдкрд░ cudnn рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдореЗрд░реЗ 1050Ti рдЬрд┐рддрдирд╛ рддреЗрдЬрд╝ рд╣реИ!
рд╕реАрдПрдирдПрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреЗрддреЗ рд╕рдордп:

Tue Nov 12 19:22:35 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.26       Driver Version: 440.26       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2080    Off  | 00000000:2D:00.0 Off |                  N/A |
|  0%   37C    P2    75W / 265W |   2904MiB /  7979MiB |     27%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1026      G   /usr/lib/Xorg                                200MiB |
|    0      6420      G   cinnamon                                      43MiB |
|    0     21073      C   /home/clementpoiret/anaconda3/bin/python    2647MiB |
+-----------------------------------------------------------------------------+

рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=7000)]

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдмрд┐рдирд╛ allow_growth рдореБрдЭреЗ cudnn рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдФрд░ рд╡реИрд╕реЗ рднреА рдореЗрд░рд╛ RTX рдХреЗрд╡рд▓ 3Gb рдпрд╛ рдореЗрдореЛрд░реА рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреЛрдИ рдЙрдкрд╛рдп ?

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА

    gpus = tf.config.experimental.list_physical_devices('GPU')
    tf.config.experimental.set_memory_growth(gpus[0], True)
    tf.config.experimental.set_virtual_device_configuration(
        gpus[0],
        [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=7900)])

рд▓реЗрдХрд┐рди cudnn рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рд░рд╣рд╛ рд╣реИ

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ 1.15.0-py3-gpu Docker рдЫрд╡рд┐ (Ubuntu 18.04) рджреЛ рдЯрд╛рдЗрдЯрди V GPUs (@sanjoy) рдХреЗ рд╕рд╛рде - рдЖрд░рдЯреАрдПрдХреНрд╕ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рдореЗрд░реЗ GPU0 рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ GPU0 рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП Xorg рдФрд░ рд╕реВрдХреНрддрд┐-рд╢реИрд▓ рд╣реИ рдЬрдмрдХрд┐ GPU1 рдореЗрдВ рдХреЗрд╡рд▓ GPU рдореЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдЬрдЧрд░ рд╣реИ рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рднреА рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реИ - рдХрднреА-рдХрднреА рдореИрдВ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕реЗ рдЙрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рд╕рдорд╛рди рдХреЛрдб рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдКрдВрдЧрд╛, рдлрд┐рд░ рддреНрд░реБрдЯрд┐ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╛ рдирд╣реАрдВред

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЗрд░рд╕ рдмреИрдХрдПрдВрдб рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

import tensorflow as tf

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
allow_growth_session = tf.Session(config=config)
tf.keras.backend.set_session(allow_growth_session)

рджреЛрдиреЛрдВ GPU рдкрд░ рдореЗрд░реЗ nvidia-smi рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.26       Driver Version: 440.26       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN V             Off  | 00000000:01:00.0  On |                  N/A |
| 46%   63C    P2    51W / 250W |   7936MiB / 12065MiB |     31%      Default |
+-------------------------------+----------------------+----------------------+
|   1  TITAN V             Off  | 00000000:02:00.0 Off |                  N/A |
| 52%   70C    P2   131W / 250W |  12014MiB / 12066MiB |     60%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1564      G   /usr/lib/xorg/Xorg                            56MiB |
|    0      1607      G   /usr/bin/gnome-shell                          58MiB |
|    0      2428      G   /usr/lib/xorg/Xorg                           442MiB |
|    0      2574      G   /usr/bin/gnome-shell                         289MiB |
|    0      3292      G   ...p/pycharm-professional/167/jbr/bin/java    12MiB |
|    0      6794      G   anki                                          60MiB |
|    0     10336      G   /usr/lib/firefox/firefox                       6MiB |
|    0     16986      C   python                                      6981MiB |
|    1      4057      C   python                                     12001MiB |
+-----------------------------------------------------------------------------+

рдореИрдВ TF 2.0 conda рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд @clementpoiret рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред allow_growth рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рдмрд╣реБрдд рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЯреАрдПрдл 1.x рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛ рдЙрд╕рд╕реЗ рднреА рдзреАрдорд╛ ... рдПрдЧрд░ рдкрд╣рд▓реЗ рдЙрд╣?

@clementpoiret рдФрд░ @EKami, рдпрд╣ рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХреА рдЬрдЧрд╣ config.gpu_options.allow_growth = True рдХреЗ рд╕рд╛рде config.gpu_options.per_process_gpu_memory_fraction = 0.8 ? рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрдВрд╢ рдЖрдкрдХреЗ gpu рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

@ synapse8 рдореБрдЭреЗ ts.config.experimental рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.0 рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рди рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореЗрдореЛрд░реА рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рд░рд╣реА рд╣реИ:

import subprocess
import tensorflow as tf


def get_gpus_memory():
    """Get the max gpu memory.

    Returns
    -------
    usage: list
        Returns a list of total memory for each gpus.
    """
    result = subprocess.check_output([
        "nvidia-smi", "--query-gpu=memory.total",
        "--format=csv,nounits,noheader"
    ]).decode("utf-8")

    gpus_memory = [int(x) for x in result.strip().split("\n")]
    return gpus_memory


def setup_gpus(allow_growth=True, memory_fraction=.9):
    """Setup GPUs.

    Parameters:
    allow_growth (Boolean)
    memory_fraction (Float): Set maximum memory usage, with 1 using
        maximum memory
    """
    gpus = tf.config.experimental.list_physical_devices("GPU")
    if gpus:
        try:
            # Currently, memory growth needs to be the same across GPUs
            for i, gpu in enumerate(gpus):
                memory = get_gpus_memory()[i]

                tf.config.experimental.set_memory_growth(gpu, allow_growth)

                # Setting memory limit to max*fraction
                tf.config.experimental.set_virtual_device_configuration(
                    gpu, [
                        tf.config.experimental.VirtualDeviceConfiguration(
                            memory_limit=memory * memory_fraction)
                    ])

                logical_gpus = tf.config.experimental.list_logical_devices(
                    "GPU")
                print(len(gpus), "Physical GPUs,", len(logical_gpus),
                      "Logical GPUs")
        except RuntimeError as e:
            # Memory growth must be set before GPUs have been initialized
            print(e)

рдЗрд╕ рддрд░рд╣ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ setup_gpus(True, .9) рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@ рдХреНрд▓реЗрдореЗрдВрдЯрдкреЛрдЗрд░реЗрд░реНрдЯ : рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ tf.config.experimental.set_memory_growth рдХреЙрд▓ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ tf.config.experimental.set_virtual_device_configuration рдЙрд╕ рдЭрдВрдбреЗ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ GPU рдореЗрдореЛрд░реА рдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреЛ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ RTX рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдпрд╛ рдЯреАрдПрдл 2.0ред

рдЬреЛрдбрд╝рдирд╛:
_from tanorflow.compat.v1 рдЗрдВрдкреЛрд░реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдкреНрд░реЛ
Tetorflow.compat.v1 рд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
config = configProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ (config = config) _

"Cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATUS_INTERNAL_ERROR" рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

nvidia-smi | NVIDIA-SMI 430.50 Driver Version: 430.50 CUDA Version: 10.1 | | 0 GeForce GT 1030 | 49% 67C P0 N/A / 30W | 1957MiB / 2000MiB | 94%

python -c 'import tensorflow as tf; print(tf.__version__)' 1.14.0
рдпрд╣ NVIDIA рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХрддрдо рд╕рдиреНрдирд┐рд╣рд┐рдд рдмреНрд▓реЙрдХ рдЖрд╡рдВрдЯрди рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЬрд╣рд╛рдБ рдореЗрдореЛрд░реА рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдареАрдХ рд╣реИ?

рдирдорд╕реНрддреЗ,

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд░реВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рд╣рд╛рдереЛрдВ рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реИ?

рдПрдХ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ MinSystemMemory cuDNN рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдРрд╕рд╛ рд╕реЗрдЯрдЕрдк рд╡рд╛рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ MinSystemMemory рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓реЙрдЧрд┐рдВрдЧ (рд╕реНрдерд╛рдиреАрдп рдкреИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ) рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХреНрдпрд╛ рдЬрд╛рджреВ 0.05 рд╕рдВрдЦреНрдпрд╛ MinSystemMemory рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ?

@sanjoy рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ MinSystemMemory рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдпрд╛ "рдореИрдЬрд┐рдХ 0.05 рдирдВрдмрд░ рд╕реЗрдЯ рдХрд░рдиреЗ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдКрдБрдЧрд╛? рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП cuda 9.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред

@odinsbane рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рд╕реЗ TensorFlow рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рдиреАрдЪреЗ рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВред

рдкрд╣рд▓рд╛ рдХрджрдо LOG(INFO) рдпрд╛ std::cerr рд▓рд╛рдЗрдиреЛрдВ рдХреЛ MinSystemMemory available_memory рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ MinSystemMemory рд╕реЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдХреНрдпрд╛ available_memory nvidia-smi рдкреНрд░рд┐рдВрдЯ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ? рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА рд╕реНрдореГрддрд┐ рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ?

рджреВрд╕рд░реА рдмрд╛рдд, рдХреНрдпрд╛ 0.05 рдореИрдЬрд┐рдХ рдирдВрдмрд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╣рддреЗ рд╣реИрдВ, 0.07 рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдпрд╣ рдПрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

from keras.backend.tensorflow_backend import set_session
$ import tensorflow as tf
$ config = tf.ConfigProto()
$ config.gpu_options.allow_growth = True
$ config.log_device_placement = True
$ sess = tf.Session(config=config)
$ set_session(sess)

рд╣рдо рдЕрдкрдиреЗ RTX 2070 (Ubuntu 18.04, TF2) рдкрд░ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдордиреЗ CUDA 10.0 рдФрд░ libcudnn7.xxx рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
рдПрдХ рдЕрдиреНрдп рдорд╢реАрди рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ GTX 1080ti рд╣реИ рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЪрд▓рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛-рдЪрд╛рд▓рдХ 430.50 рд╣реИред

рдпрд╣ tf.keras.utils.plot_model рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рдмрд╛рд░ред
рдЕрдкрдбреЗрдЯ: рдореБрдЭреЗ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдорд┐рд▓рддрд╛ рд╣реИ рдЬрдм рдореИрдВ tf.keras.utils.plot_model рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд░рд╣реВрдБрдЧрд╛ред

============

рдореИрдВ Ubuntu 18.04.3 LTS, tf 1.15, cuda 10.0 рдкрд░ RTX 2080 Ti рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реИред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХрднреА-рдХрднрд╛рд░ рд╣реА рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рд╣реЛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдорд┐рдирдЯреЛрдВ рддрдХ рдЪрд▓реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рдмрд╕ рдЦреБрдж рд╣реА рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ ред

рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреЛрдИ рднреА рдЗрд╕реЗ рддреБрд░рдВрдд рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдмрд╕ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЛ, рдпрд╣ рдЕрдВрдд рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВрдиреЗ рднреА рдХреНрдпрд╛ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  1. ~/.nv рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рдХрд╛рд▓реЗрдВ
  2. рдмрд╕ рд░рд┐рдмреВрдЯ

FYI рдХрд░реЗрдВ, рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ

2019-12-21 14:47:30.785233: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2019-12-21 14:47:30.959825: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2019-12-21 14:47:31.722238: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2019-12-21 14:47:31.749524: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
Traceback (most recent call last):
  File "train_cifar.py", line 204, in <module>
    main()
  File "train_cifar.py", line 133, in main
    validation_data=(x_test, output_test), callbacks=callbacks, verbose=0)
  File "/home/xxx/anaconda3/envs/tf-1-gpu/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 727, in fit
    use_multiprocessing=use_multiprocessing)
  File "/home/xxx/anaconda3/envs/tf-1-gpu/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_generator.py", line 603, in fit
    steps_name='steps_per_epoch')
  File "/home/xxx/anaconda3/envs/tf-1-gpu/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_generator.py", line 265, in model_iteration
    batch_outs = batch_function(*batch_data)
  File "/home/xxx/anaconda3/envs/tf-1-gpu/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 1017, in train_on_batch
    outputs = self.train_function(ins)  # pylint: disable=not-callable
  File "/home/xxx/anaconda3/envs/tf-1-gpu/lib/python3.7/site-packages/tensorflow_core/python/keras/backend.py", line 3476, in __call__
    run_metadata=self.run_metadata)
  File "/home/xxx/anaconda3/envs/tf-1-gpu/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1472, in __call__
    run_metadata_ptr)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: 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 stem_layer/conv2d/Conv2D}}]]
     [[metrics/classifier_acc/Identity/_1749]]
  (1) Unknown: 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 stem_layer/conv2d/Conv2D}}]]
0 successful operations.
0 derived errors ignored.

рд╣рдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ

  • рдЙрдмрдВрдЯреВ 18.04.3 рдПрд▓рдЯреАрдПрд╕
  • RTX 2070
  • рдЕрдЬрдЧрд░ 3.7.1
  • tf-gpu 2.0.0
  • V10.0.130 CUDA
  • libcudn7 7.6.2

рддреНрд░реБрдЯрд┐ рддрдм рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЬрдм рдореИрдВ LSTM, GRU, RNN рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐

2019-12-23 16:09:00.912238: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2019-12-23 16:09:01.408990: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR 2019-12-23 16:09:01.409043: W tensorflow/core/framework/op_kernel.cc:1622] OP_REQUIRES failed at cudnn_rnn_ops.cc:1491 : Unknown: Fail to find the dnn implementation.

File "/home/alex/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/layers/recurrent_v2.py", line 961, in call **cudnn_lstm_kwargs) File "/home/alex/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/layers/recurrent_v2.py", line 1174, in cudnn_lstm rnn_mode='lstm') File "/home/alex/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/ops/gen_cudnn_rnn_ops.py", line 109, in cudnn_rnn ctx=_ctx) File "/home/alex/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/ops/gen_cudnn_rnn_ops.py", line 198, in cudnn_rnn_eager_fallback attrs=_attrs, ctx=_ctx, name=name) File "/home/alex/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py", line 67, in quick_execute six.raise_from(core._status_to_exception(e.code, message), None) File "<string>", line 3, in raise_from tensorflow.python.framework.errors_impl.UnknownError: Fail to find the dnn implementation. [Op:CudnnRNN]

рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛

рдЬреИрд╕рд╛ рдХрд┐ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рд╕рд╛рд░реА рдореЗрдореЛрд░реА рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИред рд╕рдорд╕реНрдпрд╛рдПрдБ рдХреЗрд╡рд▓ gpu рдореЛрдб рдореЗрдВ рдЖрддреА рд╣реИрдВ, рд╕рдорд╛рди рдХреЛрдб cpu рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдкрд░реАрдХреНрд╖рдгреЛрдВ

  • рд╕реНрдореГрддрд┐ рд╡реГрджреНрдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ
  • рд╕реАрдорд┐рдд рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдПрдВ

рджреЛрдиреЛрдВ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдордЬрд╝рдмреВрддреА рд╕реЗ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдЖрдк рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрд╣рд╛рдБ рдХреИрд╕реЗ рд╣реИ: https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -560963770, https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -561366750

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдордЬрд╝рдмреВрддреА рд╕реЗ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдЖрдк рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрд╣рд╛рдБ рдХреИрд╕реЗ рд╣реИ: # 24496 (рдЯрд┐рдкреНрдкрдгреА) , # 24496 (рдЯрд┐рдкреНрдкрдгреА)

рд╣рд╛рдп @sanjoy , рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреИрдпрд╛рд░ рд╣реВрдБ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рд╕реНрд░реЛрдд рд╕реЗ tf рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рдореЗрд░рд╛ рдирд┐рдЬреА рд▓реИрдкрдЯреЙрдк GPU рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рд╣рдореЗрдВ рдЬрд┐рд╕ рд▓реЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╣реИ?

рдореБрдЭреЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдирд┐рдореНрди рдХреЛрдб рдорд┐рд▓рд╛, рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

from tensorflow.contrib.memory_stats.python.ops.memory_stats_ops import BytesInUse
with tf.device('/device:GPU:0'):  # Replace with device you are interested in
  bytes_in_use = BytesInUse()
with tf.Session() as sess:
  print(sess.run(bytes_in_use))

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЬрд┐рд╕ рд▓реЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╣реИ?

рдореИрдВ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ VLOG рдХрдерди рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ tf-nightly (рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде, рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреМрди рд╕реЗ рд╣реИрдВ)?

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ pip рдпрд╛ conda рдФрд░ рдореИрдВ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ pip рдпрд╛ conda рдФрд░ рдореИрдВ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХреГрдкрдпрд╛ tf-рд░рд╛рдд (рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдКрдкрд░ рдЙрдард╛рддрд╛ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ рдХрд┐ рдкреНрд░рд╡реЗрд╢ рдХрд╣рддреЗ рд╣реИрдВ) рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреЗ TF_CPP_VMODULE рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ gpu_device=5 ? рдХрд┐ рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреА рддрд░рд╣ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

2019-12-26 12:07:37.196206: I tensorflow/core/common_runtime/gpu/gpu_device.cc:837] available_memory = 12319588352                                             
2019-12-26 12:07:37.196221: I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] min_system_memory = 615979417                                              

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрди рдирдВрдмрд░реЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдпрд╣рд╛рдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдХреЛрдб tf 2.0 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ (рдореИрдВ 1.15 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ), рдореИрдВ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рджреЗрдВред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ RTX2080 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк GTX1080 рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ RTX2080 рдиреЛрдЯрдмреБрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдВрдбрд╛ рдХреНрд▓реЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.0.0-gpu рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж Conv2d, LSTM, GRU рддрдм рдпрд╣ рдкрд░реЗрд╢рд╛рдиреА рдЖрддреА рд╣реИред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВ:
gpus = tf.config.experimental.list_physical_devices ('GPU')
рдЕрдЧрд░ gpus:
рдкреНрд░рдпрддреНрди:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдЬреАрдкреАрдпреВ рдореЗрдВ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП

    for gpu in gpus:
        tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:

рдЬреАрдкреАрдпреВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

    print(e)

рд▓реЗрдХрд┐рди рдХрдИ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рд╕реЗ, рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ

рдореБрдЭреЗ gtx 960m рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

рд╣рд╛рдп @sanjoy , рдореБрдЭреЗ рдЕрднреА рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рд╛ рд╣реИ:

2019-12-30 17:38:23.824323: I tensorflow/core/common_runtime/gpu/gpu_device.cc:837] available_memory = 10840309760
2019-12-30 17:38:23.824328: I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] min_system_memory = 542015488

рд╣рд╛рдп @sanjoy , рдореБрдЭреЗ рдЕрднреА рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рд╛ рд╣реИ:

2019-12-30 17:38:23.824323: I tensorflow/core/common_runtime/gpu/gpu_device.cc:837] available_memory = 10840309760
2019-12-30 17:38:23.824328: I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] min_system_memory = 542015488

рдзрдиреНрдпрд╡рд╛рдж!

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЙрддрдирд╛ рдирд╣реАрдВ рдерд╛ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рдХреНрд▓реИрдВрдк MinSystemMemory рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрдорд╛рдг рдкрд░ 542015488 (рдпрд╛рдиреА min_system_memory = std::min(min_system_memory, 542015488ll) ) resnet (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ cuDNN рд╕реЗ рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ ред

@sanjoy рдореИрдВ (рдЬреНрдпрд╛рджрд╛рддрд░ рд▓рдЧрд╛рддрд╛рд░) рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред

рдирд╡реАрдирддрдо рд░рд╛рддреНрд░рд┐ рдХреЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рдВрджреЗрд╢:

рд╕реНрдореГрддрд┐ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИ

2019-12-30 22:51:06.846774: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
WARNING:tensorflow:Falling back to tensorflow client, its recommended to install the cloud tpu client directly with pip install cloud-tpu-client .
2019-12-30 22:51:08.851660: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2019-12-30 22:51:08.877811: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties: 
pciBusID: 0000:08:00.0 name: GeForce GTX 1070 computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 15 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 238.66GiB/s
2019-12-30 22:51:08.887672: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2019-12-30 22:51:08.895277: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2019-12-30 22:51:08.906016: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2019-12-30 22:51:08.913767: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2019-12-30 22:51:08.921329: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2019-12-30 22:51:08.930208: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2019-12-30 22:51:08.941818: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2019-12-30 22:51:08.945713: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
TF GPU device: PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')



CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
Tensorflow Version: 2.1.0-dev20191230
Tensorflow_addons Version: 0.7.0-dev



Preparing data
Loading dataset
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 80/80 [00:03<00:00, 21.61it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 68/68 [00:00<00:00, 447.32it/s] 
Performing NLP
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 80/80 [00:00<00:00, 13332.71it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 68/68 [00:00<?, ?it/s] 
Transforming dataset
Generating primitives and constructing vocabulary
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 80/80 [00:00<00:00, 139.11it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 68/68 [00:00<00:00, 4249.86it/s] 
Encoding primitives
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 16654/16654 [00:00<00:00, 33640.74it/s]
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 805/805 [00:00<00:00, 33538.43it/s] 
2019-12-30 22:51:22.970554: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2019-12-30 22:51:22.977228: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties: 
pciBusID: 0000:08:00.0 name: GeForce GTX 1070 computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 15 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 238.66GiB/s
2019-12-30 22:51:22.983571: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2019-12-30 22:51:22.986832: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2019-12-30 22:51:22.990667: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2019-12-30 22:51:22.993801: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2019-12-30 22:51:22.996967: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2019-12-30 22:51:23.002629: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2019-12-30 22:51:23.006072: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2019-12-30 22:51:23.010482: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
2019-12-30 22:51:23.557556: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1087] TensorFlow compiled with CUDA 10.1 and cuDNN 7.6.5
2019-12-30 22:51:23.560870: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1099] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-12-30 22:51:23.564144: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1105]      0 
2019-12-30 22:51:23.569159: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1118] 0:   N
2019-12-30 22:51:23.571310: I tensorflow/core/common_runtime/gpu/gpu_device.cc:837] available_memory = 7038160076
2019-12-30 22:51:23.573861: I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] min_system_memory = 351908003
2019-12-30 22:51:23.576728: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1370] GPUDevice PlatformGpuId 0 TfGpuId 0 on bus 1 numa: 0 pci: 0000:08:00.0 DeviceLocality: bus_id: 1
links {
}

2019-12-30 22:51:23.583814: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1244] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6376 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:08:00.0, compute capability: 6.1)
2019-12-30 22:51:23.590034: I tensorflow/core/common_runtime/gpu/gpu_device.cc:249] Created stream[0] = 000002093BAB9860
2019-12-30 22:51:23.594885: I tensorflow/core/common_runtime/gpu/gpu_device.cc:268] Created host_to_device_stream[0] = 000002093BAB9360
2019-12-30 22:51:23.597951: I tensorflow/core/common_runtime/gpu/gpu_device.cc:273] Created device_to_host_stream[0] = 000002093BABA960
2019-12-30 22:51:23.600920: I tensorflow/core/common_runtime/gpu/gpu_device.cc:289] Created device_to_device_stream[0] = 000002093BAB8EE0

GPU рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛

2019-12-30 22:54:47.762913: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
WARNING:tensorflow:Falling back to tensorflow client, its recommended to install the cloud tpu client directly with pip install cloud-tpu-client .
2019-12-30 22:54:50.073199: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2019-12-30 22:54:50.100339: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties:
pciBusID: 0000:08:00.0 name: GeForce GTX 1070 computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 15 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 238.66GiB/s
2019-12-30 22:54:50.105836: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2019-12-30 22:54:50.115940: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2019-12-30 22:54:50.127341: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2019-12-30 22:54:50.131871: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2019-12-30 22:54:50.139786: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2019-12-30 22:54:50.144940: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2019-12-30 22:54:50.159197: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2019-12-30 22:54:50.162685: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
TF GPU device: PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')



CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
Tensorflow Version: 2.1.0-dev20191230
Tensorflow_addons Version: 0.7.0-dev



Preparing data
Loading dataset
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 80/80 [00:03<00:00, 21.71it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 68/68 [00:00<00:00, 433.07it/s] 
Performing NLP
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 80/80 [00:00<00:00, 13332.18it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 68/68 [00:00<?, ?it/s] 
Transforming dataset
Generating primitives and constructing vocabulary
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 80/80 [00:00<00:00, 140.34it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 68/68 [00:00<00:00, 4249.55it/s] 
Encoding primitives
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 16654/16654 [00:00<00:00, 33039.93it/s] 
100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 805/805 [00:00<00:00, 33537.43it/s] 
2019-12-30 22:55:04.084880: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2019-12-30 22:55:04.088867: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties:
pciBusID: 0000:08:00.0 name: GeForce GTX 1070 computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 15 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 238.66GiB/s
2019-12-30 22:55:04.094516: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2019-12-30 22:55:04.097049: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2019-12-30 22:55:04.099754: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2019-12-30 22:55:04.102329: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2019-12-30 22:55:04.105131: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2019-12-30 22:55:04.108029: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2019-12-30 22:55:04.110629: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2019-12-30 22:55:04.114339: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
2019-12-30 22:55:04.655119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1087] TensorFlow compiled with CUDA 10.1 and cuDNN 7.6.5
2019-12-30 22:55:04.658124: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1099] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-12-30 22:55:04.660826: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1105]      0
2019-12-30 22:55:04.662403: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1118] 0:   N
2019-12-30 22:55:04.664213: I tensorflow/core/common_runtime/gpu/gpu_device.cc:837] available_memory = 7038160076
2019-12-30 22:55:04.666185: I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] min_system_memory = 351908003
2019-12-30 22:55:04.668490: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1370] GPUDevice PlatformGpuId 0 TfGpuId 0 on bus 1 numa: 0 pci: 0000:08:00.0 DeviceLocality: bus_id: 1
links {
}

2019-12-30 22:55:04.672820: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1244] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6376 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:08:00.0, compute capability: 6.1)
2019-12-30 22:55:04.677690: I tensorflow/core/common_runtime/gpu/gpu_device.cc:249] Created stream[0] = 0000021EC0CF5840
2019-12-30 22:55:04.679747: I tensorflow/core/common_runtime/gpu/gpu_device.cc:268] Created host_to_device_stream[0] = 0000021EC0CF58C0
2019-12-30 22:55:04.682343: I tensorflow/core/common_runtime/gpu/gpu_device.cc:273] Created device_to_host_stream[0] = 0000021EC0CF5940
2019-12-30 22:55:04.685266: I tensorflow/core/common_runtime/gpu/gpu_device.cc:289] Created device_to_device_stream[0] = 0000021EC0CF59C0

EDIT: рдореЙрдбрд▓ рдХреА рдЬрд╛рдирдХрд╛рд░реА, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред

__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to
==================================================================================================
Feature_1 (InputLayer)          [(None, 150)]        0
__________________________________________________________________________________________________
Feature_2 (InputLayer)          [(None, 150)]        0
__________________________________________________________________________________________________
embedding (Embedding)           (None, 150, 64)      5632        Feature_1[0][0]
__________________________________________________________________________________________________
embedding_1 (Embedding)         (None, 150, 64)      2944        Feature_2[0][0]
__________________________________________________________________________________________________
bidirectional (Bidirectional)   (None, 150, 128)     66048       embedding[0][0]
__________________________________________________________________________________________________
bidirectional_1 (Bidirectional) (None, 150, 128)     66048       embedding_1[0][0]
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 150, 256)     0           bidirectional[0][0]
                                                                 bidirectional_1[0][0]
__________________________________________________________________________________________________
bidirectional_2 (Bidirectional) (None, 64)           73984       concatenate[0][0]
__________________________________________________________________________________________________
dense (Dense)                   (None, 32)           2080        bidirectional_2[0][0]
__________________________________________________________________________________________________
dense_1 (Dense)                 (None, 1)            33          dense[0][0]
==================================================================================================
Total params: 216,769
Trainable params: 216,769
Non-trainable params: 0

TF 1.15 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг, рдФрд░ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред RTX 2070 рдФрд░ NVIDIA 440.44 рдФрд░ CUDA рд╕рдВрд╕реНрдХрд░рдг 10.2 рдкрд░ред

import tensorflow as tf
import tensorflow.keras.applications as applications
import tensorflow.keras.utils as utils
import numpy as np

num_samples = 1000
height = 224
width = 224
num_classes = 1000

model = applications.ResNet50(weights=None, input_shape=(height, width, 3), classes=num_classes)

parallel_model = utils.multi_gpu_model(model, gpus=2, cpu_relocation=True)
parallel_model.compile(loss='categorical_crossentropy', optimizer='rmsprop')

x = np.random.random((num_samples, height, width, 3))
y = np.random.random((num_samples, num_classes))

parallel_model.fit(x, y, epochs=20, batch_size=256)

print('all done')
Train on 1000 samples
Epoch 1/20
2020-02-06 15:06:40.524918: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-02-06 15:06:41.291528: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-02-06 15:06:41.329183: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 822083584 exceeds 10% of system memory.
2020-02-06 15:06:42.082319: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 851705856 exceeds 10% of system memory.
2020-02-06 15:06:42.293092: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 822083584 exceeds 10% of system memory.
2020-02-06 15:06:43.173764: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 822083584 exceeds 10% of system memory.
2020-02-06 15:06:43.820074: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-02-06 15:06:44.390897: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 822083584 exceeds 10% of system memory.
2020-02-06 15:06:45.839525: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-02-06 15:06:45.856793: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-02-06 15:06:45.883423: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
Traceback (most recent call last):
  File "./test_tf.py", line 19, in <module>
    parallel_model.fit(x, y, epochs=20, batch_size=256)
  File "/nix/store/520352w3m8lyj2zgv647qfqrws5q798n-python3.7-tensorflow-gpu-1.15.0/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 727, in fit
    use_multiprocessing=use_multiprocessing)
  File "/nix/store/520352w3m8lyj2zgv647qfqrws5q798n-python3.7-tensorflow-gpu-1.15.0/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_arrays.py", line 675, in fit
    steps_name='steps_per_epoch')
  File "/nix/store/520352w3m8lyj2zgv647qfqrws5q798n-python3.7-tensorflow-gpu-1.15.0/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_arrays.py", line 394, in model_iteration
    batch_outs = f(ins_batch)
  File "/nix/store/520352w3m8lyj2zgv647qfqrws5q798n-python3.7-tensorflow-gpu-1.15.0/lib/python3.7/site-packages/tensorflow_core/python/keras/backend.py", line 3476, in __call__
    run_metadata=self.run_metadata)
  File "/nix/store/520352w3m8lyj2zgv647qfqrws5q798n-python3.7-tensorflow-gpu-1.15.0/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1472, in __call__
    run_metadata_ptr)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: 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 replica_1/resnet50/conv1_conv/Conv2D}}]]
  (1) Unknown: 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 replica_1/resnet50/conv1_conv/Conv2D}}]]
    [[training/RMSprop/gradients/gradients/Switch_482/_3893]]
0 successful operations.
1 derived errors ignored.

рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ https://github.com/tensorflow/tensorflow/issues/36501 рдХрд┐ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, GPU рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рднреА рдирд╣реАрдВ рд╣реИ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕рд▓рд┐рдП рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рдХрд▓реНрдк рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдХрд░рдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрд╕реА рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ 1.2 рдпрд╛ ... рдЬреИрд╕реЗ рдкреБрд░рд╛рдиреЗ рдЯреАрдПрдл рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рдерд╛ рдФрд░ рд╡реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХрд░рддреЗ рдереЗред

рдореБрдЭреЗ рдпрд╣рд╛рдБ рд╕рднреА рдХреЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ! рдЯреАрдПрдл 2.1 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдЬреАрдкреАрдпреВ рдореЗрдВ рдореЗрдореЛрд░реА рд╡реГрджреНрдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд░рд▓ рдПрдордПрдирдЖрдИрдПрд╕рдЯреА рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ 2080 ti рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдкреНрд░рдореБрдЦ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╢рдВрдХреБ CUDNN рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдмрд┐рдирд╛ tf 2.1 рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ-рдкреНрд░рд╛рдпрд┐рдХрддрд╛ рдХреЛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рдореЗрдВ рдореЗрдореЛрд░реА рд╡реГрджреНрдзрд┐ рдХреЛ рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ tf 2.0, CUDA 10.0 рдФрд░ CUDA 10.1, рд╡рд┐рднрд┐рдиреНрди CUDNN рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдореИрдВ рдЕрдкрдиреЗ ubuntu рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ MNIST рдЙрджрд╛рд╣рд░рдг рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рд╕рдВрднрд╛рд╡рдирд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВред рдореИрдВрдиреЗ рдЕрдВрддрддрдГ рдПрдХ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╛рддреНрд░рд┐рдХрд╛рд▓реАрди рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрднреА рднреА рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рд╕рдВрднрд╛рд╡рдирд╛ (рдЯреАрдПрдл 2.2 рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рд╕реАрдкреАрдпреВ рдкрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред рдореИрдВрдиреЗ 1080 ti рд╡рд╛рд▓реА рдорд╢реАрди рдкрд░ рдПрдХ рд╣реА docker рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RTX рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред

tf рдбреЙрдХрдЯрд░ рдФрд░ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдкреНрд░рд╛рдпрд┐рдХрддрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд cudnn рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА:

TF VERSION: 2.2.0-dev20200208
2020-02-11 08:51:05.891560: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-02-11 08:51:05.912465: I tensorflow/core/platform/profile_utils/cpu_utils.cc:102] CPU Frequency: 3696000000 Hz
2020-02-11 08:51:05.913040: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x57b1fd0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-02-11 08:51:05.913052: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-02-11 08:51:05.914414: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-02-11 08:51:05.975016: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.975364: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5679220 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2020-02-11 08:51:05.975376: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): GeForce RTX 2080 Ti, Compute Capability 7.5
2020-02-11 08:51:05.975477: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.975744: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2080 Ti computeCapability: 7.5
coreClock: 1.545GHz coreCount: 68 deviceMemorySize: 10.75GiB deviceMemoryBandwidth: 573.69GiB/s
2020-02-11 08:51:05.975865: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-02-11 08:51:05.976745: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-02-11 08:51:05.977582: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-02-11 08:51:05.977722: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-02-11 08:51:05.978636: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-02-11 08:51:05.979165: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-02-11 08:51:05.981150: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-02-11 08:51:05.981216: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.981528: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.981792: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
2020-02-11 08:51:05.981812: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-02-11 08:51:05.982323: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1099] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-02-11 08:51:05.982331: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1105]      0 
2020-02-11 08:51:05.982335: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1118] 0:   N 
2020-02-11 08:51:05.982395: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.982687: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.982959: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1244] Created TensorFlow device (/device:GPU:0 with 9604 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:01:00.0, compute capability: 7.5)
2020-02-11 08:51:05.983594: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.983864: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2080 Ti computeCapability: 7.5
coreClock: 1.545GHz coreCount: 68 deviceMemorySize: 10.75GiB deviceMemoryBandwidth: 573.69GiB/s
2020-02-11 08:51:05.983881: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-02-11 08:51:05.983889: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-02-11 08:51:05.983896: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-02-11 08:51:05.983904: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-02-11 08:51:05.983912: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-02-11 08:51:05.983920: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-02-11 08:51:05.983928: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-02-11 08:51:05.983961: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.984238: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.984497: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
2020-02-11 08:51:05.984508: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1099] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-02-11 08:51:05.984512: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1105]      0 
2020-02-11 08:51:05.984516: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1118] 0:   N 
2020-02-11 08:51:05.984563: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.984842: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.985099: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1244] Created TensorFlow device (/device:GPU:0 with 9604 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:01:00.0, compute capability: 7.5)
SUCCESS: Found GPU: /device:GPU:0
2020-02-11 08:51:05.989382: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.989649: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2080 Ti computeCapability: 7.5
coreClock: 1.545GHz coreCount: 68 deviceMemorySize: 10.75GiB deviceMemoryBandwidth: 573.69GiB/s
2020-02-11 08:51:05.989663: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-02-11 08:51:05.989671: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-02-11 08:51:05.989678: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-02-11 08:51:05.989684: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-02-11 08:51:05.989691: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-02-11 08:51:05.989700: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-02-11 08:51:05.989709: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-02-11 08:51:05.989744: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.990021: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.990347: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
2020-02-11 08:51:05.990544: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.990807: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1558] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2080 Ti computeCapability: 7.5
coreClock: 1.545GHz coreCount: 68 deviceMemorySize: 10.75GiB deviceMemoryBandwidth: 573.69GiB/s
2020-02-11 08:51:05.990820: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-02-11 08:51:05.990828: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-02-11 08:51:05.990834: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-02-11 08:51:05.990841: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-02-11 08:51:05.990848: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-02-11 08:51:05.990854: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-02-11 08:51:05.990861: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-02-11 08:51:05.990892: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.991171: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.991426: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Adding visible gpu devices: 0
2020-02-11 08:51:05.991437: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1099] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-02-11 08:51:05.991441: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1105]      0 
2020-02-11 08:51:05.991444: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1118] 0:   N 
2020-02-11 08:51:05.991486: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.991763: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-11 08:51:05.992022: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1244] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 9604 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:01:00.0, compute capability: 7.5)
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/linalg/linear_operator_lower_triangular.py:158: calling LinearOperator.__init__ (from tensorflow.python.ops.linalg.linear_operator) with graph_parents is deprecated and will be removed in a future version.
Instructions for updating:
Do not pass `graph_parents`.  They will  no longer be used.
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/linalg/linear_operator_lower_triangular.py:158: calling LinearOperator.__init__ (from tensorflow.python.ops.linalg.linear_operator) with graph_parents is deprecated and will be removed in a future version.
Instructions for updating:
Do not pass `graph_parents`.  They will  no longer be used.
2020-02-11 08:51:06.822991: W tensorflow/python/util/util.cc:319] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.
Epoch 1/15
2020-02-11 08:51:07.907445: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-02-11 08:51:09.832694: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7

I! CuDNN (v7604) function cudnnCreate() called:
i! Time: 2020-02-11T08:51:09.832722 (0d+0h+0m+4s since start)
i! Process=205; Thread=269; GPU=NULL; Handle=NULL; StreamId=NULL.

2020-02-11 08:51:10.409902: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

I! CuDNN (v7604) function cudnnCreate() called:
i! Time: 2020-02-11T08:51:10.410012 (0d+0h+0m+5s since start)
i! Process=205; Thread=269; GPU=NULL; Handle=NULL; StreamId=NULL.

2020-02-11 08:51:10.417952: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
      1/Unknown - 4s 4s/stepTraceback (most recent call last):
  File "VAE_MNIST_tfp.py", line 150, in <module>
    validation_data=eval_dataset)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training.py", line 718, in fit
    use_multiprocessing=use_multiprocessing)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_v2.py", line 341, in fit
    total_epochs=epochs)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_v2.py", line 128, in run_one_epoch
    batch_outs = execution_function(iterator)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_v2_utils.py", line 98, in execution_function
    distributed_function(input_fn))
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/def_function.py", line 576, in __call__
    result = self._call(*args, **kwds)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/def_function.py", line 640, in _call
    return self._stateless_fn(*args, **kwds)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py", line 2414, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py", line 1660, in _filtered_call
    self.captured_inputs)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py", line 1741, in _call_flat
    ctx, args, cancellation_manager=cancellation_manager))
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py", line 598, in call
    ctx=ctx)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/execute.py", line 60, in quick_execute
    inputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.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 model/conv2d/Conv2D (defined at VAE_MNIST_tfp.py:150) ]] [Op:__inference_distributed_function_4291]

Errors may have originated from an input operation.
Input Source operations connected to node model/conv2d/Conv2D:
 model/lambda/sub (defined at VAE_MNIST_tfp.py:98)

Function call stack:
distributed_function

@sanjoy рдореИрдВ RTX 2080 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@odinsbane рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рд╕реЗ TensorFlow рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рдиреАрдЪреЗ рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВред

рдкрд╣рд▓рд╛ рдХрджрдо LOG(INFO) рдпрд╛ std::cerr рд▓рд╛рдЗрдиреЛрдВ рдХреЛ MinSystemMemory available_memory рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ MinSystemMemory рд╕реЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдХреНрдпрд╛ available_memory nvidia-smi рдкреНрд░рд┐рдВрдЯ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ? рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА рд╕реНрдореГрддрд┐ рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ?

рджреВрд╕рд░реА рдмрд╛рдд, рдХреНрдпрд╛ 0.05 рдореИрдЬрд┐рдХ рдирдВрдмрд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╣рддреЗ рд╣реИрдВ, 0.07 рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рджреБрдИ рд╕рдВрдЦреНрдпрд╛ 0.05 рдЬрд╛рджреВ рд╕рдВрдЦреНрдпрд╛ рдХреЛ 0.1 рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рд╕реЗ рднрд╡рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо 1.15.2 рдХреЗ рд▓рд┐рдП)!

рд╢реЛрд░ рдХреЗ рдПрдХ рдорд╣рд╛рд╕рд╛рдЧрд░ рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдореИрдЬрд┐рдХ рдирдВрдмрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@chsigg рдХреЛрдИ рд╕реБрдЭрд╛рд╡? рд╢рд╛рдпрдж рд╣рдо cuDNN, cuBLAS рдФрд░ рдЕрдиреНрдп NVIDIA рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ _before_ рд╣рдо GPU рд╕реНрдореГрддрд┐ рдХреЗ рд╕рднреА рдХреЛ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ?

рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ allow_growth рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ RTX2080 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк GTX1080 рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ RTX2080 рдиреЛрдЯрдмреБрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдВрдбрд╛ рдХреНрд▓реЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.0.0-gpu рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж Conv2d, LSTM, GRU рддрдм рдпрд╣ рдкрд░реЗрд╢рд╛рдиреА рдЖрддреА рд╣реИред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВ:
gpus = tf.config.experimental.list_physical_devices ('GPU')
рдЕрдЧрд░ gpus:
рдкреНрд░рдпрддреНрди:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдЬреАрдкреАрдпреВ рдореЗрдВ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП

    for gpu in gpus:
        tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:

рдЬреАрдкреАрдпреВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

    print(e)

рд▓реЗрдХрд┐рди рдХрдИ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рд╕реЗ, рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ

рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реИрдореНрдмреНрдбрд╛ Tensorflow2- рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдмреЗрд╕рд┐рдХ-рдЗрдореЗрдЬ-рдХреНрд▓рд╛рд╕рд┐рдлрд┐рдХреЗрд╢рди рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрдм рддрдХ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рддрдм рддрдХ рдПрдХ рд╣реА cudnn рд╣реИрдВрдбрд▓ рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред рдпрд╣ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЕрдм рдЖрд░рдЯреАрдПрдХреНрд╕ 2070 рдореИрдХреНрд╕ рдХреНрдпреВ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рдЬреАрдкреАрдпреВ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ
anacondacloud рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-gpu2.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

rtx2070s
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-gpu.2.0.0
рдХреНрдпреВрдбрд╛ 10.0.13
cudnn 7.6.5
Cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATUS_INTERNAL_ERROR
рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ
anacondacloud рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-gpu2.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

rtx2070s
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-gpu.2.0.0
рдХреНрдпреВрдбрд╛ 10.0.13
cudnn 7.6.5
Cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATUS_INTERNAL_ERROR
рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдбрд╛рд▓рд╛:

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
    for gpu in gpus:
        tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
    print(e)

рдЖрдкрдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░?

рдХрд╛рдлреА рд╕рдордп рдХреЗ рдмрд╛рдж tf.signal.stft рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛
рдореИрдВ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛ рдФрд░ рд╕реНрдореГрддрд┐ рд╡реГрджреНрдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реБрдП рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЗрд╕рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдЯреЗрдиреЛрд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ = 2.1 рдХреЛ рдХреНрдпреВрдбрд╛рдЯреБрд▓рдХрд┐рдЯ = 10.1 рдПрдирд╛рдХреЛрдВрдбрд╛ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ
рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВред рдореИрдВ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде linux-ubuntu 18.04 рдФрд░ рдбреЗрдмрд┐рдпрди 9.12 рдХреЗ рддрд╣рдд рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

   GeForce GTX 1050 Ti with Max-Q Design   
   GeForce GTX 1050 Ti
   GeForce RTX 2080 Ti

рдореИрдВрдиреЗ рд╣рдорд╛рд░реА рд▓реИрдм рдореЗрдВ рджреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдб рднреА рдЖрдЬрдорд╛рдП

  GeForce GTX 1080 Ti
  TITAN Xp COLLECTORS EDITION

рдЬрд╣рд╛рдБ рдХреЛрдб рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдФрд░ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИ

рдореЗрд░реА рдиреНрдпреВрдирддрдо рд╕рдорд╕реНрдпрд╛ рдиреАрдЪреЗ рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ conv2d рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрди рддреАрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рддреАрд╕рд░рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

import sys
import tensorflow as tf

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus and len(sys.argv)> 1 and sys.argv[1].startswith("-a"):
    print("allowing growth")
    growth = True
else:
    print("nogrowth")
    growth = False

try:
    for gpu in gpus:
        tf.config.experimental.set_memory_growth(gpu, growth)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
    print(e)

tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32),
                                         filters=tf.zeros((2,2,20,20), dtype=tf.float32),
            strides=(1,1,1,1), padding="VALID")
print("done")

рдореБрдЭреЗ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛
anacondacloud рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-gpu2.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
rtx2070s
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ- gpu.2.0.0
рдХреНрдпреВрдбрд╛ 10.0.13
cudnn 7.6.5
Cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATUS_INTERNAL_ERROR
рдХрдирд╡рд▓реНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдКрдкрд░ рд▓реЙрдЧ рдЗрди рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдбрд╛рд▓рд╛:

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
    for gpu in gpus:
        tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
    print(e)

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░?

рд╣рд╛рдБ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж !!

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ allow_growth = True рд╕рдорд╛рдзрд╛рди рдерд╛ред BUT, TensorFlow 2 рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

gpu_devices = tf.config.experimental.list_physical_devices('GPU') for device in gpu_devices: tf.config.experimental.set_memory_growth(device, True)

рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ @opcecco рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж: https://github.com/tensorflow/tensorflow/issues/25256

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ conv2d рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрди рддреАрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рддреАрд╕рд░рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

@roebel рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рднрд┐рдиреНрди рдЫрд╣ рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдФрд░ рдЕрдЧрд░ рдЖрдк рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ (рдХрд╣рддреЗ рд╣реИрдВ):

tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32),
                                         filters=tf.zeros((2,2,20,20), dtype=tf.float32),
            strides=(1,1,1,1), padding="VALID")

рдХреНрдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рдЕрднреА рднреА conv2d рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рддреАрд╕рд░реЗ stft ?

@sanjoy рдпрдХреАрди рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рддреАрди рд░реВрдкрд╛рдВрддрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЪреМрдерд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ 4 рд╕реНрдЯреИрдлрд╝реНрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХрдирд╡рд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ

рдЪрд╛рд░ рд╡рд┐рднрд┐рдиреНрди рд▓реЙрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -595998686
рдЕрдВрддрд┐рдо рдЪрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрдЧрд╣ред

рдЖрджреЗрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо:

stft-> blas-> conv2d рдЬрдм acc2d рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ
conv2d-> stft-> stas рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдмреНрд▓рд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рддреАрд╕рд░рд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди blas рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд▓рдЧрддрд╛ рд╣реИ 2d
matmul-> conv2d-> рдПрд╕рдЯреАрдПрдл рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрдЯреЗрдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
stft -> - stft -> - stft-> stft-> matmul-> conv2d рдЬрдм acc2d рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓реЙрдЧ рджреЗрдЦреЗрдВред

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЕрдиреНрдп рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рдмреБрд░рд╛ рдордд рдорд╛рдирдирд╛ред

conv2d рдЕрдВрддрд┐рдо:

tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32),
                                         filters=tf.zeros((2,2,20,20), dtype=tf.float32),
            strides=(1,1,1,1), padding="VALID")
print("done")

log.conv2d.last.txt

рдореИрддреБрд▓ рдЕрдВрддрд┐рдо

tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32),
                                         filters=tf.zeros((2,2,20,20), dtype=tf.float32),
            strides=(1,1,1,1), padding="VALID")
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
print("done")

log.matmul.last.txt

рдЕрдВрддрд┐рдо рд╕рдордп

tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32),
                                         filters=tf.zeros((2,2,20,20), dtype=tf.float32),
            strides=(1,1,1,1), padding="VALID")
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
print("done")

log.stft.last.txt

4 рд╕реНрдЯреИрдлреНрдЯ рдкрд╣рд▓рд╛ рдХрдВрдлрд░реНрдо 2d рдЕрдВрддрд┐рдо:

tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32),
                                         filters=tf.zeros((2,2,20,20), dtype=tf.float32),
            strides=(1,1,1,1), padding="VALID")
print("done")

log.multi_stft.first.txt

рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рдореБрдЭреЗ рдирд┐рдореНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА:
TensorFlow (рд╕реНрд░реЛрдд рдпрд╛ рдмрд╛рдЗрдирд░реА) рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд: r1.13.1, r.1.13.2, r1.14
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.6.1
Bazel рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди):
рдЬреАрд╕реАрд╕реА / рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди):
CUDA / cuDNN рд╕рдВрд╕реНрдХрд░рдг: CUDA 10 cuDNN 7.4.1 рдХреЗ рд╕рд╛рде
GPU рдореЙрдбрд▓ рдФрд░ рдореЗрдореЛрд░реА: RTX 2070 8GBред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛:
TensorFlow (рд╕реНрд░реЛрдд рдпрд╛ рдмрд╛рдЗрдирд░реА) рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд: r1.12.0
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.6.9
рдЬреАрд╕реАрд╕реА / рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдг: 4.8
CUDA / cuDNN рд╕рдВрд╕реНрдХрд░рдг: CUDA 9.0 cuDNN 7.1.4 рдХреЗ рд╕рд╛рде
GPU рдореЙрдбрд▓ рдФрд░ рдореЗрдореЛрд░реА: RTX 2070 8GBред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА

рдореБрдЭреЗ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ TF_FORCE_GPU_ALLOW_GROWTH = true рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рдореНрди рд╣реИ:
рд╡рд┐рдВрдбреЛрдЬ 10
рд╕реНрд░реЛрдд r2.0 рд╕реЗ рд╕рдВрдХрд▓рд┐рдд Tensorflow
рдмрд╛рдЬреЗрд▓: 0.26.1
C ++ рдХрдВрдкрд╛рдЗрд▓рд░: MSVC 2017
CUDA: 10
cuDNN: 7.6.5

Intel4930 рд╕реАрдкреАрдпреВ, рдПрдирд╡реАрдбрд┐рдпрд╛ рдЯрд╛рдЗрдЯрди рдПрдХреНрд╕рдкреА рдкрд╛рд╕реНрдХрд▓
Ubuntu 18.04.4, рдорд┐рдирд┐рдХреЛрдВрдбрд╛ рдирд╡реАрдирддрдо,
`рдХреЛрдВрдбрд╛ рд╕реВрдЪреА | grep "cud" рджреЗрддрд╛ рд╣реИ

    cudatoolkit               10.1.243             h6bb024c_0  
    cudnn                     7.6.5                cuda10.1_0  

`рдХреЛрдВрдбрд╛ рд╕реВрдЪреА | grep "рдЯреЗрдВрд╕рд░" `` рджреЗрддрд╛ рд╣реИ

tensorboard               2.1.0                     py3_0  
tensorflow                2.1.0           gpu_py37h7a4bb67_0  
tensorflow-base           2.1.0           gpu_py37h6c5654b_0  
tensorflow-estimator      2.1.0              pyhd54b08b_0  
tensorflow-gpu            2.1.0                h0d30ee6_0  

рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рдкрд╣рд▓реА рд╕реЗрд▓ рд╣реИ:

import tensorflow as tf
gpu_devices = tf.config.experimental.list_physical_devices('GPU')
for device in gpu_devices: tf.config.experimental.set_memory_growth(device, True)

рдореЙрдбрд▓ рдХреБрд▓ рдкрд░рд┐рдорд╛рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдСрдЯреЛрдХреЗрдиреЛрдбрд░ рд╣реИ: 112,269
x_train.shape, y_train.shape, x_test.shape, y_test.shape
((106496, 32, 32, 1), (106496,), (12288, 32, 32, 1), (12288,))

рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

batch_size=64
var_auto_encoder.fit(x_train, x_train, verbose=1, 
                 batch_size=batch_size, epochs=100,
                 validation_data=(x_test, x_test))

рдФрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдХрдВрд╕реЛрд▓ рд╢реЛ

2020-03-18 15:46:03.019451: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-03-18 15:46:03.179472: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-03-18 15:46:03.566267: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-03-18 15:46:03.569842: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-03-18 15:46:03.569907: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Unknown: 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/Conv2D}}]]
2020-03-18 15:46:03.573206: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗрд▓ рдХреЗ рдмрдЬрд╛рдп f рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.2
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

рддрдм рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ


2020-03-18 15:55:43.050094: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-03-18 15:55:43.050123: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-03-18 15:55:43.050150: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-03-18 15:55:43.050177: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-03-18 15:55:43.050209: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-03-18 15:55:43.050246: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-03-18 15:55:43.050273: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-03-18 15:55:43.050337: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-03-18 15:55:43.050720: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-03-18 15:55:43.051063: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
2020-03-18 15:55:43.051097: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1096] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-03-18 15:55:43.051108: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102]      0 
2020-03-18 15:55:43.051116: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] 0:   N 
2020-03-18 15:55:43.051201: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-03-18 15:55:43.051573: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-03-18 15:55:43.051915: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1241] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 16 MB memory) -> physical GPU (device: 0, name: TITAN X (Pascal), pci bus id: 0000:01:00.0, compute capability: 6.1)
2020-03-18 15:56:07.877181: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-03-18 15:56:07.882424: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-03-18 15:56:07.886148: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-03-18 15:56:07.889830: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR


Why am I having the problem if I allow memory growth? Do I need to reboot to reinitialize the gpu?

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рдЕрдкрдиреЗ рдореЗрдиреВрдмрд╛рд░ рдореЗрдВ рдПрдХ рд▓рд╛рд▓ 'рдиреЛ рдПрдВрдЯреНрд░реА' рд╕рд╛рдЗрди рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ '' рддреНрд░реБрдЯрд┐ рдЯреВрдЯреА рд╣реБрдИ рдЧрд┐рдирддреА рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╣реИ '
рдореИрдВрдиреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЕрдкрдбреЗрдЯ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдпрд╣ libcudn7-dev рдФрд░ libcudnn7-doc рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ
рд╕рд╛рде рд╣реА рд╕рд╛рде 57 рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ

EDIT: рдореЙрдбрд▓ рдХреЛ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░реЗрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИ:

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.2
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

рдпрд╛ рдпрд╣:

import tensorflow as tf
gpu_devices = tf.config.experimental.list_physical_devices('GPU')
for device in gpu_devices: tf.config.experimental.set_memory_growth(device, True)

рдЬреАрдкреАрдпреВ рдкрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ <700 рдПрдордмреА рдмреИрдЪ рдХреЗ рдЖрдХрд╛рд░ 16 рдХреЗ рд╕рд╛рде рдФрд░ рд╣реИ
рдмреИрдЪ рдЖрдХрд╛рд░ 256 рдХреЗ рд╕рд╛рде ~ 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ (рдЬреЛ 3x рддреЗрдЬ рдЯреНрд░реЗрди)

рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдорд┐рд▓рд╛, рддреЛ рдЗрди рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП?

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ
anacondacloud рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ-gpu2.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
rtx2070s
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ-gpu.2.0.0
рдХреНрдпреВрдбрд╛ 10.0.13
cudnn 7.6.5
Cudnn рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛: CUDNN_STATUS_INTERNAL_ERROR
рдХрдиреНрд╡реЗрдВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cuDNN рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдКрдкрд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдбрд╛рд▓рд╛:

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
    for gpu in gpus:
        tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
    print(e)

рдЖрдкрдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░?

рдореБрдЭреЗ рдКрдкрд░ рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

@Robosmith рд╕реЗ рд╕рдорд╛рдзрд╛рди рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ!

рдореЗрд░реА рдРрдирдХ:
RTX 2070
рдЙрдмрдВрдЯреВ 18.04 рдПрд▓рдЯреАрдИ
рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ 2.1.0
рдХреЗрд░рд╕ 2.3.0
cudnn 7.6.5
cuda10.1.0
рдХреЛрдВрдбрд╛ 4.8.3
рдЕрдЬрдЧрд░ 3.7.7

conda install tensorflow-gpu keras рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдорд┐рдд

рдЖрдкрдХреЛ рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ TF-2 рдХреЛ рдХрд╛рдо рдореЗрдВ рд▓рд┐рдпрд╛ рд╣реИ! рдФрд░ TF-1 рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдФрд░ 'рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ' рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛!

рдзрдиреНрдпрд╡рд╛рдж!

config.gpu_options.allow_growth = рд╕рдЪ

рдЬрдм рдЖрдк рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True)
рдпрд╣ рдХреЛрдб import tensorflow as tf рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рд╣реИред

рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ config.gpu_options.allow_growth = True рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЗрд╕ рдХреЛрдб рдХреЛ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдФрд░ рдХреЗрд░рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝реА рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдпрд╣рд╛рдБ рд╕реЗ

# Tensorflow
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)


#And for Keras
from keras.callbacks import ModelCheckpoint
from keras.models import Model, load_model, save_model, Sequential
from keras.layers import Dense, Activation, Dropout, Input, Masking, TimeDistributed, LSTM, Conv1D
from keras.layers import GRU, Bidirectional, BatchNormalization, Reshape
from keras.optimizers import Adam
from keras.backend.tensorflow_backend import set_session
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth = True  # dynamically grow the memory used on the GPU
config.log_device_placement = True  # to log device placement (on which device the operation ran)
sess = tf.Session(config=config)
set_session(sess)  # set this TensorFlow session as the default session for Keras

рдмрд╕ рдореЗрдВ рдЭрдВрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реИ;

рдореЗрд░реА рдРрдирдХ:
рдЙрдмрдВрдЯреВ 20.04
NVIDIA RTX 2070
рдПрдирд╡реАрдбрд┐рдпрд╛_рдбреНрд░рд╛рдЗрд╡ 440.64
Tensorflow-gpu 2.0.1 (рдХреЙрдиреНрдбрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Cudatoolkit рдФрд░ CuDNN рдХреЛ рдПрдХ рд╣реА env рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ)
cudatoolkit 10.1.243
cudnn 7.6.5

рд╕рдорд╕реНрдпрд╛ рдХреЛ tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True) рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд┐рдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд░реНрдХ-рдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЗрди рджрд┐рдиреЛрдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ 20XX рдХрд╛рд░реНрдб рд╣реИрдВред рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрджреНрдпрддрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ: рдЪреВрдВрдХрд┐ рдореИрдВ рдбреБрдЕрд▓-рдмреВрдЯрд┐рдВрдЧ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рдорд╕реНрдпрд╛ рд╡рд╣рд╛рдВ рдмрдиреА рд░рд╣рддреА рд╣реИред
рд╡рд┐рдВрдбреЛрдЬ 10
рдПрдирд╡реАрдбрд┐рдпрд╛-рдЪрд╛рд▓рдХ 445.87
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ

рдореЗрд░реЗ RTX 2080 рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдбреНрд░рд╛рдЗрд╡рд░ (445.87) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

@NBouman рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдЙрдмрдВрдЯреВ 18.04 рдкрд░ GeForce GTX 1050 TI рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЕрднреА рдкрд┐рдЫрд▓реЗ рдЙрдкрд▓рдмреНрдз рдбреНрд░рд╛рдЗрд╡рд░ 440.82 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдлрд┐рд░ рднреА рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдореЗрд░реЗ RTX 2080 рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдбреНрд░рд╛рдЗрд╡рд░ (445.87) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

@NBouman рдЖрдк рдХрд┐рд╕ OS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ Ubuntu 20.40 рдкрд░ рд╣реВрдВ, рдФрд░ рдирд╡реАрдирддрдо рдЙрдкрд▓рдмреНрдз рдбреНрд░рд╛рдЗрд╡рд░ рдореБрдЭреЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ 440.82, рдФрд░ @roebel рдХреА рддрд░рд╣, рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИред

@roebel @eduardoscsouza рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдорд╢реАрди рдХреЗ рд╕рд╛рде рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реЗ рдпрд╣ рдореБрджреНрджрд╛ рдерд╛ред

рдмрд╕ рдореЗрдВ рдЭрдВрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реИ;

рдореЗрд░реА рдРрдирдХ:
рдЙрдмрдВрдЯреВ 20.04
NVIDIA RTX 2070
рдПрдирд╡реАрдбрд┐рдпрд╛_рдбреНрд░рд╛рдЗрд╡ 440.64
Tensorflow-gpu 2.0.1 (рдХреЙрдиреНрдбрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Cudatoolkit рдФрд░ CuDNN рдХреЛ рдПрдХ рд╣реА env рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ)
cudatoolkit 10.1.243
cudnn 7.6.5

рд╕рдорд╕реНрдпрд╛ рдХреЛ tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True) рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд┐рдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд░реНрдХ-рдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЗрди рджрд┐рдиреЛрдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ 20XX рдХрд╛рд░реНрдб рд╣реИрдВред рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрджреНрдпрддрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ: рдЪреВрдВрдХрд┐ рдореИрдВ рдбреБрдЕрд▓-рдмреВрдЯрд┐рдВрдЧ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рдорд╕реНрдпрд╛ рд╡рд╣рд╛рдВ рдмрдиреА рд░рд╣рддреА рд╣реИред
рд╡рд┐рдВрдбреЛрдЬ 10
рдПрдирд╡реАрдбрд┐рдпрд╛-рдЪрд╛рд▓рдХ 445.87
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ

рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП 2.0.0 рдиреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛:
tf.config.experimental.set_memory_growth(tf.config.experimental.list_physical_devices('GPU')[0],True)

рдзрдиреНрдпрд╡рд╛рдж!!! рд╣рдЬрд╝рд╛рд░реЛрдВ рдзрдиреНрдпрд╡рд╛рдж !!!!!!!!!!!!!!!

рдУрдПрд╕: ubuntu 18.04 lts

рдЪрд╛рд▓рдХ рд╕рдВрд╕реНрдХрд░рдг: 435.21

рдХреВрдбрд╛: рдХреБрдбрд╛рдЯреБрд▓рдХрд┐рдЯ 10.1

CUDNN: cudnn-7.6.5-cuda10.1_0

рдореИрдВрдиреЗ рдПрдирд╛рдХреЛрдВрдбрд╛ рдХреЛ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛

conda create -n tf-gpu tensorflow-gpu

cudatoolkit рдФрд░ cudnn рдкрд╣рд▓реЗ рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдирд╛рдХреЛрдВрдбрд╛ рджреНрд╡рд╛рд░рд╛ рдСрдЯреЛ-рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ рд╣реИ, рддреНрд░реБрдЯрд┐:

coreClock: 1.5315GHz coreCount: 3 deviceMemorySize: 1.96GiB deviceMemoryBandwidth: 44.76GiB/s
2020-05-12 17:58:44.119679: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-05-12 17:58:44.119694: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-05-12 17:58:44.119707: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-05-12 17:58:44.119719: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-05-12 17:58:44.119732: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-05-12 17:58:44.119744: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-05-12 17:58:44.119756: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-05-12 17:58:44.119819: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 17:58:44.120069: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 17:58:44.120277: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
2020-05-12 17:58:44.120308: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-05-12 17:58:44.174976: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1096] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-05-12 17:58:44.175003: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102]      0 
2020-05-12 17:58:44.175012: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] 0:   N 
2020-05-12 17:58:44.175136: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 17:58:44.175392: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 17:58:44.175624: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 17:58:44.175844: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1241] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1439 MB memory) -> physical GPU (device: 0, name: GeForce MX150, pci bus id: 0000:01:00.0, compute capability: 6.1)
2020-05-12 17:58:44.177113: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55abc3d20b80 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2020-05-12 17:58:44.177129: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): GeForce MX150, Compute Capability 6.1
2020-05-12 17:58:44.177749: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 376320000 exceeds 10% of system memory.
2020-05-12 17:58:44.787493: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 376320000 exceeds 10% of system memory.
WARNING:tensorflow:Layer my_model is casting an input tensor from dtype float64 to the layer's dtype of float32, which is new behavior in TensorFlow 2.  The layer has dtype float32 because it's dtype defaults to floatx.

If you intended to run this layer in float32, you can safely ignore this warning. If in doubt, this warning is likely only an issue if you are porting a TensorFlow 1.X model to TensorFlow 2.

To change all layers to have dtype float64 by default, call `tf.keras.backend.set_floatx('float64')`. To change just this layer, pass dtype='float64' to the layer constructor. If you are the author of this layer, you can disable autocasting by passing autocast=False to the base Layer constructor.

2020-05-12 17:58:45.311821: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-05-12 17:58:45.467966: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-05-12 17:58:45.904025: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-05-12 17:58:45.913861: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-05-12 17:58:45.913978: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Unknown: 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 my_model/conv2d/Conv2D}}]]

рддреЛ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдЕрдирд╕реБрд▓рдЭреА рд╣реИ (рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдореЗрдореЛрд░реА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ)ред рджреЗрд╡ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐?

рдпрд╣ рдмрдЧ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (1.13, 2.0, 2.1) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВрдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджреЗрдЦрд╛ рдХрд┐ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ cuda 10. рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИрдВред рдХреЛрдб рдХрдИ рдХрд╛рд░реНрдбреЛрдВ рдкрд░ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдкрд░ рдирд╣реАрдВред
рдХреНрдпрд╛ рджреЗрд╡ рдЯреАрдо рдХрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╣рдореЗрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЯреЛрдбреЛрд░рдлреНрд▓реЛ рд▓реЗрдпрд░ рд╕реЗ рдЕрдзрд┐рдХ рдХреНрдпреВрдбрд╛ рдЪрд╛рд▓рдХ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИ? рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ NVIDIA рд╕рдорд░реНрдерди рдкреГрд╖реНрдареЛрдВ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ рджреЗрд╡ рдЯреАрдо рд╕реЗ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдмрдЧ рдХреЛ рдХреИрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдЕрдЧрд░ рд▓реЛрдЧ рджреЛ CuDNN 7 рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрде рдпрд╛ LD рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрде рдкрд░ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреЛрдИ рдЫреЛрдЯреА рдпрд╛ рдкреИрдЪ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдХрд░рдг рдмреЗрдореЗрд▓ рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ NVIDIA рдкрд░ рдПрдХ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдЦреЛрд▓реА, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ рдХрд┐ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

@samhodge
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ libcudnn рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдПрдирд╛рдХреЛрдВрдбрд╛ env рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
рдЖрдо рддреМрд░ рдкрд░ рдПрдирд╛рдХреЛрдВрдбрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд░рде рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреНрд░реЗрд╕ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдЦреЛрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ
рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдПрдирд╛рдХреЛрдВрдбрд╛ env dir рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рдкреИрдХреЗрдЬ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред
Libcuda рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг 440.82 рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ NVIDIA рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ cudatoolkits рдФрд░ рд╡рд┐рднрд┐рдиреНрди libcudnn рдХреЗ рд╕рд╛рде рдЕрдиреНрдп anaconda env lib dirs рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ LD_LIBRARY_PATH рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЯреНрд░реЗрд╕ рдПрдХ рд╣реА рд░рд╣рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ lbcudnn рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рддреАрд╕рд░рд╛ libcuxyz рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ GPU рдкрд░ (рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ GPU рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╢реАрдиреЛрдВ рдкрд░ рдПрдХ рд╣реА рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рд╡реЗ рд╕рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рд╕рдХреНрд╖рдо рд╣реИред

(tf2.1) m3088.roebel: (test_sd) 510> grep open trace.log  | grep libcu | grep -v -- -1
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcuda.so.1", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcudart.so.10.1", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcublas.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../.././libcublasLt.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcufft.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcurand.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcusolver.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcusparse.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcudnn.so.7", O_RDONLY|O_CLOEXEC) = 11

рдореИрдВ Ubuntu 20.04 рдкрд░ GeForce RTX 2060 рд╕реБрдкрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдШрдиреЗ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдирдПрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди CNN рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЭреЗ 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.
tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True) рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдкрд░ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
рдореИрдВрдиреЗ https://www.tensorflow.org/install/gpu рдФрд░ nvidia-smi рд╢реЛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛:
Driver Version: 440.64.00 CUDA Version: 10.2
рдореЗрд░рд╛ рдХреЛрдВрдбрд╛ env рд╣реИ:

cudatoolkit               10.1.243             h6bb024c_0  
cudnn                     7.6.5                cuda10.1_0  
tensorflow-gpu            2.1.0                h0d30ee6_0

1.15 рдХреЗ рд╕рд╛рде рдПрдХ conda env рдореЗрдВ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

export TF_FORCE_GPU_ALLOW_GROWTH=true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХрд╛ рдерд╛ рдХрд┐ tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True) рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ TensorFlow GPU рд╕рдкреЛрд░реНрдЯ рд╡реЗрдмрдкреЗрдЬ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@samhodge
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ libcudnn рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдПрдирд╛рдХреЛрдВрдбрд╛ env рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
рдЖрдо рддреМрд░ рдкрд░ рдПрдирд╛рдХреЛрдВрдбрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд░рде рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреНрд░реЗрд╕ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдЦреЛрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ
рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдПрдирд╛рдХреЛрдВрдбрд╛ env dir рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рдкреИрдХреЗрдЬ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред
Libcuda рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг 440.82 рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ NVIDIA рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ cudatoolkits рдФрд░ рд╡рд┐рднрд┐рдиреНрди libcudnn рдХреЗ рд╕рд╛рде рдЕрдиреНрдп anaconda env lib dirs рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ LD_LIBRARY_PATH рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЯреНрд░реЗрд╕ рдПрдХ рд╣реА рд░рд╣рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ lbcudnn рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рддреАрд╕рд░рд╛ libcuxyz рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ GPU рдкрд░ (рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ GPU рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╢реАрдиреЛрдВ рдкрд░ рдПрдХ рд╣реА рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рд╡реЗ рд╕рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рд╕рдХреНрд╖рдо рд╣реИред

(tf2.1) m3088.roebel: (test_sd) 510> grep open trace.log  | grep libcu | grep -v -- -1
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcuda.so.1", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcudart.so.10.1", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcublas.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../.././libcublasLt.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcufft.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcurand.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcusolver.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcusparse.so.10", O_RDONLY|O_CLOEXEC) = 11
openat(AT_FDCWD, "/data/anasynth/anaconda3/envs/tf2.1/lib/python3.7/site-packages/tensorflow_core/python/../../../../libcudnn.so.7", O_RDONLY|O_CLOEXEC) = 11

рддреЛ рддреБрдо рдореЗрд░реА рдмрд╛рдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реБрдЖ рдХреА рддрд░рд╣ рдХрд░ рд░рд╣реЗ рд╣реИрдВ libcudnn.so.7 рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ 7.XXX.YYY рдЙрд╕рдХреЗ рдКрдкрд░ 7.XXX.YYY CUDA рдкрд░ рд╣реИ рдПрдХ рдФрд░ dependancy 10.2 10.1 10.0 9.2 9.1 9.0 рдЖрджрд┐

рдореИрдВрдиреЗ рддрдм рд╕реЗ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрде рдХрд╛ рдкреНрд░рдмрдВрдзрди рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдХреЗ рдЧреНрд░рд╛рдл рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖рд┐рдд GPU рдХреЗрд╡рд▓ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдореГрддрд┐ рдФрд░ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд┐рддрдирд╛ CUDA рд╕реНрдореГрддрд┐ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрд╕рд╛рдзрди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдХрд┐рддрдирд╛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ?

@ рдХреЙрдЧреНрдиреЗрдЯ-рдбреЙрдХреНрд╕

рддреЛ рдЖрдк рдореЗрд░реА рдмрд╛рдд рдХреЛ рдЧрд▓рдд рд╕рдордЭ рд░рд╣реЗ рд╣реИрдВред

рдЖрдкрдиреЗ рдЬреЛ рд╕рд╡рд╛рд▓ рдЙрдард╛рдпрд╛ рдерд╛, "рдХреНрдпрд╛ рд▓реЛрдЧ рдЪреЗрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рджреЛ рдПрд▓рдбреАрдПрдирдПрди 7 рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╛ рдПрд▓рдбреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрде рд╣реИрдВ"ред рдФрд░ рдореЗрд░рд╛ рдЬрд╡рд╛рдм рдерд╛: рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдБрдЪ рдХреА рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реИред
рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЯреНрд░реЗрд╕ рднреЗрдЬрд╛ рд╣реИред

рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдкрде рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ

рд░рд╛рд╕реНрддреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?
рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реВрдВ! рдореИрдВрдиреЗ рдПрдХ рдХреЛрдВрдбрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ! рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдПрдирд╛рдХреЛрдВрдбрд╛ рджреНрд╡рд╛рд░рд╛ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ред

рд╡реИрд╕реЗ рднреА рдЖрдк рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдмрд╣реБрдд рдореВрд░реНрдЦ рд╣реВрдВ, рдПрдирд╛рдХреЛрдВрдбрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреБрдВрдЖ
рдореИрдВрдиреЗ рдЕрдм рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╣реИ

рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ / рдЯреА рдПрдирд╕реЗрдВрдлрд╝реНрд▓реЛ: 2.1.0-gpu-py3

рдФрд░ рд╡рд╣рд╛рдВ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВред рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдирд┐рд░реНрдпрд╛рдд TF_FORCE_GPU_ALLOW_GROWTH = рд╕рдЪ

рдХреНрдпрд╛ рдореИрдВ рдХрд┐рд╕реА рднреА рдмреЗрд╣рддрд░ рдкрде рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдФрд░ рдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рдЧреНрд░рд╛рдл рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рд▓рдХреНрд╖рд┐рдд GPU рдиреЗ рдХреЗрд╡рд▓ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдирд╛ CUDA рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрд╕рд╛рдзрди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдХрд┐рддрдирд╛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЧреНрд░рд╛рдл рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдмреЗрд╣рддрд░ рдХрд╣реЗрдВ рддреЛ рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ рдЧреНрд░рд╛рдл рд╣реЛ)! рдореИрдВ рд╕рд┐рд░реНрдл рдЗрди рдЪрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ

import tensorflow as tf
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32), filters=tf.zeros((2,2,20,20), dtype=tf.float32), strides=(1,1,1,1), padding="VALID")

рдФрд░ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рддреАрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЗрди рддреАрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рдмрд╛рдж рд╣рдореЗрд╢рд╛ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдпрд╣ рд╕рдордЭрд╛рдпрд╛ рдерд╛)ред

рдмрд╕ рдЗрд╕рдХреЗ рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рдЧрд┐рдирд╛: <83kB рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред GPU рдЦрд╛рд▓реА рд╣реИ, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ 4GB рдпрд╛ 11GB рдЙрдкрд▓рдмреНрдз рд╣реИрдВ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ nvidia-smi рдЪрд▓рд╛рдирд╛ рдЬрд╛рдирддрд╛ рд╣реВрдБ! рддреЛ рдХрд╛рд░реНрдб рдЦрд╛рд▓реА рд╣реИ рдлрд┐рд░ рднреА рдореИрдВ рдЗрди 4 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рдЬрд┐рдирдХреЗ рд▓рд┐рдП 84kB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ!

рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╕реНрдореГрддрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛рдлреА рднрд┐рдиреНрди рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рднреА рд╣реИрдВред рдЕрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдХреНрд╖рдо рд╣реВрдВред

рд╡реИрд╕реЗ рднреА рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@roebel рдЖрдкрдиреЗ cpp рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ @sanjoy рдХреА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреА рдереА https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -561366750?

рдореИрдВрдиреЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕-рдкрд╛рд╕ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЗрддрдиреА рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП gcc рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП 1.15 рдиреЗ рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдФрд░ 1.13 рдХреЛ рдХреЛрдИ рднреА рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╡реИрд╕реЗ рднреА рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдХреБрдЫ рд╣рдж рддрдХ рдмреЗрдХрд╛рд░ рдерд╛ред

@roebel рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЗрд╕реЗ рджреЗрдЦреЗрдВ https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -450549043

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕реНрдореГрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдиреЗ рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рди рд╣реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдореЗрд░реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред

@samhodge

рд╣рд╛рдВ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рдмрдЧ рд╣реИ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

@odinsbane

рдзрдиреНрдпрд╡рд╛рдж, рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдерд╛ред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг tf2.2.0 рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ 2.2 рдХреЗ рд╕рд╛рде рдбреЙрдХрдЯрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рдХреНрдпреВрдбрд╛ 10.1 рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ ubuntu рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб (RTX 2080) рд╣реИ рдЬреЛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдЕрд▓рдЧ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2018 рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред

@ рдХреЙрдЧреНрдиреЗрдЯ-рдбреЙрдХреНрд╕

рдФрд░ рдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рдЧреНрд░рд╛рдл рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рд▓рдХреНрд╖рд┐рдд GPU рдиреЗ рдХреЗрд╡рд▓ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдирд╛ CUDA рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрд╕рд╛рдзрди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдХрд┐рддрдирд╛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЧреНрд░рд╛рдл рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдмреЗрд╣рддрд░ рдХрд╣реЗрдВ рддреЛ рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ рдЧреНрд░рд╛рдл рд╣реЛ)! рдореИрдВ рд╕рд┐рд░реНрдл рдЗрди рдЪрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ

import tensorflow as tf
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32), filters=tf.zeros((2,2,20,20), dtype=tf.float32), strides=(1,1,1,1), padding="VALID")

рдФрд░ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рддреАрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЗрди рддреАрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рдмрд╛рдж рд╣рдореЗрд╢рд╛ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдпрд╣ рд╕рдордЭрд╛рдпрд╛ рдерд╛)ред

рдмрд╕ рдЗрд╕рдХреЗ рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рдЧрд┐рдирд╛: <83kB рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред GPU рдЦрд╛рд▓реА рд╣реИ, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ 4GB рдпрд╛ 11GB рдЙрдкрд▓рдмреНрдз рд╣реИрдВ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ nvidia-smi рдЪрд▓рд╛рдирд╛ рдЬрд╛рдирддрд╛ рд╣реВрдБ! рддреЛ рдХрд╛рд░реНрдб рдЦрд╛рд▓реА рд╣реИ рдлрд┐рд░ рднреА рдореИрдВ рдЗрди 4 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рдЬрд┐рдирдХреЗ рд▓рд┐рдП 84kB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ!

рдХреНрдпрд╛ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрдм рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ 50 ms рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд░рд╣реЗ рдереЗ, рддреЛ nvidia-smi рдкрд░ рдШрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?

рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -492-2226

рдпрд╣рд╛рдБ 4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯ рд╣реИред

https://stackoverflow.com/questions/34199233/how-to-prevent-tensorflow-from-allocating-the-totality-of-a-gpu-memory

рдпрд╛ рдЖрдк рджреЛрд╕реНрддрд╛рдирд╛ рдореИрдиреБрдЕрд▓ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
https://www.tensorflow.org/guide/gpu#limiting_gpu_memory_growth

рддреЛ рдЖрдк рдЕрдкрдиреЗ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдмрджрд▓рдХрд░ рдХреЛрдб рдХреЛ рдЫреВрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкреИрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Another way to enable this option is to set the environmental variable TF_FORCE_GPU_ALLOW_GROWTH to true. This configuration is platform specific.

@sanjoy @odinsbane

рдЦреБрд╢рдЦрдмрд░реА!
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -561666450

рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рд╕реЗ рдПрдирд╛рдХреЛрдВрдбрд╛ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рд░реЗрд╕рд┐рдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.1 рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ
https://github.com/AnacondaRecipes/tensorflow_recipes

рдореИрдВрдиреЗ MinSystemMemory рдореЗрдВ рджреЛ рдкреНрд░рд┐рдВрдЯ рдЬреЛрдбрд╝реЗ рдЬреЛ рдЙрдкрд▓рдмреНрдз_рдореЗрд░реА рдФрд░ min_system_memory рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИред
рдЯреАрдПрдл рдорд╛рдирдХ рд▓реЙрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ GeForce GTX 1050 Ti рд╕рд╛рде рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░
рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ

TF_CPP_MIN_LOG_LEVEL=2 python run_cuda.py 
=========================================================
MinSystemMemory: available_memory::4163764224
MinSystemMemory: min_system_memory::314572800
=========================================================
1 Physical GPUs, 1 Logical GPUs
2020-05-21 09:44:32.143642: E tensorflow/stream_executor/cuda/cuda_fft.cc:223] failed to make cuFFT batched plan:5
2020-05-21 09:44:32.143671: E tensorflow/stream_executor/cuda/cuda_fft.cc:426] Initialize Params: rank: 1 elem_count: 512 input_embed: 512 input_stride: 1 input_distance: 512 output_embed: 257 output_stride: 1 output_distance: 257 batch_count: 20
2020-05-21 09:44:32.143677: F tensorflow/stream_executor/cuda/cuda_fft.cc:435] failed to initialize batched cufft plan with customized allocator: Failed to make cuFFT batched plan.
Aborted

nvidia-smi рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ GPU рдореЗрдВ 4040MiB рд╣реИ, рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдХрд╛рд░реНрдб рдкрд░ X рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 13MiB рд╣реИ рддрд╛рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рдареАрдХ рд▓рдЧреЗред

min_system_memory рдЗрд╕ рддрд░рд╣ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ

    min_system_memory =                                                                                                                        
        std::max(int64{314572800}, static_cast<int64>(available_memory * 0.05));                                                               

рддреЛ рдЕрдзрд┐рдХрддрдо рд░рд╛рд╢рд┐ рдУ рдореЗрдореЛрд░реА рдХреЛ рд╡реИрд╕реЗ рднреА рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ TF_FORCE_MIN_SYSTEM_MEMORY_MB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ min_system_memory рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдЬреЛрдбрд╝рд╛ред
рдлрд┐рд░ рджреМрдбрд╝ рд░рд╣рд╛ рд╣реИ

TF_FORCE_MIN_SYSTEM_MEMORY_MB=310 TF_CPP_MIN_LOG_LEVEL=2 python run_cuda.py 
=========================================================
MinSystemMemory: available_memory::4163764224
MinSystemMemory: min_system_memory::314572800
MinSystemMemory: forced min_system_memory::325058560
=========================================================
1 Physical GPUs, 1 Logical GPUs
done

рд╕рдорд╕реНрдпрд╛ рд╕реБрд▓рдЭ рдЧрдИ рд╣реИ!

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ RTX рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрдм рд╡реЗ рд╡рд╛рдкрд╕ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЕрдЧрд░ рдХреЛрдИ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдб рдкрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореИрдВ ubuntu linux рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдкреИрдХреЗрдЬ рдФрд░ рдХреЛрдВрдбрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛ рдПрдХ @roebel !

рдпрд╣ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдбреЙрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

@samhodge @sanjoy @odinsbane

рдпрд╣ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдбреЙрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

рдЬрд╝рд░реВрд░, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╢рд╛рдпрдж рдЕрдиреНрдп рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдореЗрд░реЗ GTX 1050 рдХреЗ рд▓рд┐рдП рдХреБрд▓ рдореЗрдореЛрд░реА 4GB рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдмрд░рдХрд░рд╛рд░ рд╣реИ
рдЯреЗрдВрд╕реЛрдлрд╝реНрд▓реЛ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХрддрдо (300MB, 4GB * 0.05) рд╣реИред рддреЛ GTX1050 рдХреЗ рд▓рд┐рдП рдпрд╣ 300MB рд╣реЛрдЧрд╛ рдЬреЛ рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ 310 рдПрдордмреА рддрдХ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

RTX2080 рдХреЗ рд▓рд┐рдП рдЕрдм рдХреБрд▓ рдореЗрдореЛрд░реА 11GB рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрддрдо (300MB, 11GB * 0.05) рд╣реИ
рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдХрд╛ рдЪрдпрди 550MB рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐ 1050 рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ
рдЖрдо рддреМрд░ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рддрдХ рдлрд┐рд░ рд╕реЗ рдЖрд░рдЯреАрдПрдХреНрд╕ 2080 рдЬреАрдкреАрдпреВ рддрдХ рдкрд╣реБрдВрдЪ рдкрд╛рдКрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛
рдореБрдЭреЗ рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ

@samhodge @sanjoy @odinsbane

рдЕрдВрдд рдореЗрдВ рдореИрдВ rtx 2080 рдХрд╛рд░реНрдб рдкрд░ рдкреИрдЪ рдХреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред
рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдкреИрдЪреЗрдб рд╡рд░реНрдЬрди рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдлрд┐рд░ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

import tensorflow as tf
tf.signal.stft(tf.zeros(3000, dtype=tf.float32), 512, 128)
tf.matmul(tf.zeros((2,2,2)), tf.zeros((2,2,2)))
tf.nn.conv2d(tf.zeros((2,20,20,20), dtype=tf.float32), filters=tf.zeros((2,2,20,20), dtype=tf.float32), strides=(1,1,1,1), padding="VALID")

рдФрд░ рдпрд╣рд╛рдБ gpu_device.cc рд╕реЗ available memory рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдп Min_system_memory рд░реВрдк рдореЗрдВ gpu_device.cc рдФрд░ рдореЗрдВ рдЪрдпрдирд┐рдд
min value of the min_system_memory рдореБрдЭреЗ рдЧрд░реНрднрдкрд╛рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдХрд╛рд░реНрдб | AvailMem | Def MinSysMem | рдЖрд╡рд╢реНрдпрдХ MinSysMem
: ------- |: ----------- |: ---------- |: --------------- --------
1050 рдЯреАрдЖрдИ | 4163764224 | 314572800 | 325058560 рд╣реИ
1080 TI | 11567431680 | 578371584 | 335544320 рд╣реИ
2080 рдЯреАрдЖрдИ | 11381964800 | 569098240 | 618659840 рд╣реИ

рддреЛ рдЬрдмрдХрд┐ 1050 рдФрд░ 1080 рдПрдХ рд╣реА рдореЗрдореЛрд░реА рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ
RTX2080 рдХреЛ рд▓рдЧрднрдЧ рджреЛрдЧреБрдиреА рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛
рдореЗрд░реЗ рд▓рд┐рдПред

рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рддреБрд▓рдиреАрдп рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢?

@roebel

рдореИрдВрдиреЗ рдЕрдкрдиреЗ C ++ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд┐рдпрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ рдЬреЛ рдЖрдпрд╛ рд╣реИ рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдерд╛ред

рдореЙрдбрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рд╣реА GPU рдкрд░ рдореЙрдбрд▓ рдЪрд▓рд╛рдПрдВред

рддреЛ рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдЬреЛ рдореЙрдбрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рд╡рд╣ рдорд╛рддреНрд░рд╛рддреНрдордХ рд╣реИред

рддреЛ рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд░реВрдк рдореЗрдВ GPU рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЙрд╕ рдореЙрдбрд▓ рдХреЛ рдлрд┐рдЯ рдХрд░реЗрдЧреАред

рдлрд┐рд░ рдЖрдкрдХреЛ рдпрд╣ рднреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдб рдкрд░ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдХрд┐ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдзреАрди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЙрд╕реА рд╕рдордп CUDA рдореЗрдореЛрд░реА рдХрд╛ рдФрд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд▓реЗрдХрд┐рди рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдПрдХ рддрд░рдл, рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдорд╛рдкрдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ cudaMemInfo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рддреЛ рдЗрд╕ рдкреНрд░рд╛рд╡рдзрд╛рди рдкрд░ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП cudaMemInfo рдПрдХ рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдореБрдлрд╝реНрдд рд╣реИ рдФрд░ cudaMemInfo рдПрдХ рдмрд╛рд░ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рддрдм рдФрд░ рдХреЗрд╡рд▓ рддрдм рдЖрдк рдореЙрдбрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдХрд╛рд░реНрдб рдкрд░ рдЙрдкрд▓рдмреНрдз рд╡реАрдЖрд░рдПрдПрдо рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЖрд╡рдВрдЯрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реИрд╕реЗ рднреА рдореЗрд░реА рдмреЗрддрд░рддреАрдм рдмрдбрд╝рдмрдбрд╝рд╛ рд╕реЗ рдШрд░ рд▓реЗ рд▓реЛ cudaMemInfo рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ Pascal рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ cudaMemInfo рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдЯреНрдпреВрд░рд┐рдВрдЧ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдб рдкрд░ рднрд┐рдиреНрди рд╣реЛ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдХрд┐рд╕реА рд╕реЗ рднреА рд▓реБрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред

рд╣рд╛рдБ, рдореБрдЭреЗ cudaMemInfo рд╕рдВрджрд░реНрдн рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕ рддрд░рд╣ рдХреЗ рдкрджрдЪрд┐рд╣реНрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрддрдо 300Mb рдФрд░ рдХрд╛рд░реНрдб рдХреА рдореЗрдореЛрд░реА рдХрд╛ 5% рд╣реЛрдЧрд╛ред

рдкрд░ рдПрдХ рдирдЬрд╝рд░ рд░рдЦрдирд╛:

https://github.com/tensorflow/tensorflow/blob/r2.2/tensorflow/core/common_runtime/gpu/gpu_process_state.cc

рдРрд╕рд╛ рд▓рдЧрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐ se рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрд▓реА-рдФрд░-рдорд╛рдЙрд╕ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

IMO рдХреЗ рдмрдЬрд╛рдп рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрд░рдореНрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ BFC рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХреЛ GPU рдХреА рд╢реЗрд╖ рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓реЗред

CC @chsigg

рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдпрд╣ рддрднреА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рд╕реНрдореГрддрд┐ рд╡реГрджреНрдзрд┐ рдмрдВрдж рд╣реЛред рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ 2080 рдХреЗ рд▓рд┐рдП 580MB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рднрд▓реЗ рд╣реА рдЖрдкрдХреЛ рд╕рднреА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рд╕реЗ рддреАрди рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдПред рдореИрдВ рдХреЗрд╡рд▓ 1080 рдФрд░ 2080 рдХрд╛рд░реНрдбреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рдЕрдХреЗрд▓реЗ conv2d рдирд╣реАрдВ рдкрд╛рддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдмреНрд▓рд╛рд╕ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдмрд╛рд╣рд░ рдЖрддрд╛ рд╣реИ

GPU | MatMul | STFT | Conv2D + MatMUL | MatMul + STFT | MATMUL + STFT + Conv2D |
: --- |: --- |: --- |: --- |: --- |: ---
1080 | 140 рдПрдордмреА | 130 рдПрдордмреА | 290 рдПрдордмреА | 170 рдПрдордмреА | 320 рдПрдордмреА
2080 | 190 рдПрдордмреА | 190 рдПрдордмреА | 520 рдПрдордмреА | 250 рдПрдордмреА | 580 рдПрдордмреА

рдХреЛрдИ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 2080 рдореЗрдВ рдХреНрдпреВрдбрд╛ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд╡рд░рд╣реЗрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдУрд╡рд░рд╣реЗрдб <100MB рд▓реЗрдХрд┐рди Conv2D рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реА рдпрд╣ >220MB рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдЧрд░ @samhodge рдиреЗ NVIDIA рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рд╕реБрдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд░рд╛рджрд╛ рд╣реИред

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдореИрдВрдиреЗ рдореЗрдореЛрд░реА рд╡реГрджреНрдзрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рд╕реЗрдХреНрд╢рди рд▓рд┐рдорд┐рдЯ рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдореЗрдВ рдХреЛрдб рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ

(рдпрд╣ GitHub рдореЗрдВ рдореЗрд░реА рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рд╣реИ)

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛ рд░рдЦрд╛ рдерд╛ред GPU рдореЗрдореЛрд░реА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред https://github.com/tensorflow/tensorflow/issues/25160#issuecomment -643706167

рдореИрдВ Ubuntu 20.04 рдкрд░ GeForce RTX 2060 рд╕реБрдкрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдШрдиреЗ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдирдПрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди CNN рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЭреЗ 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.
tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True) рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдкрд░ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
рдореИрдВрдиреЗ https://www.tensorflow.org/install/gpu рдФрд░ nvidia-smi рд╢реЛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛:
Driver Version: 440.64.00 CUDA Version: 10.2
рдореЗрд░рд╛ рдХреЛрдВрдбрд╛ env рд╣реИ:

cudatoolkit               10.1.243             h6bb024c_0  
cudnn                     7.6.5                cuda10.1_0  
tensorflow-gpu            2.1.0                h0d30ee6_0

1.15 рдХреЗ рд╕рд╛рде рдПрдХ conda env рдореЗрдВ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

export TF_FORCE_GPU_ALLOW_GROWTH=true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХрд╛ рдерд╛ рдХрд┐ tf.config.experimental.set_memory_growth(tf.config.list_physical_devices('GPU')[0], True) рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ TensorFlow GPU рд╕рдкреЛрд░реНрдЯ рд╡реЗрдмрдкреЗрдЬ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╛рд░, рддреБрдореНрд╣рд╛рд░рд╛ рд╣рд▓ рдореЗрд░реА рдЬрд╛рди рдмрдЪрд╛рддрд╛ рд╣реИред

рдПрдирд╡реАрдбрд┐рдпрд╛ рдиреЗ рдХреЗрд╡рд▓ 440.100 рдФрд░ 450.51 (рдмреАрдЯрд╛) рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ 440.100 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдЗрд╕рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдмреАрдЯрд╛ 450.51 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

@eduardoscsouza

рдПрдирд╡реАрдбрд┐рдпрд╛ рдиреЗ рдХреЗрд╡рд▓ 440.100 рдФрд░ 450.51 (рдмреАрдЯрд╛) рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ 440.100 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдЗрд╕рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдмреАрдЯрд╛ 450.51 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рдореИрдВрдиреЗ 450.36.06 рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред https://github.com/tensorflow/tensorflow/issues/25160#issuecomment -643703167 рдЪреЗрдХ

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб:

tf рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛
config = tf.compat.v1.ConfigProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = tf.compat.v1.InteractiveSession (config = config)

_ рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред рд╣рдорд╛рд░реА GitHub рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдХреЗрд╡рд▓ рдЯреИрдЧ: Bug_template_

рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрд╛рдирдХрд╛рд░реА

  • рдХреНрдпрд╛ рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ (TensorFlow рдореЗрдВ рджреА рдЧрдИ рд╕реНрдЯреЙрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд): рд╣рд╛рдБ рдФрд░ рдирд╣реАрдВ (рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИ)
  • рдУрдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рд╡рд┐рддрд░рдг (рдЬреИрд╕реЗ, рд▓рд┐рдирдХреНрд╕ рдЙрдмрдВрдЯреВ 16.04): рдордВрдЬрд╝рд░реЛ
  • рдпрджрд┐ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ (рдЬреИрд╕реЗ iPhone 8, рдкрд┐рдХреНрд╕реЗрд▓ 2, рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА):
  • TensorFlow (рд╕реНрд░реЛрдд рдпрд╛ рдмрд╛рдЗрдирд░реА) рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд: tf-nightly-gpu (рджрд┐рд╕рдореНрдмрд░ 19, r1.13)
  • TensorFlow рд╕рдВрд╕реНрдХрд░рдг (рдиреАрдЪреЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ): 1.13.0-dev20181219
  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 3.7.1
  • Bazel рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди):
  • рдЬреАрд╕реАрд╕реА / рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг (рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди):
  • CUDA / cuDNN рд╕рдВрд╕реНрдХрд░рдг: CUDA 10 cuDNN 7.4.1 рдХреЗ рд╕рд╛рде
  • GPU рдореЙрдбрд▓ рдФрд░ рдореЗрдореЛрд░реА: RTX 2070 8GB

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдореИрдВ MNN рдкрд░ CNN рдореЙрдбрд▓ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рдореИрдВ GPU рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореЗрд░рд╛ рд╕рд╛рдордирд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ
2018-12-20 20:09:13.644176: E tensorflow/stream_executor/cuda/cuda_dnn.cc:334] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

рдореИрдВрдиреЗ рдХреБрдЫ рдЦреБрджрд╛рдИ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдореЗрдореЛрд░реА рдЗрд╢реНрдпреВ рд╣реИ (рдЬреЛ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 32 рдЬреАрдмреА рдХреА рд░реИрдо рдФрд░ 64 рд╕реНрд╡реИрдк рдХреА рд╣реИред рдореИрдВ рдореЙрдбрд▓ рдЪрд▓рд╛рддреЗ рд╕рдордп htop рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ 20 + рдЬреАрдмреА рдореБрдлреНрдд рд╣реИ, рдЬреЛ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ 8GB vRAM рдореИрдкрд┐рдВрдЧ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

gpu_options.allow_growth = True рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЙрдбрд▓ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ os.environ['CUDA_VISIBLE_DEVICES'] = '-1' рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреИрд╕реЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, gpu_options.allow_growth = True рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ / рдореЙрдбрд▓ / рдЖрдзрд┐рдХрд╛рд░рд┐рдХ / mnist / рдореЙрдбрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб

import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import math
import time
# Killing optional CPU driver warnings
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
tf.logging.set_verbosity(tf.logging.ERROR)


class Model:

    def __init__(self, image, label):
        """
        A Model class contains a computational graph that classifies images
        to predictions. Each of its methods builds part of the graph
        on Model initialization. Do not modify the constructor, as doing so
        would break the autograder. You may, however, add class variables
        to use in your graph-building. e.g. learning rate, 

        image: the input image to the computational graph as a tensor
        label: the correct label of an image as a tensor
        prediction: the output prediction of the computational graph,
                    produced by self.forward_pass()
        optimize: the model's optimizing tensor produced by self.optimizer()
        loss: the model's loss produced by computing self.loss_function()
        accuracy: the model's prediction accuracy
        """
        self.image = image
        self.label = label

        # TO-DO: Add any class variables you want to use.

        self.prediction = self.forward_pass()
        self.loss = self.loss_function()
        self.optimize = self.optimizer()
        self.accuracy = self.accuracy_function()

    def forward_pass(self):
        """
        Predicts a label given an image using convolution layers

        :return: the prediction as a tensor
        """
        filter_1 = tf.Variable(tf.truncated_normal([3, 3, 1, 8], stddev=0.1))
        conv_1 = tf.nn.conv2d(self.image, filter_1, [1, 1, 1, 1], "SAME")

        reshaped = tf.reshape(conv_1, shape=[50, -1])

        L1 = reshaped.shape[1].value
        L2 = 500
        W1 = tf.Variable(tf.random_normal([L1, L2], mean=0, stddev=0.01))
        b1 = tf.Variable(tf.random_normal([L2], mean=0, stddev=0.01))
        relu_1 = tf.nn.relu(tf.matmul(reshaped, W1) + b1)

        W2 = tf.Variable(tf.random_normal([L2, 10], mean=0, stddev=0.01))
        b2 = tf.Variable(tf.random_normal([10], mean=0, stddev=0.01))
        logits = tf.nn.relu(tf.matmul(relu_1, W2) + b2)
        return logits

    def loss_function(self):
        """
        Calculates the model cross-entropy loss

        :return: the loss of the model as a tensor
        """
        loss = tf.losses.softmax_cross_entropy(onehot_labels=self.label, logits=self.prediction)
        return loss

    def optimizer(self):
        """
        Optimizes the model loss using an Adam Optimizer

        :return: the optimizer as a tensor
        """
        learning_rate = 0.1
        sgd = tf.train.GradientDescentOptimizer(learning_rate)
        train = sgd.minimize(self.loss)
        return train

    def accuracy_function(self):
        """
        Calculates the model's prediction accuracy by comparing
        predictions to correct labels тАУ no need to modify this

        :return: the accuracy of the model as a tensor
        """
        correct_prediction = tf.equal(tf.argmax(self.prediction, 1),
                                      tf.argmax(self.label, 1))
        return tf.reduce_mean(tf.cast(correct_prediction, tf.float32))


def main():
    t_start = time.time()

    mnist = input_data.read_data_sets("data/mnist/", one_hot=True)
    batch_sz = 50
    batch = 2000

    inputs = tf.placeholder(shape=[batch_sz, 28, 28, 1], dtype=tf.float32)
    labels = tf.placeholder(shape=[batch_sz, 10], dtype=tf.float32)

    model = Model(inputs, labels)

    session_config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True))
    sess = tf.Session(config=session_config)

    # sess = tf.Session()

    sess.run(tf.global_variables_initializer())
    for i in range(batch):
        next_image, next_label = mnist.train.next_batch(batch_sz)
        next_image = next_image.reshape((batch_sz, 28, 28, 1))
        sess.run(model.optimize, feed_dict={inputs: next_image, labels: next_label})

    acc, test_images, test_labels = 0, mnist.test.images, mnist.test.labels
    test_batch = math.ceil(len(test_images) / batch_sz)
    for i in range(test_batch):
        batch_images = test_images[i * batch_sz: (i + 1) * batch_sz]
        batch_images = batch_images.reshape((batch_sz, 28, 28, 1))
        batch_labes = test_labels[i * batch_sz: (i + 1) * batch_sz]
        acc += sess.run(model.accuracy, feed_dict={inputs: batch_images, labels: batch_labes})
    acc /= test_batch
    print(acc)

    print(time.time() - t_start, 'seconds')

    return


if __name__ == '__main__':
    main()

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛редRTX 2060ubuntu 18.04рдЕрдЬрдЧрд░ 3.6

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
sess = InteractiveSession(config=config)
with sess.as_default():
       process ...

рдирдорд╕реНрдХрд╛рд░ @ bm777

рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдореЗрд░реА рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ

GPU рдореЙрдбрд▓ рдФрд░ рдореЗрдореЛрд░реА: RTX 2070 8GB
... рдЬреЛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 32GB RAM рдФрд░ 64GB рд╣реИ

рд╕рдорд╕реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рд╕рдорд╕реНрдпрд╛ GPU рдореЗрдореЛрд░реА рд╣реИ!

os.environ ['CUDA_VISIBLE_DEVICES'] = '-1'

рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!

рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:

TF рдХреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

  1. allow memory growth = false : рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ TF рдХрд┐рд╕реА рдореЛрдЯреЗ рдЕрдиреБрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдореЗрдореЛрд░реА рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ
    рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЪрд╛рд╣рд┐рдПред рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -+ремрей,рейреп,релрей,ренрезрел TF рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ max(300MB, GPU-MEM * fac) рдЗрд╕ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдПред TF2.1 рдХреЗ рд▓рд┐рдП fac = 0.05 TF2.2 рдХреЗ рд▓рд┐рдП рдФрд░ рдпрджрд┐ рдореИрдВ
    рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ fac=0.07 ред рддреЛ рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ 8GB рд╣реИ рдЬреЛ TF2.1 рдХреЗ рддрд╣рдд GPU рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП 400MB рджреЗрддрд╛ рд╣реИ
    рдФрд░ TF2.2.2 рдХреЗ рддрд╣рдд 560MBред

    рдореИрдВрдиреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ GPU рдФрд░ TF21 рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдпрд╣рд╛рдБ рдХрд┐рдпрд╛ рд╣реИ: https://github.com/tensorflow/tensorflow/issues/24496#issuecomment -637715002 рдФрд░ рдпрд╣рд╛рдБ https://github.com/tensorflow/tensorflow / рдореБрджреНрджреЛрдВ / 24496 # рдЬрд╛рд░реА рдХрд░рдиреЗ -637715002

    Conv2D рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╣рд╛рдБ 520MB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЖрдкрдХреЛ TF21 рд╕реЗ рдХрдо рд▓реЗрдХрд┐рди TF22 рдХреЗ рддрд╣рдд рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдк рдЕрдкрдиреЗ TF рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк TF2.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк TF2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднрд┐рдиреНрди GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╡реИрд╕реЗ рднреА рддрдереНрдп рдпрд╣ рд╡рд┐рдлрд▓ рд╣реИред рдирд┐рдЪреЗ рджреЗрдЦреЛ

2) allow memory growth = true : TF рдХрд┐рд╕реА рднреА рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡реЗ рдЖрддреЗ рд╣реИрдВред TF рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдореЗрдореЛрд░реА рд╡рд┐рдЦрдВрдбрди рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ off рд╣реИред

рдореЗрд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓реЗрдирд╛:

рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЗрдореЛрд░реА рдХреА рдмрдбрд╝реА рд░реЗрдВрдЬ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ GPU рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдореЛрдб allow memory growth = false рд╕рд╣реА рдорд┐рд▓рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ https://github.com/tensorflow/ рдЯреЗрдирд╕рдлрд╝реНрд▓реЛ / рдореБрджреНрджреЗ / 24496 # рдЬрд╛рд░реАрдХрд░рдг -637950411)ред рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди: рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ TF2.2 рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдЕрдЧрд░ рдЖрдкрдХрд╛ GPU рдЫреЛрдЯрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (blas, Conv, FFT рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреНрдп рд╣реИрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдорд╛рдирдХрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдЗрди рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдмрджрд▓реЗ рдореЗрдВ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбрд▓ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рдУрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЛрд░реНрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЬрд▓реНрджреА рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рд╕реНрдореГрддрд┐ рд╡рд┐рдЦрдВрдбрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрд╕реЗ рднреА рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдлрд╛рдпрджреЗрдордВрдж рд▓рдЧрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЫреЛрдЯреА рд╕реНрдореГрддрд┐ рд╡рд╛рд▓реЗ рдЬреАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХрд▓ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдмрд▓реНрдХрд┐ allow memory growth = true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ 4GB рд╕реЗ 11GB рддрдХ рдХреА рдореЗрдореЛрд░реА рд╡рд╛рд▓реЗ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП TF_FORCE_GPU_ALLOW_GROWTH = рд╕рд╣реА рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред

рдирдорд╕реНрдХрд╛рд░ @roebel

рдореБрдЭреЗ рднреА, рдореИрдВ рд╕реНрдореГрддрд┐ рдХреЗ рдЖрд╡рдВрдЯрди рдХреА рддреНрд░реБрдЯрд┐ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рд╣реИред
рдЕрдм рдпрд╣ рдЕрдЪреНрдЫреА GPU рдореЗрдореЛрд░реА рд▓рдЧрддреА рд╣реИ

рдЕрддреАрдд рдореЗрдВ, рдореИрдВрдиреЗ рдореЗрдореЛрд░реА рдХреЛ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛:

gpus = tf.config.experimental.list_physical_devices('GPU')
try:
    tf.config.experimental.set_virtual_device_configuration(gpus[0], 
                 tf.config.experimental.VirtualDeviceConfiguration(memory_limit=5044)])
    """process...."""
except Exception as e:
    raise e

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ 6GB рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдФрд░ рдзрдиреНрдпрд╡рд╛рдж @roebel , рдЗрд╕ рдирдП рддреАрд░ TF_FORCE_GPU_ALLOW_GROWTH=true рд▓рд┐рдП рдореЗрд░реЗ GPU рдХреЛ рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП eb ред

рдореЗрд░рд╛ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛ред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдореЗрд░реЗ 2070 рдЖрд░рдЯреАрдПрдХреНрд╕ рдкрд░ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЯрд╛рдЗрдЯрди рдЖрд░рдЯреАрдПрдХреНрд╕ рдкрд░ рдирд╣реАрдВ, рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдкрд░ред

https://github.com/DeepLabCut/DeepLabCut/issues/837

рдмрд╕ CUDA 11 рдФрд░ cudnn 8.0 рдХреЗ рд╕рд╛рде Tensorflow 2.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рдпрд╣ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдореЗрд░реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ config.gpu_options.allow_growth = True рд╕рд╛рде рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 1.X рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

рдмрд╕ CUDA 11 рдФрд░ cudnn 8.0 рдХреЗ рд╕рд╛рде Tensorflow 2.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рдпрд╣ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдореЗрд░реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ config.gpu_options.allow_growth = True рд╕рд╛рде рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

2.2 рд╕реЗ 2.3 рддрдХ рдХреЗ рдЙрдиреНрдирдпрди рдХреЗ рд╕рд╛рде рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ TF_FORCE_GPU_ALLOW_GROWTH=false рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ (рдХрдо рд╕реЗ рдХрдо рдЕрдм рдореИрдВ delf рдбреЗрдореЛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ; рдХреБрдЫ рдФрд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдореИрдВ рдЕрднреА рднреА CUDA 10.1, Cudnn 7.6.5 рдкрд░ рд╣реВрдВред

рд╡рд╣рд╛рдБ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ 2 рдФрд░ python3 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдп рд╣реИ ???

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ:
RTX 2080

рдореБрдЭреЗ рдпрд╣ рд╕рдВрджреЗрд╢ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:


2020-08-20 12:38:27.172496: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2020-08-20 12:38:27.177708: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
Traceback (most recent call last):
  File "/home/anantha/Desktop/RaspiCar/car.py", line 85, in <module>
    tnet.train(x, y)
  File "/home/anantha/Desktop/RaspiCar/car.py", line 65, in train
    self.model.fit(x, y, epochs=epochs)
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 66, in _method_wrapper
    return method(self, *args, **kwargs)
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 848, in fit
    tmp_logs = train_function(iterator)
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 580, in __call__
    result = self._call(*args, **kwds)
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 644, in _call
    return self._stateless_fn(*args, **kwds)
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2420, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 1661, in _filtered_call
    return self._call_flat(
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 1745, in _call_flat
    return self._build_call_outputs(self._inference_function.call(
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 593, in call
    outputs = execute.execute(
  File "/home/anantha/.local/lib/python3.8/site-packages/tensorflow/python/eager/execute.py", line 59, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.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 sequential/conv2d/Conv2D (defined at /Desktop/RaspiCar/car.py:65) ]] [Op:__inference_train_function_951]

Function call stack:
train_function

рдпрджрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдореВрд▓ рдореЗрдВ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЙрдкрдЪрд╛рд░рд┐рдд рд╣реИрдВ (рдЬреЛ рдореИрдВ рдЖрдкрдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реВрдБ) рддреЛ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдЬреЛ рдЖрдк рдкрд┐рдЫрд▓реЗ 10-20 рдкрджреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдзрд╛рдЧрд╛ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛:

config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.compat.v1.Session(config=config)
sess.as_default()

рдЖрд░рдЯреАрдПрдХреНрд╕ 2080 рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛ред рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

рд╕рдмрдХреЛ рдзрдиреНрдпрд╡рд╛рдж

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо allow_growth рдлрд┐рдХреНрд╕ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдпрд╣рд╛рдБ RTX 2070ред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм TF_FORCE_GPU_ALLOW_GROWTH=true рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ) рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдореБрдЭреЗ рдмрд╣реБрдд рд╕реА рдореЗрдореЛрд░реА рдорд┐рд▓реА рд╣реЛ):

2020-10-17 16:35:11.717658: I tensorflow/stream_executor/cuda/cuda_driver.cc:831] failed to allocate 3.87G (4159818752 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory

рд▓реЗрдХрд┐рди рдореЗрд░реЗ GPU рдореЗрдВ 8GB рд╣реИ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ 250MB рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рдерд╛ред рддреЛ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛, рдпрд╣ 3.87GB рдХреНрдпреЛрдВ рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? (рдмреИрдЪ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдерд╛; рднрд╛рд░ HDf5 рдлрд╝рд╛рдЗрд▓ 200MB рд╕реЗ рдХрдо рд╣реИ)

TF_FORCE_GPU_ALLOW_GROWTH = рд╕рдЪ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
tf.config.experimental.set_memory_growth (gpu, True) рдиреЗ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:
GPU GTX 1650
рдХреНрдпреВрдбрд╛ -10-1 10.1.243-1
libcudn7 7.6.5.32-1-1 + cuda10.1
рдЙрдмрдВрдЯреВ 18.04.5 рдПрд▓рдЯреАрдПрд╕

рдЬреЛ рдХреЛрдИ рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ https://www.tensorflow.org/guide/gpu рдореЗрдВ рд╕реБрдЭрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
gpus = tf.config.experimental.list_physical_devices ('GPU')
рдЕрдЧрд░ gpus:
рдкреНрд░рдпрддреНрди:
# рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рдЬреАрдкреАрдпреВ рдореЗрдВ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
gpus рдореЗрдВ gpu рдХреЗ рд▓рд┐рдП:
tf.config.experimental.set_memory_growth (gpu, True)
рддрд╛рд░реНрдХрд┐рдХ_рдЧрдкрд╕ = tf.config.experimental.list_logical_devices ('GPU')
рдкреНрд░рд┐рдВрдЯ (len (gpus), "Physical GPUs", len (рддрд╛рд░реНрдХрд┐рдХ_gpus), "Logical GPU)")
рдИ рдХреЗ рд░реВрдк рдореЗрдВ RuntimeError рдХреЛ рдЫреЛрдбрд╝рдХрд░:
рдЬреАрдкреАрдпреВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдЧреНрд░реЛрде рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдкреНрд░рд┐рдВрдЯ (e)

рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╕ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

https://github.com/tensorflow/tfjs/issues/671#issuecomment -494832790

рдмрд╕ CUDA 11 рдФрд░ cudnn 8.0 рдХреЗ рд╕рд╛рде Tensorflow 2.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рдпрд╣ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдореЗрд░реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ config.gpu_options.allow_growth = True рд╕рд╛рде рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ 2.3.0 рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • CUDA 10.1
  • GPU: рдХреНрд╡рд╛рдбреНрд░реЛ RTX 6000
  • рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ 2.2.0
  • cudnn 7.6.5

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
tensorflow/stream_executor/cuda/cuda_dnn.cc:328] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
tensorflow.python.framework.errors_impl.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.

рдФрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб allow_growth = True рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдореИрдВрдиреЗ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдХреЛ 2.3.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рддреЛ рд▓рд╛рдЗрди allow_growth = True рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рднреА рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИред

рдареАрдХ рд╣реИ, рдЗрд╕реЗ tf-nightly-gpu-2.0-рдкреНрд░реАрд╡реНрдпреВ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ ipython рдиреЛрдЯрдмреБрдХ рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛:

Tetorflow.compat.v1 рдЗрдВрдкреЛрд░реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдкреНрд░реЛрдЯреЛ рд╕реЗ
Tetorflow.compat.v1 рд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ

config = configProto ()
config.gpu_options.allow_growth = рд╕рдЪ
рд╕рддреНрд░ = рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ (рд╡рд┐рдиреНрдпрд╛рд╕ = рд╡рд┐рдиреНрдпрд╛рд╕)

рдпрд╣ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

as1ndu picture as1ndu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jacobma-create picture jacobma-create  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahmed-touati picture ahmed-touati  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

waleedka picture waleedka  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

indiejoseph picture indiejoseph  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ