-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DeepLab EDDL and PyTorch comparison #302
Comments
Hi,
|
|
We still doesn't support dilations |
We support them only with CuDNN. With CPU or GPU (without CuDNN) no. |
Hi, |
Hi,
|
Hi, I am doing some tests with the Pytorch and EDDL versions and I think that there is a problem with the data that is being feed to the model.
And with Pytorch the same:
Now I am printing the max, min and mean values for each batch that is being loaded during training and I get very different results with the EDDL and the Pytorch.
With Pytorch:
Can you see if the same thing happens to you? Maybe the transformations that are being made to the images are not equivalent. |
I think you have to comment line 58 in dataset.py where images are divided by 255. You asked for the code without augmentations so I remove also the Normalize, but I had to add line 58 because in PyTorch the division is done inside the Normalize (while in ECVL there are two separate augmentations). |
EDDL BatchNorm momentum (and Keras) is (1-Pytorch_momentum) Then float bn_momentum = 0.1f, bn_eps = 1e-5f; Should be: float bn_momentum = 0.9f, bn_eps = 1e-5f; |
So if I understand correctly the momentum in EDDL is how much of the running average is kept, and not how much of the current batch average is used to update: eddl/src/hardware/cpu/nn/cpu_bn.cpp Lines 147 to 150 in e6de5aa
Let's see if this fixes it. |
Yes you are right. Alvaro just try it however it seems that it doesn't fix the problem... what is rare.... |
Hi,
I'm trying to reproduce DeepLab for image segmentation with EDDL starting from this PyTorch model, but it achieves about ~0.1 less of IoU.
I'm using EDDL v1.0.3b with CUDNN and ECVL v0.4.2.
This is the configuration of EDDL and PyTorch trainings:
I tried also with the dice loss and results are similar.
This is the model used:
To reproduce the experiments you can replace an ECVL example with this skin_lesion_segmentation code modifying the
dataset_path
to the ISIC segmentation dataset (link of resnet101 pretrained ONNX).Do you spot some mistakes in the model definition or in the way I use the layers of the pretrained network combined with those of DeepLab that have to be trained from scratch?
The text was updated successfully, but these errors were encountered: