DeepFD: Automated Fault Diagnosis and Localization for Deep Learning
  Programs
  As Deep Learning (DL) systems are widely deployed for mission-critical
applications, debugging such systems becomes essential. Most existing works
identify and repair suspicious neurons on the trained Deep Neural Network
(DNN), which, unfortunately, might be a detour. Specifically, several existing
studies have reported that many unsatisfactory behaviors are actually
originated from the faults residing in DL programs. Besides, locating faulty
neurons is not actionable for developers, while locating the faulty statements
in DL programs can provide developers with more useful information for
debugging. Though a few recent studies were proposed to pinpoint the faulty
statements in DL programs or the training settings (e.g. too large learning
rate), they were mainly designed based on predefined rules, leading to many
false alarms or false negatives, especially when the faults are beyond their
capabilities.
  In view of these limitations, in this paper, we proposed DeepFD, a
learning-based fault diagnosis and localization framework which maps the fault
localization task to a learning problem. In particular, it infers the
suspicious fault types via monitoring the runtime features extracted during DNN
model training and then locates the diagnosed faults in DL programs. It
overcomes the limitations by identifying the root causes of faults in DL
programs instead of neurons and diagnosing the faults by a learning approach
instead of a set of hard-coded rules. The evaluation exhibits the potential of
DeepFD. It correctly diagnoses 52% faulty DL programs, compared with around
half (27%) achieved by the best state-of-the-art works. Besides, for fault
localization, DeepFD also outperforms the existing works, correctly locating
42% faulty programs, which almost doubles the best result (23%) achieved by the
existing works.
