只需运行几行keras Sequential()就会使jupyter笔记本内核崩溃。首先是GPU内存,它达到了所有的容量(无论是3090和24 Gb)。然后我采取了一些前因,比如
config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.compat.v1.Session(config=config)并且VRAM停止以推动该限制。但是内核仍然会崩溃。代码如下:
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM,Dense
cl=np.random.rand(200).reshape(-1, 1)
def processData(data,lb):
X,Y = [],[]
for i in range(len(data)-lb-1):
X.append(data[i:(i+lb),0])
Y.append(data[(i+lb),0])
return np.array(X),np.array(Y)
X,y = processData(cl,7)
X_train,X_test = X[:int(X.shape[0]*0.80)],X[int(X.shape[0]*0.80):]
y_train,y_test = y[:int(y.shape[0]*0.80)],y[int(y.shape[0]*0.80):]
model = Sequential()
model.add(LSTM(64,input_shape=(7,1)))在最后一行,内核死了。我不知道问题出在哪里。我的keras和tenserflow版本分别为2.4.3和'2.5.0-dev20210312‘。Cuda规范:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.2, V10.2.89我猜是3000x卡以及它们与Cuda和nn库的兼容性问题。尽管如此,我对yolov5库没有任何问题。
发布于 2021-04-21 00:32:18
我试图用同样的代码在anaconda提示符中运行.py文件,得到‘and’t load dynamic library ' cudart64_110.dll ';dlerror: cudart64_110.dll not found‘,所以我卸载了CUDA10.2(这是3080卡的唯一方法),然后安装11.3 (确实有人建议它是3000x系列的唯一选择),令人惊讶的是它在3090上工作得很好。.py和JN现在都可以正常运行,也不会出现错误或内存超出限制。因此,对我来说,解决办法是将CUDA更新到11.3版本
https://stackoverflow.com/questions/67168328
复制相似问题