1
在运行tensorflow时,发现GPU利用率很低,但是显存却占满了,而cpu却高达1600%的利用率,自己代码中也添加了使用GPU运行,但是并没有什么用经过检查发现:
我本来只是想在提取训练集与测试集图片时用CPU,在训练时用GPU,但是我在print语句后,所有代码都放在了with语句下,这样即使我在以后的训练代码部分加了GPU使用语句但是还是会默认使用cpu
2在对损失加入正则项的时候出现
tf.losses.get_regularization_losses()的报错
这是说输入必须至少有一个张量,而且必须具有相同的shape和dtype,经过打印:
tf.losses.get_regularization_losses(),得到的是“[]”,说明,获取的是空值,这个时候就应该想我们建构的网络中到第有没有加weight_decay这一项,所以我就去查看网络定义中参数的赋值发现的确weights_regularizer=None,即我没有进行weight 正则项,因此我就添加了
weights_regularizer=slim.l2_regularizer(weight_decay),完美解决问题
3.
AttributeError: 'NoneType' object has no attribute 'lower'
出现这种错误,可以检查在传递参数的时候,某个参数不能传递为None却被传递为None了
4
no supported kernel for GPU devices isavailable.
解决了方式就是加上 config =tf.ConfigProto(allow_soft_placement=True) 这么一行就行了。现在默认就是使用 GPU.