首页 > 解决方案 > 具有一个客户指标 IoU 的多输出回归

问题描述

我有用户通过框在图像上分割对象[Xmin, Ymin, Xmax, Ymax]

另外,我有真正的盒子[Xmin_true, Ymin_true, Xmax_true, Ymax_true]

我需要改进试图预测真实盒子的用户标签。指标是用户标签和真实标签之间的 IoU(联合交集)。

我尝试用 分别预测 X_min、Ymin、Xmax、Ymax LightGBM,但问题是它没有优化 IoU。

解决这个问题的最佳方法是什么?如我所见,boosting 不适用于这种情况,它应该是某种新的神经网络,输出很少,并且有一个自定义指标,例如 IoU。

你能建议一些开始吗?

现在我的代码看起来像这样,但它预测 X、Y 的常量值

NN=Sequential()
NN.add(Dense(128,activation='linear',input_dim=np.shape(X_train)[1]))
NN.add(Dropout(0.1))
NN.add(Dense(64,activation='relu'))
NN.add(Dropout(0.1))
NN.add(Dense(4,activation='linear'))

NN.compile(loss='mean_squared_error', optimizer='sgd', metrics=[IoU])
set_random_seed(0)

NN.fit(X_train, y_train, epochs=10, batch_size=32, verbose=2,
        validation_split=0.2, shuffle = True)

标签: pythonkerasneural-networkdeep-learning

解决方案


您可以像这里一样实现自定义损失函数并根据该链接应用它


推荐阅读