Code Monkey home page Code Monkey logo

Comments (12)

immars avatar immars commented on June 15, 2024

this seems working:

    fw_occ_bound_margin = length_sq(flow_diff_fw) - occ_thresh
    bw_occ_bound_margin = length_sq(flow_diff_bw) - occ_thresh
    fw_occ_bound_margin = (tf.sign(fw_occ_bound_margin) + 1.0) / 2 * fw_occ_bound_margin
    bw_occ_bound_margin = (tf.sign(bw_occ_bound_margin) + 1.0) / 2 * bw_occ_bound_margin
    losses['occ'] = (charbonnier_loss(fw_occ_bound_margin, border_fw * fb_occ_fw) +
                     charbonnier_loss(bw_occ_bound_margin, border_bw * fb_occ_bw))

where border_fw border_bw are border masks.

from unflow.

simonmeister avatar simonmeister commented on June 15, 2024

Hi!

Thanks for noticing this. I have to look into this in more detail in the next days. Did you try if your correction changes training outcomes?

from unflow.

immars avatar immars commented on June 15, 2024

I haven't got the time to fully run the training yet. value of occ loss is much smaller this way; maybe some weight tuning is required to get good results.

from unflow.

immars avatar immars commented on June 15, 2024

by the way, @simonmeister how many minibatches are required to achieve AEE(All) 3.78 in Table. 3 for UnFlow-C?
So far I've tried (with original code) about 400k minibatches of size 4, single GPU, only got AEE/occluded 6.x in tensorboard.

from unflow.

simonmeister avatar simonmeister commented on June 15, 2024

On which dataset did you train? Did you pre-train on synthia? If you pre-trained first, 400K iterations on KITTI should get you close to our result. We used the same config settings as in the config.ini train_* sections.

from unflow.

immars avatar immars commented on June 15, 2024

no pre-train to my believe, just dataset = kitti in config.ini from scratch.

So to reproduce your result I should first pre-train on synthia with supervised method, then train on kitti_raw with unsupervised loss?

from unflow.

simonmeister avatar simonmeister commented on June 15, 2024

The pre-training on synthia is also unsupervised. Yes, you can just use the default config with dataset = synthia first and then use dataset = kitti and finetune = NAME-OF-SYNTHIA-EXPERIMENT.

from unflow.

immars avatar immars commented on June 15, 2024

Great, thanks!

from unflow.

yzcjtr avatar yzcjtr commented on June 15, 2024

Hi, @simonmeister
I have a question about the constant penalty in the Eq.(2) of your paper.
As the binary occlusion mask is fully determined by the condition of Eq.(1), such constant penalty gives no help in backward propagation when you optimize the weights using SGD.
Correct me if my understanding is wrong, thanks!

from unflow.

simonmeister avatar simonmeister commented on June 15, 2024

Hi! @yzcjtr you are correct, the occlusion flag is constant w.r.t. backpropagation, and the penalty should have no effect on backprop. @immars your snippet does not seem to have an effect on the training outcomes on what i have tried so far.

from unflow.

immars avatar immars commented on June 15, 2024

ok, thanks! It seems that maybe this regularization term is not crucial, or a better form should be derived.

from unflow.

simonmeister avatar simonmeister commented on June 15, 2024

I am closing this as it seems to be redundant with the discussion in #10.

from unflow.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.