Solved by hkz in post #5 
              
              
                I figure it out. The model is initialized randomly which causes the lower accuracy. And I find that by customize lambda transformations I can make the data preprocess pipeline more efficient and elegant. Thank you anyway!