Image captioning is a challenging problem that has been widely studied in the computer vision and natural language processing communities. Traditional methods for image captioning involve extracting features from the image using hand-crafted features or shallow learning models and then using template-based methods to generate captions. However, these methods are limited in their ability to generate diverse and accurate captions.