Rain streaks can severely degrade the visibility, which causesmany current computer vision algorithms fail to work. So it is necessaryto remove the rain from images. We propose a novel deep network ar-chitecture based on deep convolutional and recurrent neural networksfor single image deraining. As contextual information is very importantfor rain removal, we first adopt the dilated convolutional neural networkto acquire large receptive field. To better fit the rain removal task, wealso modify the network. In heavy rain, rain streaks have various direc-tions and shapes, which can be regarded as the accumulation of multiplerain streak layers. We assign different alpha-values to various rain streaklayers according to the intensity and transparency by incorporating thesqueeze-and-excitation block. Since rain streak layers overlap with eachother, it is not easy to remove the rain in one stage. So we further de-compose the rain removal into multiple stages. Recurrent neural networkis incorporated to preserve the useful information in previous stages andbenefit the rain removal in later stages. We conduct extensive experi-ments on both synthetic and real-world datasets. Our proposed methodoutperforms the state-of-the-art approaches under all evaluation metrics.