Use System Memory Together with Graphic Memory in TensorFlow

The default options in tensorflow uses graphic memories only and all the tensors are allocated on boot. These are relatively faster, but are also disaster when using a graphic card with lower memories, and I am always getting OOMs from my model.

There are two ways to ease the issue, which are to enable tensorflow to utilize system memory and disable tensorflow to allocated all memory blocks on boot.

    config = tf.ConfigProto()
    config.gpu_options.allow_growth = True
    config.gpu_options.per_process_gpu_memory_fraction = 0.9
    with tf.Session(config=config) as sess:
        code to run...
        pass

The attribute config.gpu_options.per_process_gpu_memory_fraction specifies the fraction of maximum graphic memory to use before using system memory.

2017/11/8