Hello, Jason. I’ve upload my project 1 to codepen, would you like to check it for me?
Because of my coworks aksed me not to release our model, I’ve replaced model.predict() with 
        let testRand = tf.randomNormal([1024 * 1024 * 4]);
        let {values, indices} = tf.topk(testRand, 1024 * 1024);

        let valueArray = values.arraySync();
        let indArray = indices.arraySync();

It costed about 700ms on Xiaomi 8 (Android phone with Snapdragon 845 processor), and UI was blocked 1.