我有一个CNN,可以输入卫星图像,并且应该在发现汽车的地方输出一个遮罩。我已经手动标记了图像,并为每个图像创建了遮罩,如果该像素中有汽车的一部分,则每个像素为1,否则为0。
我正在尝试制定出最佳的输出层激活功能和损失功能,我正在寻求意见。我知道那里有很多信息,但是我发现自己对问题是回归还是分类感到困惑。
有人可以提出他们的意见吗?我目前在keras中使用以下输出和损失:
conv10 = Conv2D(1, 1, activation='sigmoid')(conv9)
model = Model(inputs=[inputs], outputs=[conv10])
model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy'])
这是个好主意吗?谢谢!
答案 0 :(得分:2)
从我的角度来看,这似乎是个好主意,因为您想为P(px is part of a car | image)
中的每个像素px
输出概率image
。因此,这是一个二进制分类问题,使用binary_crossentropy
损失函数(在输出层中加上S型激活)是合适的。