tensorflow 报错 InternalError Dst tensor is not initialized

Dst tensor is not initialized 为显存容量不够导致错误。
原因为tensorflow申请显存的方式比较贪心,貌似会无限申请显存,直到超出界限就报错。

解决办法:

  1. 修改系统环境变量 CUDA_VISIBLE_DEVICES=n (让cuda只能看到某个显卡,n为gpu编号。 gpu0 即n=0)参考: https://blog.csdn.net/u010454261/article/details/70236988

  2. 通过设定config为使用的显存按需自动增长,避免显存被耗尽,可进行有效的预防。

    定义TensorFlow配置
    config = tf.ConfigProto()

    配置GPU内存分配方式,按需增长,很关键
    config.gpu_options.allow_growth = True

    配置可使用的显存比例
    config.gpu_options.per_process_gpu_memory_fraction = 0.1

    在创建session的时候把config作为参数传进去
    sess = tf.InteractiveSession(config = config)
    参考: https://blog.csdn.net/feixiang7701/article/details/81515447

  3. 可以尝试修改batch_size,减少同时进入显存的数据数量。减少显存占用。

你可能感兴趣的:(tensorflow 报错 InternalError Dst tensor is not initialized)