Tensorflow-GPU使用时笔记本电脑声音过大的问题

Tensorflow-GPU使用时声音过大的问题

由于刚开始学习tensorflow,安装的是CPU模式,经过一番努力(一个下午各种查资料安装),总算安装了Tensorflow-GPU版本,但在跑神经网络程序时(Lenet -5 神经网络,batch_size=100),发现运行一分钟多后,笔记本电脑发出滋滋响声,而且声音极大,感觉要炸了的那种,应该是电脑硬件原因,高性能电脑自动忽略。解决办法如下:(具体请看方案2,方案一没有卵用,彻底解决见方案三)

方案一

限制tensorflow占用GPU显存的比例,防止GPU高利用率工作
代码如下

config = tf.ConfigProto()
# 占用GPU 50%的显存
config.gpu_options.per_process_gpu_memory_fraction =0.5
with tf.Session(config=config) as sess:

发现执行程序,电脑仍然声音极大,无法解决。
将0.5改为0.1,即占用10%的GPU
电脑仍声音极大,无法解决问题

方案二

通过限制运行速度来限制GPU的使用,即在运行程序过程中让电脑休眠一段时间,虽然运算速度降低了,但保护了电脑,同时实测运行速度仍然比在GPU上要快。

1.每feed一次,程序休眠一次

先设每次休眠时间为0.1s,

with tf.Session() as sess:
    init_op = tf.global_variables_initializer()  # 赋初值
    sess.run(init_op)
    #tf.train.get_checkpoint_state(checkpoint_dir,latest_filename=None)该函数表示如果断点文件夹中包含有效断点状态文件,则返回该文件。
    #参数说明:checkpoint_dir:表示存储断点文件的目录 latest_filename=None:断点文件的可选名称,默认为“checkpoint
    ckpt = tf.train.get_checkpoint_state(MODEL_SAVE_PATH)
    if ckpt and ckpt.model_checkpoint_path:
        saver.restore(sess, ckpt.model_checkpoint_path)  # 加载模型参数
    # 训练模型
    for i in range(STEPS+1):
        start = (i * BATCH_SIZE) %NUM_TRAIN
        xs,ys=load_data.get_bitch(train_data,train_label,start,BATCH_SIZE)

        _,loss_value,step,learning_rate_val=sess.run([train_op,loss,global_step,learning_rate],feed_dict={x:xs,y_:ys})
        if i % 20== 0:
            print("在训练%d次后,loss为%g,learning_rate为%g" % (step, loss_value,learning_rate_val))
            saver.save(sess,os.path.join(MODEL_SAVE_PATH,MODEL_NAME),global_step=global_step)

        time.sleep(0.1)

发现有明显效果,但运行速度约为不休眠时的一半,但比CPU要快
将0.1改为0.05,声音变大,无法接受的那种

2.每save一次,程序休眠一次

    with tf.Session() as sess:
        init_op = tf.global_variables_initializer()  # 赋初值
        sess.run(init_op)
        #tf.train.get_checkpoint_state(checkpoint_dir,latest_filename=None)该函数表示如果断点文件夹中包含有效断点状态文件,则返回该文件。
        #参数说明:checkpoint_dir:表示存储断点文件的目录 latest_filename=None:断点文件的可选名称,默认为“checkpoint
        ckpt = tf.train.get_checkpoint_state(MODEL_SAVE_PATH)
        if ckpt and ckpt.model_checkpoint_path:
            saver.restore(sess, ckpt.model_checkpoint_path)  # 加载模型参数
        # 训练模型
        for i in range(STEPS+1):
            start = (i * BATCH_SIZE) %NUM_TRAIN
            xs,ys=load_data.get_bitch(train_data,train_label,start,BATCH_SIZE)

            _,loss_value,step,learning_rate_val=sess.run([train_op,loss,global_step,learning_rate],feed_dict={x:xs,y_:ys})
            if i % 20== 0:
                print("在训练%d次后,loss为%g,learning_rate为%g" % (step, loss_value,learning_rate_val))
                saver.save(sess,os.path.join(MODEL_SAVE_PATH,MODEL_NAME),global_step=global_step)
           	    time.sleep(2)

理论上,每feed20次休眠2s,与每feed1次休眠0.1s所休眠的时间相同,这种情况下运行发现电脑声音仍极大,与不休眠时差别不大。
既然2s仍然无法解决,更不用说2s以下的休眠时间了,而休眠2s以上还不如使用第一种方法。`

综上所诉,应该每feed一次,程序休眠一次,各种电脑设置时间可能不一致,这里建议0.1s

方案三

网上查的,因为涉及硬件没有尝试。
是显卡上的风扇响。
1、把显卡风扇卸下来,检查散热片是否变形,修整变形散热片;如正常,用长毛刷刷散热片,再用吹风机吹去尘土。
2、检查风扇叶片是否变形或断裂,修整变形、断裂的风扇叶片;如正常,用毛刷或绵布给风扇除尘。
3、到风扇背面中心处,揭开塑料油封,在辊轴上,上少许防冻润滑油或缝纫机油,封好。如果两面都是密封的,用钻或锥子在风扇背面中心处钻个小洞,注意只钻壳,不要伤着里边的东西,也不要把钻下来的东西掉到里面,钻好后,看到轴承,就可以上油了。背面打开后,看不轴承,那就再用上边的办法钻另一面。
4、按原样把风扇上好,开机试用。
5、风扇磨损严重或坏了,换新风扇。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值