我试图在Windows10机器上运行keras和tensorflow,并在jupyter笔记本上使用GTX980GPU。如果我用我的gpu单独运行tensorflow,它的工作非常好,没有任何问题。但是,对于大量的年代,keras接口会出现问题。
keras模型使用GPU,并在我的历元数较低时给出输出,如下所示
with tf.device('/gpu:0'):
model.compile('adam', 'categorical_crossentropy', ['accuracy'])
history = model.fit(X_normalized,y_one_hot,batch_size=128,nb_epoch=2,validation_split=0.2)
以下是输出
在31367个样本上训练,在7842个样本上验证纪元1/2 31367/31367 [==============================] - 3s-损失: 1.7640-acc: 0.5438-val_loss: 1.2872-val_acc: 0.6486-ETA: 0-损失: 1.8827-acc: 0.5145-ETA: 0-损失: 1.7732-acc: 0.5416
纪元2/2 31367/31367[=======================================]2秒-损失:0.8539-会计科目:0.7765-val_损失:0.7958-val_会计科目:0.7615
如果epoch的数量很高,那么它将超时并出现以下错误,并且网页显示为busy
119999毫秒后WebSocket ping超时。
如何修复此错误?
我想这个问题与Windows上的TDR(超时检测和恢复)有关。基本上,操作系统认为GPU挂起,不再响应,因此操作系统将重新启动图形卡。您可以尝试禁用TDR或延长TDR的上限。更多细节可以找到https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys.