TensorFlow的几点小知识

本文介绍如何在TensorFlow中配置GPU资源,包括调节GPU内存占比和按需分配等技巧;此外还介绍了如何在训练过程中指定训练部分变量、实现权值共享以及指定GPU运行任务的方法。

1、调节GPU占比

TensorFlow比较贪心,默认会占用全部的GPU的资源。可以通过以下方式调节:

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9
session = tf.Session(config=config)

另外,可以按需分配GPU资源

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)

2、寻找网络中的变量

在训练网络的过程中,可能只需要训练部分参数,固定其他参数,那怎么用TF实现呢?

我们可以在定义参数的时候采用

with tf.variable_scope('var'): 
这一结构,相当于这些变量都是在scope 'var'下面。然后使用
theta = tf.get_collection(tf.GraphKeys.TRAINING_VARIABLES, scope='var')
就可以提取这些变量,在训练的时候,指定这些变量作为训练变量即可。

optimizer = ly.optimize_loss(loss=your_loss, learning_rate=your_learning_rate, optimizer=tf.train.AdamOptimizer, variables=theta, ...)


3、权值共享

我们可以使用

with tf.variable_scope('var'): 
来实现这一功能。假设A,B,C权值共享,先定义A的网络结构和scope,然后定义B,C相同的网络结构,使用和A相同的scope,同时将reuse设置为True

with tf.variable_scope('var', reuse=True): 

4、多GPU中,指定GPU运行TF

CUDA_VISIBLE_DEVICES=0 python -i train.py


未完待续。。。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值