tensorflow总结

最近的工作主要围绕tensorflow分布式(ps-worker,horovod)的改造,连最基本的模型搭建以及损失函数等都忘记了。出了问题都不知道该从何查起,做如下总结。

一、目前遇到的问题:

          imagenet 数据集训练alexnet模型,模型loss输出一直固定在6.9左右。已经查过以下问题。

  1. 模型的参数随着训练过程在变化
    1. 将模型输入设置为全白图片,检查模型输出logits,logits是在变化
    2. 这里面发现自己的问题:对于损失函数,以及top函数的输入logits的定义理解不强。对于是否经过softmax处理不明确。
  2. 模型的输入数据是否正确
    1. 将模型输入的图片写入txt文件,用plt画出来,发现图片是对的。
    2. 这里面发现自己的问题:对于图片预处理的把握不强,只是人云亦云的拿了别人的预处理函数,出现问题发现还是要按照自己的理解写程序。

二、问题疑似解决:

组内博士大神指点迷津,说降低学习率。

之前的学习率是0.1和0.01,目前改到0.0001,loss开始下降,模型开始训练。等模型跑的论述多一点,看情况是否持续。

三、总结

1.当模型训练loss不变时,第一步还是要改变LR或是OPT,当LR调小到一定程度后,确定不是LR过大后,在开始检查模型参数是否变化以及输入数据是否正确。

2.要对深度学习基本概念以及原理有一定总结,对于分类问题的loss,top1,top5等需要明确。要多读tensorflow源码,确定哈数对于各个input的要求(数据格式,数据类型)以及各个参数的含义。尤其是源码中对于各个函数的注释,里面大多列举了对于input的要求。

3.遇到问题多和别人交流,一个人看问题,容易陷入局部最优。这几天在解决问题的过程中,总是跳过最基本的检查点,这是不对的,也在无形之间走了很多弯路,并且要尽量心平气和的和别人交流。

猜你喜欢

转载自blog.csdn.net/qq_32110859/article/details/82685888