  Many engineering organizations are reimplementing and extending deep neural
networks from the research community. We describe this process as deep learning
model reengineering. Deep learning model reengineering - reusing, reproducing,
adapting, and enhancing state-of-the-art deep learning approaches - is
challenging for reasons including under-documented reference models, changing
requirements, and the cost of implementation and testing. In addition,
individual engineers may lack expertise in software engineering, yet teams must
apply knowledge of software engineering and deep learning to succeed. Prior
work has examined on DL systems from a "product" view, examining defects from
projects regardless of the engineers' purpose. Our study is focused on
reengineering activities from a "process" view, and focuses on engineers
specifically engaged in the reengineering process.
  Our goal is to understand the characteristics and challenges of deep learning
model reengineering. We conducted a case study of this phenomenon, focusing on
the context of computer vision. Our results draw from two data sources: defects
reported in open-source reeengineering projects, and interviews conducted with
open-source project contributors and the leaders of a reengineering team. Our
results describe how deep learning-based computer vision techniques are
reengineered, analyze the distribution of defects in this process, and discuss
challenges and practices. Integrating our quantitative and qualitative data, we
proposed a novel reengineering workflow. Our findings inform several future
directions, including: measuring additional unknown aspects of model
reengineering; standardizing engineering practices to facilitate reengineering;
and developing tools to support model reengineering and model reuse.
