我有一个约150张图像的小数据集 . 每个图像都有一个放在地板上的物体(白色和黑色矩形框) . 所有图像中的对象相同,但地板的图案不同 . 目标是训练网络以找到图像的中心 . 每张图片的尺寸为 256x256x3
.
Train_X
的大小为 150x256x256x3
,Train_y的大小为 150x2
(此处为150表示图像总数)
我理解150个图像太小了数据集,但我可以放弃一些准确性,所以我在Conv网上训练数据 . 这是我使用的convnet架构
-
Conv2D图层(过滤器大小为32)
-
激活Relu
-
Conv2D图层(过滤器大小为64)
-
激活Relu
-
Flattern图层
-
密集(64)层
-
激活Relu
-
密集(2)
-
激活Softmax
-
model.compile(loss = 'mse',optimizer = 'sgd')
观察:训练模型总是返回标准化的图像中心0.5,0.5作为“对象”的中心,即使在训练数据上也是如此 . 当我在train_X上运行预测函数时,我希望得到一个矩形对象的中心而不是图像的中心 . 我是否因为我的转换层选择而得到此输出?
1 回答
由于您未在详细信息中提及,以下建议(如果您尚未实施)可能会有所帮助:
1)归一化输入数据(例如,如果您正在处理输入图像,x_train = x_train / 255,然后将输入馈送到图层)
2)尝试对最后一个输出层进行线性激活
3)在更高的时期运行拟合,并尝试不同的批量大小