简体   繁体   中英

Keras(theano) error while gpu

Already long time I try to understand with a problem. Please help me.

I'm trying to run the 'Keras' example from the standard example git lib ( there ).

If I use CPU, then everything will works fine; But, If I try to use GPU acceleration, it will crash WITHOUT catching any errors:

# build the model: a single LSTM
print('Build model...')
print('   1')
model = Sequential()
print('   2')
model.add(LSTM(128, input_shape=(maxlen, len(chars))))
print('   3')
model.add(Dense(len(chars)))
print('   4')
model.add(Activation('softmax'))

print('   5')
optimizer = RMSprop(lr=0.01)

print('   Compilling')
model.compile(loss='categorical_crossentropy', optimizer=optimizer)

I put some print() for better understand the place of error. And what I get:

runfile('C:/Users/kostya/Desktop/temp/python/test.py', wdir='C:/Users/kostya/Desktop/temp/python/')
Using Theano backend.
Using cuDNN version 5110 on context None
Preallocating 1638/2048 Mb (0.800000) on cuda
Mapped name None to device cuda: GeForce GTX 650 (0000:01:00.0)
WARNING: Preallocating too much memory can prevent cudnn and cublas from working properly
DEVICE: cuda
corpus length: 206433
total chars: 79
nb sequences: 68798
Vectorization...
Build model...
   1
   2


Ядро остановилось, перезапуск *(It means: The Core has stopped, restarting)*

I will take Similar error, if I run it througth standatr python console. (python.exe emergency stops)

I use: Win 10-64, Python 3.6.1, Anaconda with activated separate enviroment, CUDA 8.0, cuRNN 5.1, mkl 2017.0.3, numpy 1.13.0, theano 0.9.0, conda-forge.keras 2.0.2, m2w64-openblas 0.2.19, conda-forge.pygpu 0.6.8, VC 14.0 etc.

That's my .theanorc.txt configurational file. (I'm sure this can catch him. If I put the device = cpu - it works fine (but slowly))

[global]
floatX = float32
device = cuda
optimizer_including = cudnn

[nvcc]
flags=-LC:\Users\kostya\Anaconda3\envs\keras\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

[cuda]
root = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

[dnn]
library_path = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
include_path = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include

[gpuarray]
preallocate = 0.8

You trying to use gpuarray backend option ( preallocate ) with CUDA backend. From Theano doc :

This value allocates GPU memory ONLY when using (GpuArray Backend). For the old backend, please see config.lib.cnmem

Try replace in your Theano config

[gpuarray]
preallocate = 0.8

with

[lib]
cnmem = 0.8

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM