Thx,I 've post on stackoverflow.I used to modify the kernel size double as stride in deconv operation.But I can still see checkerboard artifact. So I use feature resize and convolution with padding to enlarge my feature map.
I use nearest neighbor interpolation, then a conv op with padding =1 ,stride=1,kernel=3 to keep size unchanged.But something weird happens.
while using argmax to get the output, it generate all black image,but argmin to generate an inverse result(for black pixel in training mask ,it generate white, and vice versa)
I check the softmax output, find that it does treat the background pixel to 0 channel, so argmax op generate 0 at this pixel.But foreground pixel’s softmax output is even. just(0.5,0.5),so it can’t distinguish,so the argmax chose the natural order 0 to present the class,and generate 0. So when I use argmax it generate all black image, while the argmin to genrate reverse result,which means it distinguish the background,but at these even pixels,the network fails.
the only modification about my network is the replacement of deconv to a resize and conv op.so it must be.But I don’t know how to modify.
you can see the detail link here https://stackoverflow.com/questions/51202485/image-segmentation-cant-generate-result 48