Come up with a virtual function for layer classes to validate inputs in more predictable and unified way ``` virtual void validate_inputs(const std::vector<Tensor>& input) const; ```