Yes, it works by recomputing some intermediate values rather than storing them, which results in a decrease in memory usage, but also a slight increase in execution time.
A nice example is the efficient densenet 130.