tensorflow2.0内存突然增加,然后溢出

时间:2019-11-06 04:02:41

标签: tensorflow tensorflow2.0

我使用迁移学习MobileNetV2,batch_size = 12,输入图像大小(512,512,3)处理数据'tfrecord',最初的内存是正常的,但是经过400批左右,它将快速增长然后溢出

日志显示,在11:41时内存突然从6.5g增加到超过26gb,导致内存溢出

  

时间戳级别消息Nov 6,2019,11:41:01   AM警告警告:root:内核8e667f48-ab7f-4f70-96b1-12f8f0ae98b4   重启Nov 6,2019,11:41:01 AM INFO KernelRestarter:正在重启   内核(1/5),保留随机端口Nov 6,2019,11:34:53   AM WARNING 2019-11-06 03:34:53.925880:我   tensorflow / stream_executor / platform / default / dso_loader.cc:44]   成功打开动态库libcudnn.so.7 Nov 6,2019,   11:34:36 AM WARNING 2019-11-06 03:34:36.746117:I   tensorflow / core / common_runtime / gpu / gpu_device.cc:1304]已创建   TensorFlow设备(/ job:localhost /副本:0 /任务:0 /设备:GPU:0与   10805 MB内存)->物理GPU(设备:0,名称:Tesla K80,PCI总线   id:0000:00:04.0,计算能力:3.7)2019年11月6日,11:34:36   AM WARNING 2019-11-06 03:34:36.745232:我   tensorflow / stream_executor / cuda / cuda_gpu_executor.cc:1006]成功   从SysFS读取的NUMA节点的值为负(-1),但必须存在   至少一个NUMA节点,因此将NUMA节点返回零2019年11月6日,   11:34:36 AM警告2019-11-06 03:34:36.744291:I   tensorflow / stream_executor / cuda / cuda_gpu_executor.cc:1006]成功   从SysFS读取的NUMA节点的值为负(-1),但必须存在   至少一个NUMA节点,因此将NUMA节点返回零2019年11月6日,   11:34:36 AM警告2019-11-06 03:34:36.744095:I   tensorflow / core / common_runtime / gpu / gpu_device.cc:1178] 0:N 11月6日,   2019,11:34:36 AM警告2019-11-06 03:34:36.744078:I   tensorflow / core / common_runtime / gpu / gpu_device.cc:1165] 2019年11月6日,   11:34:36 AM WARNING 2019-11-06 03:34:36.744053:I   tensorflow / core / common_runtime / gpu / gpu_device.cc:1159]设备   将StreamExecutor与强度1边缘矩阵互连:2019年11月6日,   11:34:36 AM警告2019-11-06 03:34:36.743980:I   tensorflow / core / common_runtime / gpu / gpu_device.cc:1746]添加可见   gpu设备:0

我在Google'colab'上运行的程序通过将图片打包到'tfrecord'中来将图片上传到Google云盘上,从而采用了tensorflow2.0。我试图多次更改'batch_size',但都运行到一定批次的内存用完了

class DisplayCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs=None):
    clear_output(wait=True)
    show_predictions()
    print ('\nSample Prediction after epoch {}\n'.format(epoch+1))

STEPS_PER_EPOCH = TRAIN_LENGTH // BATCH_SIZE    
EPOCHS = 10
VAL_SUBSPLITS = 5
VALIDATION_STEPS = TRAIN_LENGTH//BATCH_SIZE//VAL_SUBSPLITS

model_history = model.fit(train_dataset, epochs=EPOCHS,
                          steps_per_epoch=STEPS_PER_EPOCH,     
                          validation_steps=VALIDATION_STEPS,
                          validation_data=test_dataset,
                          callbacks=[DisplayCallback()])

内存不会溢出...但是它溢出了At the beginning of normal running memory did not slowly increase

Memory suddenly increases and then it overflows

0 个答案:

没有答案