object(stdClass)#30 (2) { ["docs"]=> array(0) { } ["count"]=> int(0) } 一周bug(深度学习&&tensorflow)(一) - 爱码网

1

在运行tensorflow时,发现GPU利用率很低,但是显存却占满了,而cpu却高达1600%的利用率,自己代码中也添加了使用GPU运行,但是并没有什么用经过检查发现:

 一周bug(深度学习&&tensorflow)(一)

我本来只是想在提取训练集与测试集图片时用CPU,在训练时用GPU,但是我在print语句后,所有代码都放在了with语句下,这样即使我在以后的训练代码部分加了GPU使用语句但是还是会默认使用cpu

2在对损失加入正则项的时候出现

tf.losses.get_regularization_losses()的报错

一周bug(深度学习&&tensorflow)(一)

  这是说输入必须至少有一个张量,而且必须具有相同的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.


相关文章: