Domain Generalization via Model-Agnostic Learning of Semantic Features