训练网络时遇到的小问题
问题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) 编辑 收藏 举报