tensorflow学习笔记:jupyter notebook使用tensorflow-gpu或Keras训练卷积时jupyter服务重启问题解决

jupyter notebook使用tensorflow-gpu或Keras训练卷积时jupyter服务重启问题解决

最近利用jupyter notebook训练tensorflow卷积神经网络的时候,遇到了一次服务似乎挂掉了,但会立刻重启的问题。原以为它重启之后 就没问题了,但是重启了n多遍还是不行。
在这里插入图片描述
在网上直接照这个问题似乎没有找到对应的答案,自己踩了坑得爬出来才行。下面记录一下检查以及解决过程。

首先把jupyter notebook中的代码移到pycharm中运行了一遍,发现只有日志信息输出,其他什么都没有。这不是软件带来的问题。

接着,我在tf.Session中加入了一些print输出一些信息进行调错,发现在加载数据集的地方出现了问题。这是想到了内存不足的问题,但是我在任务管理器中看到内存剩余挺多的,然后GPU利用率挺高的。如果不是资源不足问题,那么问题出在那里?

好吧。就是资源分配问题没有处理好,我们在Session中配置一下就可以了。代码如下:

os.environ["CUDA_VISIBLE_DEVICES"] = '0'   #指定第一块GPU可用
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.5  # 程序最多只能占用指定gpu50%的显存
config.gpu_options.allow_growth = True      #程序按需申请内存
with tf.Session(config = config) as sess:
	#接着写程序代码

重点是config.gpu_options.allow_growth = True这一句 ,它用于程序按需申请内存。

针对Keras

(更新于2019-12-27)如果Keras出现这个问题可以这么做:

import keras.backend.tensorflow_backend as ktf
import tensorflow as tf
import os

os.environ["CUDA_VISIBLE_DEVICES"] = "1"

config = tf.ConfigProto()
config.gpu_options.allow_growth=True   #不全部占满显存, 按需分配
sess = tf.Session(config=config)
ktf.set_session(sess)

是因为Keras默认占满GPU资源的。

写在最后

在踩坑过程中还研究了另外一个关于GPU的问题(想看点我),问题的出现就是为了让我们更好地了解事物,希望可以帮到你。
欢迎各位大佬在评论区中留下宝贵的意见,带我进步。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值