训练tensorflow-SSD时出现的问题与相应的解决方法

在windows系统下训练SSD时出现的问题,现记录下来警醒自己提醒他人~
SSD简易版代码:GitHub(https://github.com/HiKapok/SSD.TensorFlow.git)

问题1、
训练时出现这样的错误:
训练tensorflow-SSD时出现的问题与相应的解决方法_第1张图片
报错类型:需要输入二进制或解码后的字符串,但我们通过Scaffold命令得到的是bytes类型。
出现该问题的原因可能是 与TensorFlow的版本问题有关
解决方法:将文件的checkpoint路径改为“存放pretrained-vgg16的路径”,旧版本下的vgg16.ckpt只是一个文件,而新版本下的vgg16.ckpt蕴含四个文件
在这里插入图片描述
问题2:训练时出现内存溢出问题: Allocation of 737280000 exceeds 10% of system memory(五年老电脑配置果然跟不上…暴风哭泣)
解决方法:调小batch_size,但并不是最佳方法,目前尚在探索。
关于batch_size的复习:
batch_size:每批次训练数据量的多少。即一个iteration训练batch_size个样本,计算他们的平均损失值来更新参数。
batch_size大小设置:batch_size越小越不容易收敛,然而batch_size越小,权重更新越频繁,而且具有随机性,对于非凸损失函数来讲,更便于寻找全局更优。batch——size越大越能够表征全体数据的特征,其确定的梯度下降方向越准确(收敛速度越快),迭代次数少,但缺乏随机性,容易陷入局部最优。
这里还需说明的一点是batch_size=1时,我们将其称为在线学习

接下来就开始我们的“python train_ssd.py”的旅程啦~
尚待更新中…

你可能感兴趣的:(训练tensorflow-SSD时出现的问题与相应的解决方法)