Giter Club home page Giter Club logo

Comments (4)

DrChainsaw avatar DrChainsaw commented on July 18, 2024

Thanks for hitting me back on this. I didn't mean for you to have to read through the horrible code in this repo. It was never meant to be read by anyone :)

Yes, that is a deviation (due to augmentor only having per pixel mappings) but it does unfortunately not explain the accuracy difference. I get more or less the exact same performance when using per channel standardization (I retried it just to be sure). Even though the mean and std are slightly different for each channel, they just don't seem to be different enough to impact the performance.

In case you do try to benchmark that small resnet with Cifar10 I'd be more than happy to know how it went. Thanks again!

from naivegaexperiments.

a-r-n-o-l-d avatar a-r-n-o-l-d commented on July 18, 2024

I have tried some quick test on CIFAR10, without data augmentation and a constant learning rate, but I am far to obtain a "good" accuracy (Test accuracy => 0.83 after 20 epochs).
"I didn't mean for you to have to read through the horrible code in this repo." :) Sure I understand that, but I am learning Julia for a few months only, so I like to have a look at source code from other people.

I notice that your Cutout implementation fills the mask with white noise and not zeros (cutout paper). In addition, the mask size seems to be fixed in original benchmark and not randomly chosen. Maybe it is not a big deal.

By the way, can I borrow your Cutout and RandomCrop implementation? I am trying to understand the source code of Augmentor.jl, but it is far too complex for me.

from naivegaexperiments.

DrChainsaw avatar DrChainsaw commented on July 18, 2024

Haha, as long as you don't use it to base your judgement of how easy Julia code is to read you can take whatever you want from this repo :)

I tried with zeros as well and that did not have a noticeable effect on the performance compared to what I use here. I think I saw some python repo (maybe the python version of augmentor) which used noise for cutout and thought it was a good idea to keep the batch statistics unit standardized.

Hmm, I need to check the original benchmark again. I could have sworn it looked like the cutout size was randomly rolled each time. I'll try to do a run with fixed size just in case although it probably doesn't matter.

Note that Augmentor has added RCropSize which should do the exact same as my RCrop implementation in a less recursive-horror-story way. I had some varying degrees of luck to get Augmentors augmentbatch to work with the builtins though...

from naivegaexperiments.

a-r-n-o-l-d avatar a-r-n-o-l-d commented on July 18, 2024

Don't worry, I won't judge Julia programming language (after two decades of writing scientific code in R, C, C++ and java, it's a real pleasure to use Julia (and Flux ecosystem)).

Thank you to notify me of the RCropSize existence, it is missing from the Augmentor.jl documentation (I should browse the source code more often).

I also have had some problems with augmentbatch.

from naivegaexperiments.

Related Issues (1)

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.