Towards Learning with Limited Supervision: Efficient Few-shot and Semi-supervised Classification for Vision Tasks