Comments (9)
Hi,
That's so weird! so so weird!!
Although there are some problems with your UNet implementation, but I found that the blank issue does not arise from UNet, or generally model since I used the implementations by others while using the rest of your code, and the problem exists!!
I'm going to spend some time on the code. Will update you on this
Thanks
Saeed
from piwise.
I finally found the problem!!
For the last set of convolutions, that is 128-> 64 -> 64 -> 1, the activation function should not be used!
The activation function causes the values to vanish!
I just removed the nn.ReLU() modules on top of these convolution layers and now everything works like a charm!
Saeed
from piwise.
Hi,
yes see this issue.
You can also check out semseg as stated in the README.
I cannot say why there is so bad convergence with my implementation(s) - if I would know I would fix it believe me. That said different researchers tried their luck and did not find the problem - though I don't want to preclude that it could be something really simple (i.e. wrong sign on the loss).
As this is not really my research area - I initially just wrote it together to cross check something else - there is low probability that I will find a solution to this in the near future. I also lack on hardware resources at the moment.
I would be really happy if someone would find the mistake or just PR a complete rewritten u-net, however I am aware that also other people are limited on time.
So to cut a long story short: checkout semseg and/or double check my u-unet implementation if you find something (on u-net or the loss).
Good luck!
from piwise.
from piwise.
Sure,
I will do a pull request
from piwise.
@saeedizadi I am now working on a different project which utilizes the u-net architecture and found some solutions:
- Use leaky relus in the encoder/downsample part
- Small learn rate (i.e. 1e-4)
- Use transposed Convolutions
More changes which may improve performance:
- Use per image standardization or normalize image to
- Use Xavier initialization on convolution weights
from piwise.
@bodokaiser thank you for your information :)
from piwise.
Hi, Saeedizadi
I seems like I got the similar problem with yours. What's the meaning of your: blank output maps?
My forward result will be into one label at every iteration, like: all pixels have the same prediction label.
from piwise.
Hi JiayuanSternLi
By blank image, I meant an image in which all pixel labels are 0 or very small values, e.g. 0.01 in the range of [0,1].
from piwise.
Related Issues (20)
- Semantic segmentation for binary masks (2 class: background/foreground object) HOT 9
- SyntaxError: invalid syntax in main.py HOT 2
- Object detection HOT 9
- Syntax Error in main.py HOT 2
- No model named segnet2? HOT 4
- Evaluation error HOT 4
- Out of Memory Issue HOT 2
- No folder named "Labels", Tuple Index out of range, size mismatch. HOT 6
- Is there some question in transform.py? HOT 4
- The result of the semantic segmentation HOT 1
- A question about the size of output imgae HOT 1
- This question is about how to eliminate the white box in the image HOT 1
- Some questions about dataset HOT 4
- About an inexplicable bug HOT 1
- It's different with the standard SegNet HOT 9
- Does the relization of the Segnet in network.py match the paper of segnet? HOT 2
- 用自己的数据集后得到的预测结果全红 HOT 1
- Softmax in the evaluation stage HOT 1
- Pretrained models HOT 23
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from piwise.