Is there a way that helps me to architect my CNN fundamentally before training?
See Analysis and Optimization of Convolutional Neural Network Architectures (my master's thesis).


  
  Is there a way that helps me to architect my model fundamentally before training?
  


Yes, but the architecture learning approaches are computationally intensive. When I wrote my masters thesis it was ~250,000 USD to run the Google experiment. Meanwhile, there seem to be more efficient methods, e.g. https://autokeras.com/

See Chapter 3.


  
  Once I train model how do I know which among these variables (number of filters, size, number of convolutional layers, FC layers) should be changed - increased or decreased?
  


See Chapter 2.5 for some approaches. But there is no silver bullet / no clear answer to this question.