jrk / gradient-halide

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is an experimental branch of Halide (http://halide-lang.org) for making it able to compute gradients. All the functionalities have been merged to the main repository (https://github.com/halide/Halide).

For a technical description see our paper, "Differentiable Programming for Image Processing and Deep Learning in Halide".

For build instruction see the original repository (https://github.com/halide/Halide).

If you haven't used Halide before, it's probably a good idea to go through the tutorials first.

For examples on how to use the gradient extensions see the tests in test/correctness/autodiff.cpp, a simple polynomial function fitting example in test/correctness/fit_function.cpp, and a more involved lens optimization application in apps/derivatives/lens.cpp.

For the implementation see src/Derivative.h, src/Derivative.cpp, src/DerivativeUtils.h, src/DerivativeUtils.cpp.

We also implemented a new autoscheduler which takes a set of output Halide functions and automatically schedules all the dependencies. See src/SimpleAutoSchedule.h and the tests in src/SimpleAutoSchedule.cpp.

A proper tutorial and the source code for applications demonstrated in the paper will come soon.

If you have any questions, issues, bug report, feel free to open a Github issue or email Tzu-Mao Li (tzumao@mit.edu).

About

License:Other


Languages

Language:C++ 89.1%Language:Python 2.8%Language:C 1.9%Language:Makefile 1.6%Language:LLVM 1.4%Language:CMake 1.2%Language:Java 1.1%Language:Shell 0.5%Language:Objective-C++ 0.2%Language:Ruby 0.1%Language:MATLAB 0.0%Language:Objective-C 0.0%Language:Smarty 0.0%