训练网络时遇到的小问题

问题1:

训练时报错:cudasuccess …… out of memeory
这真的是GPU内存不够导致的,batchsize 太大了,设置小点

问题2:

制作lmdb文件时提示:
Corrupt JPEG data : premature end od data segment
这就是某个图像坏掉了,赶紧把它找出来

# -*- coding:utf-8 -*-

'''
在创建lmdb文件时显示
Corrupt JPEG data : premature end od data segment
以下程序为找出此图像
'''
import os
import cv2
def find_bad_image():
        dirnames = os.listdir('/home/meng/AID/')
        for dirname in dirnames:
                filenames = os.listdir('/home/meng/AID/%s'%(dirname))
                for filename in filenames:
                        print(filename)
                        a = cv2.imread('/home/meng/AID/%s'%(dirname+'/'+filename))#把这个函数的输出信息重定向到txt文件,从txt文件可得到哪一个图像错了

问题3

loss从一开始就上下小幅度波动?
使用SGD,小幅度波动是正常的。

问题4

test loss在迭代到4万次时,比train loss大了两个数量级
可能是fc8输出应该改到训练类别,以及数据集中噪声太大导致的

问题5

在用一千多张遥感图片train caffenet时,没用预训练,loss一致在1.65,迭代一万次,还是1.65,结果再次训练,就从一开始的很大的loss,变为0.000X了。不知道为什么。

而选择了用VOC2012预训练过后的权重去初始化caffenet,再次训练时,用的base_lr为0.01时,loss一致为85.X下不下去,结果把base_lr设置为0.001,迅速下降到0.000X

posted on 2017-10-24 22:56  MissSimple  阅读(717)  评论(0编辑  收藏  举报

导航