Skip to content
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

parameters #1

Open
mariochr opened this issue May 10, 2018 · 4 comments
Open

parameters #1

mariochr opened this issue May 10, 2018 · 4 comments

Comments

@mariochr
Copy link

Hi

First thanks for the code. I wanted to try it out myself but I got stuck.
When I train it and let it validate in the end it will classify all in the same class... it doesn't learn anything at all.

I'm not sure but probably the parameters are wrong? What did you use?

I used for one:

input_data_path= D:/Master/merged/
output_path(for model, images, etc)= D:/Master/Output/FDSI/
former_model_path(only for testing purpose)=
learningRate= .0003
weight_decay= .5
batch_size= 100
niter= 5000
crop_size= 10
strideCrop= 10
networkType (deconv50|deconvICPR|deconvTuia|segnet25|segnetICPR)= deconv50
specific_event[0 to all]= 0
process[training|validate|testing]= training

@keillernogueira
Copy link
Owner

keillernogueira commented May 10, 2018

Hi,

I see that you are trying to train the deconv50.
I did not use this network in the final results sent to the MediaEval and reported in the paper.
I am sorry for this, but there is a mismatch related to the networks' name between the code and paper.
Thank you for raising this!

In fact, I did not use any network starting with the name 'deconv' in this implementation you are using because I could not achieve as good performance as with other networks.
Hence, these networks should not be included in this code.
The deconv networks reported in the paper (and used in the MediaEval Satellites) are actually the SegNet-based architectures (implemented in the code you are currently using with name 'SegNet').
You may match the architecture from the paper and the code, if you want.
I have updated the code to better reflect the names of the architecture allowing an easier match between the code and paper.

Aside this, in general, I used the following parameters:

learningRate= 0.01
weightDecay= 0.005
batchSize= 100
niter= 200000
cropSize= 25
strideCrop= 10

For instance, using the above configuration, I achieved the following result in the validation set using deconvnet_1:
---- Iter 200000 -- Time 05:31:59.126174 -- Validation: Overall Accuracy= 0.940296 Normalized Accuracy= 0.930775 IoU (TP / (TP + FP + FN))= 0.839800 Confusion Matrix= [[32546911 1282646] [ 1815006 16238562]]

And using deconvnet_2:
---- Iter 200000 -- Time 10:03:10.553048 -- Validation: Overall Accuracy= 0.943408 Normalized Accuracy= 0.936319 IoU (TP / (TP + FP + FN))= 0.848800 Confusion Matrix= [[32463946 1365611] [ 1570567 16483001]]

Hope this can help you.

@mariochr
Copy link
Author

mariochr commented May 11, 2018

Yeah it works now much better. 👍
I finally got a result thanks

But I think one mistake is still there. In your code you have a for loop with the following elements.
nets = ['segNet', 'segnetICPR', 'dilatedGRSL'] # ['segNet', 'segnetICPR', 'dilatedICPR', 'dilatedGRSL']

But I think you have to loop over this elements:
nets = ['deconvnet_1', 'deconvnet_2', 'dilatedICPR', 'dilatedGRSL']

You have the following if clauses in the training methods:

    # CONVNET
    if net_type == 'deconvnet_1':
        upscore = deconvnet_1(x, keep_prob, is_training, weight_decay, crop_size, channels)
    elif net_type == 'deconvnet_2':
        upscore = deconvnet_2(x, keep_prob, is_training, weight_decay, crop_size, channels)
    elif net_type == 'dilatedICPR':
        upscore = dilated_convnet_1(x, keep_prob, is_training, weight_decay, crop_size, channels)
    elif net_type == 'dilatedGRSL':
        upscore = dilated_convnet_2(x, keep_prob, is_training, weight_decay, crop_size, channels)
    else:
        print(BatchColors.FAIL + 'Network type not found: ' + net_type + BatchColors.ENDC)
        return

Because of the 3 nets in your line only one would be trained while the others won't be trained at all.

@aferjani
Copy link

Hello !

Thanks for sharing your work !
I've read your recently published paper and I'm really intrested in reproducing what you have done in this work. However, I'm unable to find the dataset you used. I'm wondering where I can find it. It would be great if you can instruct me how to get it.

Thanks in advance !

@keillernogueira
Copy link
Owner

Sorry for late answer.
@mariochr thank you for pointing this out. I will fix it as soon as I can.
@aferjani the dataset employed in this work was part of the 2017 Multimedia Satellite Task.
You can send email to the organizers in order to have access to the dataset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants