如何解决keras Sequential() 使内核崩溃
只需使用 keras Sequential() 运行几行即可使 jupyter notebook 内核崩溃。首先是 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 库没有任何问题。
解决方法
我尝试在 anaconda 提示符下运行具有相同代码的 .py 文件并得到“无法加载动态库 'cudart64_110.dll”; dlerror: cudart64_110.dll not found' 所以我卸载了 CUDA 10.2(这是使用 3080 卡的唯一方法)并安装 11.3(这确实被建议作为在某些地方使用 3000x 系列的唯一选择),这出乎意料地适用于 3090。而且.py 和 JN 现在都可以正常运行,没有错误或 VRAM 超出限制。所以我的治疗方法是将CUDA更新到11.3版本
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。