Comments (6)
Hi, what dataset are you using it on? I see that it is pascal voc, does the mIoU stays this low after more that 10 iterations (I see you're using batches of two, so 20 images), because at the beginning, it is probable that some classes weren't seen, so the IoU for them is 0 and it reduces the mean.
from pytorch-segmentation.
Hi, glad to receive your reply! Yes, I'm using pascal voc dataset. This is the result after 1237 its, but I can't see it will show any increment...
from pytorch-segmentation.
Oh, I changed the 'split' from 'train_aug' to 'trainval_aug' in config.json just now. The number of total samples is changed, but the mIoU is still at a low level.
This is the result after 1 epoch.
The following is my config.json, which is modified from the origin to match the pretrained settings.
{
"name": "PSPNet",
"n_gpu": 1,
"arch": {
"type": "PSPNet",
"args": {
"backbone": "resnet50",
"freeze_bn": false,
"freeze_backbone": false
}
},
"train_loader": {
"type": "VOC",
"args":{
"data_dir": "/home/qiming/path/to/datasets",
"batch_size": 2,
"base_size": 420,
"crop_size": 380,
"augment": true,
"shuffle": true,
"scale": true,
"flip": true,
"rotate": true,
"blur": false,
"split": "trainval_aug",
"num_workers": 1
}
},
"val_loader": {
"type": "VOC",
"args":{
"data_dir": "/home/qiming/path/to/datasets",
"crop_size": 480,
"batch_size": 2,
"val": true,
"split": "val",
"num_workers": 1
}
},
"optimizer": {
"type": "SGD",
"differential_lr": true,
"args":{
"lr": 0.01,
"weight_decay": 1e-4,
"momentum": 0.9
}
},
"loss": "CrossEntropyLoss2d",
"ignore_index": 255,
"lr_scheduler": {
"type": "Poly",
"args": {}
},
"trainer": {
"epochs": 150,
"save_dir": "saved/",
"save_period": 10,
"monitor": "max Mean_IoU",
"early_stop": 10,
"tensorboard": true,
"log_dir": "saved/runs",
"log_per_iter": 20,
"val": true,
"val_per_epochs": 1
}
}
from pytorch-segmentation.
After some test, the problem is the low batch size, with only a batch of 2 the loss is a lot more noisy, and the batch norm's running params also change.
for example here are the results with a batch of 8:
Possible solutions, is to use a very low learning rate, set the batch norms training to false or of course a bigger batchsize.
from pytorch-segmentation.
After some test, the problem is the low batch size, with only a batch of 2 the loss is a lot more noisy, and the batch norm's running params also change.
for example here are the results with a batch of 8:
Possible solutions, is to use a very low learning rate, set the batch norms training to false or of course a bigger batchsize.
Thanks a lot. I've changed the batch size to 8 and run it on my lab's server. Now it works well.
It occurs to me that the papers about norm methods I recently read, saying that the batch norm will show bad performance with small batch size especially with batch size of exactly 2.
from pytorch-segmentation.
Glad it worked, yes you're write, with low batch size, the batch norm running mean and var will change significantly.
from pytorch-segmentation.
Related Issues (20)
- resume training problem HOT 1
- How to use the pretrained model to output one class HOT 1
- Using Unet for training in Freiburg Forest dataset HOT 1
- LOSS is shown as Nan. HOT 2
- Binary segmentation on a custom dataset HOT 1
- How to set the "weight" for CrossEntropyLoss2d in config file? HOT 1
- RuntimeError: cuda runtime error (11) : invalid argument at /pytorch/aten/src/THC/THCGeneral.cpp:383 HOT 1
- Resnet model URLs inaccessible HOT 1
- I have some environment problem.
- what is ADE20K configfile ? HOT 1
- hi,can you tell me if I want to train segnet,should I download vgg or other backbone?
- Test evaluation with custom Dataset HOT 1
- UNet decoder layers double conv might have logical errors HOT 1
- Issues with JSON parser in the train.py file.
- How to activate GPU training? HOT 2
- No Output on cityscape dataset
- URL broken for ResNet50, 101, 152 HOT 1
- RailSem19 Dataset
- FCN model can't restore the image to its original resolution
- Deeplab V3+ model doesn't support ResNet-50 as backbone?
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 pytorch-segmentation.