The mistake was very simple. I found that I should set 'VALID', not 'SAME' in conv2 so that I can make 12, 12, 32 shape before flatting operation. Thank you turtle to help me out.
he error tensorflow.python.framework.errors.InvalidArgumentError: Input to reshape is a tensor with 6400 values, but the requested shape requires a multiple of 3840 suggests that the input tensor of tf.reshape() in line 20 has a number of values that is not a multiple of 3840. That's because tensor l1 isn't defined within function model (you might have used it earlier and it might have 6400 values). You probably want to set l1=layer1. Note that tensor l4 isn't defined in function model either.