Tensorflow+keras解决cuDNN launch failure : input shape ([32,2,8,8]) [[{{node sequential_1/batch_nor(代码

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow+keras解决cuDNN launch failure : input shape ([32,2,8,8]) [[{{node sequential_1/batch_nor(代码相关的知识,希望对你有一定的参考价值。

1 引言

环境

Python 3.6 
tensorflow 2.0

在使用以下代码时,在gen_imgs = self.generator.predict([noise, sampled_labels])这行代码报错cuDNN launch failure : input shape ([32,2,8,8])[[{{node sequential_1/batch_normalization_2/cond/else/_1/FusedBatchNormV3}}]]


from __future__ import print_function, division

from keras.datasets import mnist
from keras.layers import Input, Dense, Reshape, Flatten, Dropout, multiply
from keras.layers import BatchNormalization, Activation, Embedding, ZeroPadding2D
from keras.layers.advanced_activations import LeakyReLU
from keras.layers.convolutional import UpSampling2D, Conv2D
from keras.models import Sequential, Model
from keras.optimizers import Adam

def train(self, epochs, batch_size=128, sample_interval=50):

        # Load the dataset
        (X_train, y_train), (_, _) = mnist.load_data()

        # Configure inputs
        X_train = (X_train.astype(np.float32) - 127.5) / 127.5
        X_train = np.expand_dims(X_train, axis=3)
        y_train = y_train.reshape(-1, 1)

        # Adversarial ground truths
        valid = np.ones((batch_size, 1))
        fake = np.zeros((batch_size, 1))

        for epoch in range(epochs):

            # ---------------------
            #  Train Discriminator
            # ---------------------

            # Select a random batch of images
            idx = np.random.randint(0, X_train.shape[0], batch_size)
            imgs = X_train[idx]

            # Sample noise as generator input
            noise = np.random.normal(0, 1, (batch_size, self.latent_dim))

            # The labels of the digits that the generator tries to create an
            # image representation of
            sampled_labels = np.random.randint(0, 10, (batch_size, 1))

            #报错的代码
            gen_imgs = self.generator.predict([noise, sampled_labels])

            # Image labels. 0-9 
            img_labels = y_train[idx]

            # Train the discriminator
            d_loss_real = self.discriminator.train_on_batch(imgs, [valid, img_labels])
            d_loss_fake = self.discriminator.train_on_batch(gen_imgs, [fake, sampled_labels])
            d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)

            # ---------------------
            #  Train Generator
            # ---------------------

            # Train the generator
            g_loss = self.combined.train_on_batch([noise, sampled_labels], [valid, sampled_labels])

            # Plot the progress
            print ("%d [D loss: %f, acc.: %.2f%%, op_acc: %.2f%%] [G loss: %f]" % (epoch, d_loss[0], 100*d_loss[3], 100*d_loss[4], g_loss[0]))

            # If at save interval => save generated image samples
            if epoch % sample_interval == 0:
                self.save_model()
                self.sample_images(epoch)

2 解决办法

使用以下代码

import os
os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'

以上是关于Tensorflow+keras解决cuDNN launch failure : input shape ([32,2,8,8]) [[{{node sequential_1/batch_nor(代码的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow+keras解决cuDNN launch failure : input shape ([32,2,8,8]) [[{{node sequential_1/batch_nor(代码

使用 GPU 和 CUDA、cuDNN、Anaconda、RTX 3060 Ti 运行 TensorFlow/Keras

安装keras tensorflow指定版本后需要安装指定版本的CUDA和cudnn,否则报错 ImportError: Could not find ‘cudart64_90.dll‘.

安装keras tensorflow指定版本后需要安装指定版本的CUDA和cudnn,否则报错 ImportError: Could not find ‘cudart64_90.dll‘.

Keras学习环境配置-GPU加速版(Ubuntu 16.04 + CUDA8.0 + cuDNN6.0 + Tensorflow)

ubuntu16.0 anaconda3 安装tensorflow keras错误集锦