TensorFlow-GPU导致python崩溃

时间:2018-03-11 19:54:33

标签: python tensorflow machine-learning keras

我对tensorflow-gpu 1.6.0有些麻烦。

我正在机器学习中完成"贝叶斯方法的最终分配"课程上课。

https://www.coursera.org/learn/bayesian-methods-in-machine-learning

当我使用tensorflow-gpu(pip install tensorflow-gpu)在GPU上运行代码时,python崩溃,但如果我在CPU上使用标准张量流(pip isntall tensorflow)运行相同的代码,则代码运行速度很快没有错误或崩溃。显然我在安装标准版之前没有使用gpu版本,反之亦然。

关于python崩溃,调试器显示以下消息:

Unhandled exception at 0x00007FFDAB4DB79E (ucrtbase.dll) in python.exe

这是入门代码:

import numpy as np
import matplotlib.pyplot as plt
from IPython.display import clear_output
import tensorflow as tf
import GPy
import GPyOpt
import keras
from keras.layers import Input, Dense, Lambda, InputLayer, concatenate, Activation, Flatten, Reshape
from keras.layers.normalization import BatchNormalization
from keras.layers.convolutional import Conv2D, Deconv2D
from keras.losses import MSE
from keras.models import Model, Sequential
from keras import backend as K
from keras import metrics
from keras.datasets import mnist
from keras.utils import np_utils
from tensorflow.python.framework import ops
from tensorflow.python.framework import dtypes
import utils
import os
%matplotlib inline

sess = tf.InteractiveSession()
K.set_session(sess)

latent_size = 8

vae, encoder, decoder = utils.create_vae(batch_size=128, latent=latent_size)
sess.run(tf.global_variables_initializer())
vae.load_weights('CelebA_VAE_small_8.h5')

K.set_learning_phase(False)

latent_placeholder = tf.placeholder(tf.float32, (1, latent_size))
decode = decoder(latent_placeholder)

此代码在GPU上执行但在CPU上执行时导致python崩溃:

plt.figure(figsize=(10, 10))
for i in range(25):
    plt.subplot(5, 5, i+1)
    image = sess.run(decode, feed_dict={latent_placeholder: np.random.normal([0]*latent_size,[1]*latent_size)[:, np.newaxis].T})[0]### YOUR CODE HERE
    plt.imshow(np.clip(image, 0, 1))
    plt.axis('off')

其他信息:

  • python version 3.6.4
  • tensorflow 1.6.0
  • tensorflow-gpu 1.6.0
  • cuDNN 7.1.1 for CUDA 9.0
  • 带有补丁1和2的CUDA 9.0
  • GPU 1080ti,驱动程序391.01

你可以在wetransfer上找到python笔记本和权重: https://wetransfer.com/downloads/59b9011823d38c204b5ef5a2b58f5e8e20180311201808/32c900

1 个答案:

答案 0 :(得分:2)

我发现了这个问题。 cuDNN 7.1.1还没有使用tensorflow-gpu。我将cuDNN降级到7.0.5,现在代码按预期工作。

如果您遇到像我这样的问题,您必须降级cuDNN!