Project Overview
In this project, we developed a fault tolerance mechanism for convolutional neural networks (CNNs) to ensure robustness against data corruption. This mechanism is crucial for applications where data integrity is paramount, such as autonomous driving, medical imaging, and financial forecasting.
Technical Details
- Fault Injection Mechanism: We implemented a fault injection mechanism that corrupts either a row or a column of the output feature map in one of the convolutional layers (conv1, conv2, conv3, or conv4). Despite the corruption, the overall shape of the feature map remains unchanged.
- Tensor Shape: The output feature map of a convolutional layer is a 4-dimensional tensor with the shape (batch_size, channels, height, width). For example, if the original output feature map has the shape (32, 64, 14, 14), and the code corrupts row 5, the shape after corruption will still be (32, 64, 14, 14).
- Implementation: The project was implemented using Python and integrated with Google Colab for ease of use. We utilized an older version of PyTorch (1.9.0) to ensure compatibility with Caffe2.
Achievements
- Robustness: The fault tolerance mechanism successfully maintained the integrity of the CNNs, ensuring that the corrupted data did not affect the overall performance significantly.
- Efficiency: The mechanism was efficient in detecting and correcting faults without altering the dimensions of the feature maps.
- Scalability: The solution is scalable and can be applied to various convolutional layers, making it versatile for different applications.
Fault Tolerance for Convolutional Neural Networks