Comments (3)
That's correct.
Transfer learning is common practice and there are much better analyses than anything I might be able to blurt out here. ;) Here it goes though.
The reason it is preferred is that image classification is an easier task than semantic segmentation and the first layers store very basic information that is shared in most tasks in vision; therefore instead of trying to learn a complex task right away, solving a simple one first often helps. As classification is established as a popular and simple learnable task and ImageNet as a ubiquitous dataset for classification, learning a representation using both is almost a no-brainer: it's a standardized procedure (much more than segmentation) and it provides you with a means to check the performance of your network a second time. When that auxiliary loss converges, you can finetune the learned weights on another task; in this case, semantic segmentation.
I decided not to train on ImageNet but this is definitely something that could have been useful. Last time I run an evaluation script on enet, I got an [email protected] of less than 10% which lead me to believe there's a problem with my implementation. Since then, I have been busy with the preprocessing pipeline to make sure there's nothing wrong there and that has taken a large chunk of my time working on enet (I'm still not satisfied with the result). By the way, there are some modifications in the code that I am going through (I'm fixing the evaluation scripts), so expect some more commits till the end of the week and, if all goes well, a pretrained model.
As the next step, I should probably add support for the datasets from the paper (Cityscapes and CamVid) and run ENet on those to make sure I've not made some horrible, stupid mistake.
from enet-keras.
The current codebase uses the same weights that the original authors used for their implementation, therefore the question of end-to-end training (for practical reasons) is now more or less irrelevant, therefore I'm closing the issue. However, feel free to reopen it if you think it's necessary and/or ask more questions.
The model that I'm using right now has been pretrained on imagenet and and fine-tuned on cityscapes.
from enet-keras.
Technically I could add the option to pretrain the network on classification (using only the encoder) but that's a really low priority feature for me right now.
from enet-keras.
Related Issues (20)
- [Feature request] Multi-scale inputs (arbitrary shape)
- Bad results - Investigate reason HOT 22
- Add support for more datasets HOT 1
- How to save checkpoint during training? HOT 3
- Speed up inference HOT 3
- pretrained file and enet_unpooling_best.h5 missing? HOT 3
- Where to download the pretrained/torch_enet.pkl file? HOT 11
- Output shows no segmentation on a test image HOT 5
- UpSampling vs MaxUnpooling HOT 2
- COCO labels HOT 3
- about the label format HOT 2
- questioins about the bottleneck definition
- src/models/from_torch.py needs to be updated HOT 1
- SUNRGBD2Dseg = hdf5storage.loadmat(filename) HOT 1
- Fix dependencies HOT 3
- Replace conda with poetry HOT 1
- Fix data loading from disk
- datasets.py standardization HOT 1
- Can't train on MSCOCOReduced
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 enet-keras.