Добавлена реализация LeNet и Alexnet

This commit is contained in:
Даниил Грабарь
2026-09-17 15:05:30 +10:00
parent 41c9010db2
commit d689368d75
3 changed files with 603 additions and 3 deletions
+30 -3
View File
@@ -178,6 +178,8 @@ test_loader = DataLoader(dataset=test_dataset,
# %% Запуск обучения
model = MyNNExample(model=MyTorchCNNModel())
model.compile()
callbacks = [
ModelCheckpoint(dirpath="models",
filename="{epoch}_{val_accuracy:.4f}_{val_loss:.4f}",
@@ -206,10 +208,10 @@ trainer = pl.Trainer(
trainer.fit(model=model,
train_dataloaders=train_loader,
val_dataloaders=test_loader)
# %% Инференс модели
checkpoint_path = "./models/6_0.9460_0.1643.ckpt"
checkpoint_path = "./models/7_0.9720_0.0958.ckpt"
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = MyNNExample.load_from_checkpoint(checkpoint_path,
model=MyTorchCNNModel(output_size=10))
@@ -226,4 +228,29 @@ with torch.no_grad():
print(f"Предсказание: {pred_label}")
print(f"Истинная метка: {true_label}")
print(f"Уверенность: {probs[0, pred_label].item():.2%}")
print(f"Уверенность: {probs[0, pred_label].item():.2%}")
# %% Matlab export
pytorch_model = model.model
pytorch_model.eval()
pytorch_model = pytorch_model.cpu()
dummy_input = torch.randn(1, 1, 28, 28, dtype=torch.float32)
with torch.no_grad():
_ = pytorch_model(dummy_input)
traced_model = torch.jit.trace(pytorch_model, dummy_input)
with torch.no_grad():
y_original = pytorch_model(dummy_input)
y_traced = traced_model(dummy_input)
print("Original:", y_original.shape)
print("Traced:", y_traced.shape)
print("Max difference:", torch.max(torch.abs(y_original - y_traced)).item())
traced_model.save("./models/my_model_matlab.pt")