I am currently trying to implement FCN for semantic segmentation in TensorFlow as it was previously done in Caffe here.
Unfortunately I'm struggling with following 3 things:
1) How to map "Deconvolution" layer from Caffe to TensorFlow? Is it correctly tf.nn.conv2d_transpose
?
2) How to map "Crop" layer from Caffe to TensorFlow? Unfortunately I can't see any alternative in TensorFlow. Is there equivalent for this in TensorFlow?
3) Does Caffe SoftmaxWithLoss
correspond to TensorFlow softmax_cross_entropy_with_logits?
Thank you in advance for any advices, hints and help.
EDIT 9th May 2016:
1) I have found out that tf.nn.conv2_transpose
really corresponds to deconvolution layer.
2) Crop layer for now seems to be really a problem. I have found out that there actually exists tf.image.resize_image_with_crop_or_pad
, but this seems to be impossible to use for this purposes, because it can't work with dynamically created tensors nor with 4D tensors that you need to use after tf.nn.conv2_transpose
layer.
Some more information might be on: https://github.com/tensorflow/tensorflow/issues/2049
EDIT 17th May 2016:
I have followed @24hours advice and build FCN in tensorflow, though I was not able to make it train on data of the arbitrary size.
2) Crop layer is really not needed.
3) I have used tf.nn.sparse_softmax_cross_entropy_with_logits
at the end and it worked for me.
Thanks to the advice from @24hours I have found answer to all the 3 questions. Unfortunately FCN of arbitrary size in tensorflow is a bit more complicated than in caffe, but hopefully I'll solve that soon as well.
1) tf.nn.conv2d_transpose
can be used.
2) Crop layer is not needed, output_size
of the tf.nn.conv2d_transpose
layer can be used instead.
3) At the end I have used tf.nn.sparse_softmax_cross_entropy_with_logits
I found the way for solving arbitrary size image in tensorflow, by implementing crop layer. Now it can be used any size of image you want, when just single image is passed. More about my solution is here: https://stackoverflow.com/a/45632285/3134418
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With