因为刚开始学习tensorflow,安装的是CPU模式,通过一番努力(一个下午各类查资料安装),总算安装了Tensorflow-GPU版本,但在跑神经网络程序时(Lenet -5 神经网络,batch_size=100),发现运行一分钟多后,笔记本电脑发出滋滋响声,并且声音极大,感受要炸了的那种,应该是电脑硬件缘由,高性能电脑自动忽略。解决办法以下:(具体请看方案2,方案一没有卵用,完全解决见方案三)javascript
限制tensorflow占用GPU显存的比例,防止GPU高利用率工做
代码以下java
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
电脑仍声音极大,没法解决问题web
经过限制运行速度来限制GPU的使用,即在运行程序过程当中让电脑休眠一段时间,虽然运算速度下降了,但保护了电脑,同时实测运行速度仍然比在GPU上要快。网络
先设每次休眠时间为0.1s,svg
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,声音变大,没法接受的那种函数
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以上还不如使用第一种方法。`性能
网上查的,由于涉及硬件没有尝试。
是显卡上的风扇响。
一、把显卡风扇卸下来,检查散热片是否变形,修整变形散热片;如正常,用长毛刷刷散热片,再用吹风机吹去尘土。
二、检查风扇叶片是否变形或断裂,修整变形、断裂的风扇叶片;如正常,用毛刷或绵布给风扇除尘。
三、到风扇背面中心处,揭开塑料油封,在辊轴上,上少量防冻润滑油或缝纫机油,封好。若是两面都是密封的,用钻或锥子在风扇背面中心处钻个小洞,注意只钻壳,不要伤着里边的东西,也不要把钻下来的东西掉到里面,钻好后,看到轴承,就能够上油了。背面打开后,看不轴承,那就再用上边的办法钻另外一面。
四、按原样把风扇上好,开机试用。
五、风扇磨损严重或坏了,换新风扇。学习