排除其他原因后,可能是这样的
因为keras在训练时会一次占用完所有的内存,因此会修改源代码如下
但是在微调训练时总会报OOM错误,因此需要将之前分配的显存空间注释
系统中自带python环境,其位置在这里:
源码地址:/usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py
anaconda 虚拟环境,其位置在这里:
源码地址:/home/zhex/anaconda3/envs/keras/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py
else:
if _SESSION is None:
if not os.environ.get(‘OMP_NUM_THREADS’):
config = tf.ConfigProto(allow_soft_placement=True)
# config.gpu_options.per_process_gpu_memory_fraction = 0.2 #zhengxiangzhong add
print(‘keras/backend/tensorflow_backend.py: config.gpu_options.per_process_gpu_memory_fraction = 0.2 #zhengxiangzhong’)
else:
num_thread = int(os.environ.get(‘OMP_NUM_THREADS’))
config = tf.ConfigProto(intra_op_parallelism_threads=num_thread, allow_soft_placement=True)
# config.gpu_options.per_process_gpu_memory_fraction = 0.2 #zhengxiangzhong add
print(‘config.gpu_options.per_process_gpu_memory_fraction = 0.2 #zhengxiangzhong’)
_SESSION = tf.Session(config=config)
session = _SESSION
博客指出Keras训练时会占完所有内存,微调训练常报OOM错误,需注释之前分配的显存空间。同时给出系统自带Python环境和Anaconda虚拟环境中Keras相关源码的位置,还展示了部分修改后的代码。
987

被折叠的 条评论
为什么被折叠?



