Keras(theano) error while gpu



我已经很久了,我试图用一个问题来理解。请帮助我。

我正在尝试从标准示例 git lib(那里(运行"Keras"示例。

如果我使用 CPU,那么一切都会正常工作;但是,如果我尝试使用 GPU 加速,它会崩溃而不会捕获任何错误:

# 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)

我放了一些print(),以便更好地了解错误的地方。 我得到的:

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)*

如果我通过标准 python 控制台运行它,我将采取类似的错误。(蟒蛇.exe紧急停止(

我使用: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等。

这是我.theanorc.txt配置文件。(我相信这可以抓住他。如果我放device = cpu- 它工作正常(但很慢((

[global]
floatX = float32
device = cuda
optimizer_including = cudnn
[nvcc]
flags=-LC:UserskostyaAnaconda3envskeraslibs
compiler_bindir=C:Program Files (x86)Microsoft Visual Studio 14.0VCbin
[cuda]
root = C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0
[dnn]
library_path = C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0libx64
include_path = C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0include
[gpuarray]
preallocate = 0.8

您尝试将后端选项(preallocate(与CUDA后端一起使用gpuarray。来自Theano文档:

此值仅在使用(GpuArray 后端(时分配 GPU 内存。对于旧的后端,请参阅 config.lib.cnmem

尝试替换您的 Theano 配置

[gpuarray]
preallocate = 0.8

[lib]
cnmem = 0.8

最新更新