PyTorchFI: A Runtime Perturbation Tool for DNNs

PyTorchFI is a runtime perturbation tool for deep neural networks (DNNs), implemented for the popular PyTorch deep learning platform. PyTorchFI enables users to perform perturbations on weights or neurons of DNNs at runtime. It is designed with the programmer in mind, providing a simple and easy-to-use API, requiring as little as three lines of code for use. It also provides an extensible interface, enabling researchers to choose from various perturbation models (or design their own custom models), which allows for the study of hardware error (or general perturbation) propagation to the software layer of the DNN output. Additionally, PyTorchFI is extremely versatile: we demonstrate how it can be applied to five different use cases for dependability and reliability research, including resiliency analysis of classification networks, resiliency analysis of object detection networks, analysis of models robust to adversarial attacks, training resilient models, and for DNN interpertability. This paper discusses the technical underpinnings and design decisions of PyTorchFI which make it an easy-to-use, extensible, fast, and versatile research tool. PyTorchFI is open-sourced and available for download via pip or github at: https://github.com/pytorchfi.

Authors: 
Abdulrahman Mahmoud (University of Illinois at Urbana-Champaign)
Neeraj Aggarwal (University of Illinois at Urbana-Champaign)
Alex Nobbe (University of Illinois at Urbana-Champaign)
Jose Rodrigo Sanchez Vicarte (University of Illinois at Urbana-Champaign)
Sarita V. Adve (University of Illinois at Urbana-Champaign)
Christopher W. Fletcher (University of Illinois at Urbana-Champaign)
Publication Date: 
Monday, June 29, 2020
Uploaded Files: