👋TorchEI, pronouced /ˈtôrCHər/, short for Pytorch Error Injection, is a high-speed toolbox around DNN Reliability's Research and Development. TorchEI enables you quickly and simply inject errors into DNN, collects information you needed, and harden your DNN.
TorchEI implemented incredible parallel evaluation system which could allow you adequately utilize device computing performance with tolerance to non-catastrophic faults.
- Full typing system supported
- Contains methods from papers in DNN Reliability
- High-efficiency, fault-tolerant parallel system
Here we gonna show you a quick example, or you can try interactive demo and online edtior.
Install public distribution using pip3 install torchei
or download it.
Init fault model
import torch
from torchvision import models
import torchei
model = models.resnet18(pretrained=True)
data = torch.load('./datasets/ilsvrc_valid8.pt')
fault_model = torchei.fault_model(model,data)
Calc reliability using emat method
fault_model.emat_attack(10,1e-3)
Calc reliability using Parallel Mechanism (under developing)
Calc reliability using SERN
fault_model.sern_calc(output_class=1000)
Harden DNN by ODR
fault_model.outlierDR_protection()
fault_model.emat_attack(10,1e-3)
If you found🧐 any bugs or have🖐️ any suggestions, please tell us.
This repo is open to everyone wants to maintain together.
You can helps us with follow things:
- PR your implemented methods in your or others' papers
- Complete our project
- Translate our docs to your language
- Other
We want to build TorchEI to best toolbox in DNN Reliability around bit flip, adversarial attack, and others. :e-mail: forcessless@foxmail.com
Our paper is under reviewing.
MIT License. Copyright:copyright:2022/5/23-present, Hao Zheng.