<p>I suggest you use the U-Net container on NGC <a href="https://ngc.nvidia.com/catalog/resources/nvidia:unet_industrial_for_tensorflow" rel="nofollow noreferrer">https://ngc.nvidia.com/catalog/resources/nvidia:unet_industrial_for_tensorflow</a>
I also suggest you read this: Mixed Precision Training: <a href="https://arxiv.org/abs/1710.03740" rel="nofollow noreferrer">https://arxiv.org/abs/1710.03740</a>
<a href="https://developer.nvidia.com/blog/mixed-precision-training-deep-neural-networks/" rel="nofollow noreferrer">https://developer.nvidia.com/blog/mixed-precision-training-deep-neural-networks/</a></p>
<p>Let me know how you are progressing and if any public repo, happy to have a look</p>
How to understand/debug/visualize U-Net segmentation results
<p>I am training a U-Net architecture to for a segmentation task. This is in Python using Keras. I have now run into an issue, that I am trying to understand:</p>
<p>I have two very similar images from a microscopy image series (these are consecutive images), where my current U-Net model performs very good on one, but performs extremely poor on the immediately following one. However, there is little difference between the two to the eye and the histograms also look very much alike. Also on other measurements the model performs great across the whole frame-range, but then this issue appears for other measurements.</p>
<p>I am using data-augmentation during training (histogram stretching, affine transformation, noise-addition) and I am surprised that still the model is so brittle.</p>
<p>Since the U-Net is still mostly a black-box to me, I want to find out steps I can take to better understand the issue and then adjust the training/model accordingly.</p>
<p>I know there are ways to visualize what individual layers learn (e.g. as discussed F. Chollets book <a href="https://github.com/fchollet/deep-learning-with-python-notebooks/blob/master/5.4-visualizing-what-convnets-learn.ipynb" rel="nofollow noreferrer">see here</a>) and I should be able to apply these to U-Nets, which is fully convolutional.</p>
<p>However, these kinds of methods are practically always discussed in the realm of classifying networks - not semantic segmentation.</p>
<p>So my question is:</p>
<p>Is this the best/most direct approach to reach an understanding of how U-Net models attain a segmentation result? If not, what are better ways to understand/debug U-Nets?</p>