Fault Injectors for TensorFlow: Evaluation of the Impact of Random
  Hardware Faults on Deep CNNs
  Today, Deep Learning (DL) enhances almost every industrial sector, including
safety-critical areas. The next generation of safety standards will define
appropriate verification techniques for DL-based applications and propose
adequate fault tolerance mechanisms. DL-based applications, like any other
software, are susceptible to common random hardware faults such as bit flips,
which occur in RAM and CPU registers. Such faults can lead to silent data
corruption. Therefore, it is crucial to develop methods and tools that help to
evaluate how DL components operate under the presence of such faults. In this
paper, we introduce two new Fault Injection (FI) frameworks InjectTF and
InjectTF2 for TensorFlow 1 and TensorFlow 2, respectively. Both frameworks are
available on GitHub and allow the configurable injection of random faults into
Neural Networks (NN). In order to demonstrate the feasibility of the
frameworks, we also present the results of FI experiments conducted on four
VGG-based Convolutional NNs using two image sets. The results demonstrate how
random bit flips in the output of particular mathematical operations and layers
of NNs affect the classification accuracy. These results help to identify the
most critical operations and layers, compare the reliability characteristics of
functionally similar NNs, and introduce selective fault tolerance mechanisms.
