hamidriasat / unet-3-plus Goto Github PK
View Code? Open in Web Editor NEWA Full-Scale Connected UNet for Medical Image Segmentation
License: MIT License
A Full-Scale Connected UNet for Medical Image Segmentation
License: MIT License
Hi author, did you use binary cross entropy for supervised classification in the loss, I noticed this is mentioned in the author's paper.
File "/home/whj2023/unet3/unet3/data_generator.py", line 79, in getitem
return self.__data_generation(indexes)
File "/home/whj2023/unet3/unet3/data_generator.py", line 144, in __data_generation
batch_images[i] = image
ValueError: setting an array element with a sequence.
why?
Hi,
May I ask which part of the code should I change to make unet3+ with DS and CGM trainable? I got INVALID_ARGUMENT: required broadcastable shapes error when trying to train with it.
Specifically, I am only using your code to initialize the model, hopefully, I want it to be trained with the input shape of (None, None,8) for binary segmentation. Please let me know if you want more details.
Best
Yili
Hi, sorry for disturbing you. Do you have any pytorch code for hybrid loss you have used here? if so, I would be really grateful if you share it with me.
This code reads very well. It's nicely coded and easy to read and understand the whole idea of the U-Net3+. So many thanks to you.
I just want to let you know that there might be some typos.
d4_d3 = k.layers.UpSampling2D(size=(2, 2), interpolation='bilinear')(d4)
d4_d3 = conv_block(d4_d3, cat_channels, n=1)
I guess all 'd4's should be 'e4'
e4_d3 = k.layers.UpSampling2D(size=(2, 2), interpolation='bilinear')(e4)
e4_d3 = conv_block(e4_d3, cat_channels, n=1)
Hi;
I'm not trying to point to any issue. I just couldn't understand your logic. My understanding is in any Unet you need both the output of pooling (for downward path) and output of convolution for the skip connection. so some thing like this:
c1, p1 = down_block(p0, f[1])
But I notice in your code your are overwriting the skip value, like this:
e2 = k.layers.MaxPool2D(pool_size=(2, 2))(e1) # 160*160*64
e2 = conv_block(e2, filters[1]) # 160*160*128
here e1 gets overwritten, which confuse me. I hope my question is clear.
Thank you!
Hi,
Thanks for making the code of UNet-3-Plus simpler, however I have 2 questions and I would be very grateful to hear from you:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.