  FPGA becomes a popular technology for implementing Convolutional Neural
Network (CNN) in recent years. Most CNN applications on FPGA are
domain-specific, e.g., detecting objects from specific categories, in which
commonly-used CNN models pre-trained on general datasets may not be efficient
enough. This paper presents TuRF, an end-to-end CNN acceleration framework to
efficiently deploy domain-specific applications on FPGA by transfer learning
that adapts pre-trained models to specific domains, replacing standard
convolution layers with efficient convolution blocks, and applying layer fusion
to enhance hardware design performance. We evaluate TuRF by deploying a
pre-trained VGG-16 model for a domain-specific image recognition task onto a
Stratix V FPGA. Results show that designs generated by TuRF achieve better
performance than prior methods for the original VGG-16 and ResNet-50 models,
while for the optimised VGG-16 model TuRF designs are more accurate and easier
to process.
