Добавлена реализация LeNet и Alexnet
This commit is contained in:
+30
-3
@@ -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")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user