具有一个自定义指标IoU的多输出回归

时间:2019-07-12 14:32:31

标签: python keras neural-network deep-learning

我有一些用框[Xmin, Ymin, Xmax, Ymax]

隔离图像上的对象的用户

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

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

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

解决此问题的最佳方法是什么?如我所见,在这种情况下,增强功能将不起作用,这应该是一种新的神经方法,几乎​​没有输出,并且只有一个自定义指标,例如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)

1 个答案:

答案 0 :(得分:0)

您可以实现自定义丢失功能,例如here,并根据that link

应用它