tensorflow-gpu版本的训练基本操作

(1)主函数的写法:

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
with tf.device("/gpu:0"):
      运行代码

(2)会话的配置:

		"""
        动态申请显存
        config = tf.ConfigProto()
        config.gpu_options.allow_growth = True
        session = tf.Session(config=config)

        限制gpu的使用率
        (1)config = tf.ConfigProto()
           config.gpu_options.per_process_gpu_memory_fraction = 0.4  #占用40%显存
           session = tf.Session(config=config)
        (2)gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.4)
           config=tf.ConfigProto(gpu_options=gpu_options)
           session = tf.Session(config=config)

        设置使用那块GPU:
        os.environ['CUDA_VISIBLE_DEVICES'] = '0' #使用 GPU 0
        os.environ['CUDA_VISIBLE_DEVICES'] = '0,1' # 使用 GPU 01

        1. 记录设备指派情况 :  tf.ConfigProto(log_device_placement=True)
        设置tf.ConfigProto()中参数log_device_placement = True ,可以获取到 operations 和 Tensor 被指派到哪个设备(几号CPU或几号GPU)上运行,会在终端打印出各项操作是在哪个设备上运行的。

        2. 自动选择运行设备 : tf.ConfigProto(allow_soft_placement=True)
        在tf中,通过命令 "with tf.device('/cpu:0'):",允许手动设置操作运行的设备。如果手动设置的设备不存在或者不可用,就会导致tf程序等待或异常,为了防止这种情况,可以设置tf.ConfigProto()中参数allow_soft_placement=True,允许tf自动选择一个存在并且可用的设备来运行操作。

        tf提供了两种控制GPU资源使用的方法:
        一是让TensorFlow在运行过程中动态申请显存,需要多少就申请多少
        二是让Tensorflow在运行过程中限制GPU的使用率。
        """

        # 动态申请显存
        gpu_options = tf.GPUOptions(allow_growth=True)
        """
        配置会话运行参数以及GPU设备
        """
        self.sess_config = tf.ConfigProto(
            allow_soft_placement=True,
            log_device_placement=True,
            gpu_options=gpu_options)

(3)把配置传递到会话中去:

with self.sv.managed_session(config=self.sess_config) as sess:
			会话中运行代码

-----------------------------------------欢迎交流,留言

你可能感兴趣的:(AI-python)