From 1feb8ad701185ae6f4dedd915cb1d15eac61cb4e Mon Sep 17 00:00:00 2001
From: Aymeric Varasse <aymeric.varasse@cea.fr>
Date: Mon, 15 Apr 2024 13:10:55 +0200
Subject: [PATCH] [exps] Add onnx and training script for arithmetic

---
 examples/arithmetic/FNN_s42.onnx | Bin 0 -> 69307 bytes
 examples/arithmetic/train.py     | 148 +++++++++++++++++++++++++++++++
 2 files changed, 148 insertions(+)
 create mode 100644 examples/arithmetic/FNN_s42.onnx
 create mode 100644 examples/arithmetic/train.py

diff --git a/examples/arithmetic/FNN_s42.onnx b/examples/arithmetic/FNN_s42.onnx
new file mode 100644
index 0000000000000000000000000000000000000000..94e1c0b8837b0de4e0369d54291549fb039cc3f1
GIT binary patch
literal 69307
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
PN#o-F$4Zt<ef|Cgh@D9t

literal 0
HcmV?d00001

diff --git a/examples/arithmetic/train.py b/examples/arithmetic/train.py
new file mode 100644
index 0000000..2661fc2
--- /dev/null
+++ b/examples/arithmetic/train.py
@@ -0,0 +1,148 @@
+import os
+
+import numpy as np
+import onnx
+import onnxruntime as ort
+import torch
+import torch.onnx
+import torch.optim as optim
+from loguru import logger
+from torch import nn
+from torch.nn import functional as F
+from torch.utils.data import DataLoader, Dataset
+
+SEED = 42
+STATE_PATH = f"FNN_s{SEED}.pth"
+ONNX_PATH = f"FNN_s{SEED}.onnx"
+INPUT_ARRAY = "data.npy"
+TEST_INPUT_ARRAY = "test_data.npy"
+TARGET_ARRAY = "target.npy"
+TEST_TARGET_ARRAY = "test_target.npy"
+
+torch.manual_seed(SEED)
+
+device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
+logger.info(f"Using device {device}")
+num_epoch = 2
+batch_size = 4
+
+
+class FNN(nn.Module):
+    def __init__(self):
+        super().__init__()
+        self.fc1 = nn.Linear(3, 128)
+        self.fc2 = nn.Linear(128, 128)
+        self.fc3 = nn.Linear(128, 1)
+
+    def forward(self, x):
+        x = self.fc1(x)
+        x = F.relu(x)
+        x = self.fc2(x)
+        x = F.relu(x)
+        x = self.fc3(x)
+        return x
+
+
+class ArithmeticDataset(Dataset):
+    def __init__(self, input_array, target_array, root_dir):
+        self.input_array = np.load(input_array).astype(np.float32)
+        self.target_array = np.load(target_array).astype(np.float32)
+        self.root_dir = root_dir
+
+    def __len__(self):
+        return len(self.input_array)
+
+    def __getitem__(self, idx):
+        return [self.input_array[idx], self.target_array[idx]]
+
+
+def train(state_dict):
+    trainset = ArithmeticDataset(
+        input_array=INPUT_ARRAY, target_array=TARGET_ARRAY, root_dir=os.path.dirname(INPUT_ARRAY)
+    )
+    trainloader = DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=2)
+
+    model = FNN().to(device)
+    criterion = nn.MSELoss()
+    optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
+
+    for epoch in range(num_epoch):
+        running_loss = 0.0
+        for i, data in enumerate(trainloader):
+            inputs, labels = data[0].to(device), data[1].to(device)
+            optimizer.zero_grad()
+            outputs = model(inputs).squeeze().to(device)
+            loss = criterion(outputs, labels)
+            loss.backward()
+            optimizer.step()
+
+            running_loss += loss.item()
+            if i % 2000 == 1999:
+                logger.info(f"[{epoch + 1}, {i + 1:5d}] loss: {running_loss / 2000:.3f}")
+                running_loss = 0.0
+
+    logger.info("Finished training")
+
+    torch.save(model.state_dict(), state_dict)
+
+
+def test(model_path):
+    testset = ArithmeticDataset(
+        input_array=TEST_INPUT_ARRAY, target_array=TEST_TARGET_ARRAY, root_dir=os.path.dirname(TEST_INPUT_ARRAY)
+    )
+    testloader = DataLoader(testset, batch_size=batch_size, shuffle=False, num_workers=2)
+
+    net = FNN().to(device)
+    net.load_state_dict(torch.load(model_path))
+
+    error = 0
+    total = len(testloader) * batch_size
+
+    with torch.no_grad():
+        for data in testloader:
+            inputs, labels = data[0].to(device), data[1].to(device)
+            outputs = net(inputs).squeeze().to(device)
+            error += ((outputs - labels) * (outputs - labels)).sum().data.cpu()
+
+    logger.info(f"Average MSE of the network on the 10000 test inputs: {np.sqrt(error / total):.3f}")
+
+
+def export_model(model_path, onnx_path):
+    model = FNN().to(device)
+    model.load_state_dict(torch.load(model_path))
+    x = torch.rand(1, 3, device=device)
+
+    torch.onnx.export(model=model, args=x, f=onnx_path, export_params=True)
+    logger.info("Model exported successfully")
+
+    test_onnx(model_path, onnx_path)
+
+
+def test_onnx(model_path, onnx_path):
+    model = FNN().to(device)
+    model.load_state_dict(torch.load(model_path))
+
+    onnx_model = onnx.load(onnx_path)
+    onnx.checker.check_model(onnx_model)
+
+    ort_session = ort.InferenceSession(onnx_path, providers=["CPUExecutionProvider"])
+
+    def to_numpy(tensor):
+        return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy()
+
+    for _ in range(10000):
+        x = torch.rand(1, 3, device=device)
+        torch_out = model(x)
+
+        ort_inputs = {ort_session.get_inputs()[0].name: to_numpy(x)}
+        ort_outs = ort_session.run(None, ort_inputs)
+
+        np.testing.assert_allclose(to_numpy(torch_out), ort_outs[0], rtol=1e-03, atol=1e-05)
+
+    logger.info("Exported model has been tested with ONNXRuntime, and the result looks good!")
+
+
+if __name__ == "__main__":
+    train(STATE_PATH)
+    test(STATE_PATH)
+    export_model(STATE_PATH, ONNX_PATH)
-- 
GitLab