Thank you for the fantastically clear article and source code. I ran generate.py and got this graph in TensorBoard:

I suspect there's an error here. The metric values are too large (about 10^5 times larger than expected). util.compute_compression returns the total number of bits, not the average per byte. Although in the go function, it says bits_per_byte = util.compute_compression (...).