In [1]:
Copied!
from binn import BINN, BINNDataLoader, BINNTrainer, BINNExplainer
import pandas as pd
# Load your data
data_matrix = pd.read_csv("../binn/data/sample_datamatrix.csv")
design_matrix = pd.read_csv("../binn/data/sample_design_matrix.tsv", sep="\t")
# Initialize BINN
binn = BINN(data_matrix=data_matrix, network_source="reactome", n_layers=4, dropout=0.2)
## Initialize DataLoader
binn_dataloader = BINNDataLoader(binn)
# Create DataLoaders
dataloaders = binn_dataloader.create_dataloaders(
data_matrix=data_matrix,
design_matrix=design_matrix,
feature_column="Protein",
group_column="group",
sample_column="sample",
batch_size=32,
validation_split=0.3,
)
# Train the model
trainer = BINNTrainer(binn)
trainer.fit(dataloaders=dataloaders, num_epochs=500)
# Explain the model
explainer = BINNExplainer(binn)
explanations = explainer.explain_single(
dataloaders
)
explanations
from binn import BINN, BINNDataLoader, BINNTrainer, BINNExplainer
import pandas as pd
# Load your data
data_matrix = pd.read_csv("../binn/data/sample_datamatrix.csv")
design_matrix = pd.read_csv("../binn/data/sample_design_matrix.tsv", sep="\t")
# Initialize BINN
binn = BINN(data_matrix=data_matrix, network_source="reactome", n_layers=4, dropout=0.2)
## Initialize DataLoader
binn_dataloader = BINNDataLoader(binn)
# Create DataLoaders
dataloaders = binn_dataloader.create_dataloaders(
data_matrix=data_matrix,
design_matrix=design_matrix,
feature_column="Protein",
group_column="group",
sample_column="sample",
batch_size=32,
validation_split=0.3,
)
# Train the model
trainer = BINNTrainer(binn)
trainer.fit(dataloaders=dataloaders, num_epochs=500)
# Explain the model
explainer = BINNExplainer(binn)
explanations = explainer.explain_single(
dataloaders
)
explanations
[INFO] BINN is on device: cpu Mapping group labels: {np.int64(1): 0, np.int64(2): 1} [Epoch 1/500] Train Loss: 0.8471, Train Accuracy: 0.4549 [Epoch 1/500] Val Loss: 0.6927, Val Accuracy: 0.6250 [Epoch 2/500] Train Loss: 0.8602, Train Accuracy: 0.4417 [Epoch 2/500] Val Loss: 0.6921, Val Accuracy: 0.6250 [Epoch 3/500] Train Loss: 0.7886, Train Accuracy: 0.4819 [Epoch 3/500] Val Loss: 0.6922, Val Accuracy: 0.6250 [Epoch 4/500] Train Loss: 0.7827, Train Accuracy: 0.4826 [Epoch 4/500] Val Loss: 0.6898, Val Accuracy: 0.6250 [Epoch 5/500] Train Loss: 0.8449, Train Accuracy: 0.4542 [Epoch 5/500] Val Loss: 0.6884, Val Accuracy: 0.6250 [Epoch 6/500] Train Loss: 0.7675, Train Accuracy: 0.5042 [Epoch 6/500] Val Loss: 0.6880, Val Accuracy: 0.6250 [Epoch 7/500] Train Loss: 0.7521, Train Accuracy: 0.5326 [Epoch 7/500] Val Loss: 0.6857, Val Accuracy: 0.6250 [Epoch 8/500] Train Loss: 0.7347, Train Accuracy: 0.5368 [Epoch 8/500] Val Loss: 0.6816, Val Accuracy: 0.6250 [Epoch 9/500] Train Loss: 0.7532, Train Accuracy: 0.5111 [Epoch 9/500] Val Loss: 0.6734, Val Accuracy: 0.6406 [Epoch 10/500] Train Loss: 0.7493, Train Accuracy: 0.5354 [Epoch 10/500] Val Loss: 0.6640, Val Accuracy: 0.6719 [Epoch 11/500] Train Loss: 0.7137, Train Accuracy: 0.5931 [Epoch 11/500] Val Loss: 0.6580, Val Accuracy: 0.6518 [Epoch 12/500] Train Loss: 0.7526, Train Accuracy: 0.5486 [Epoch 12/500] Val Loss: 0.6453, Val Accuracy: 0.6339 [Epoch 13/500] Train Loss: 0.7144, Train Accuracy: 0.5229 [Epoch 13/500] Val Loss: 0.6397, Val Accuracy: 0.6518 [Epoch 14/500] Train Loss: 0.6930, Train Accuracy: 0.5736 [Epoch 14/500] Val Loss: 0.6374, Val Accuracy: 0.6696 [Epoch 15/500] Train Loss: 0.7177, Train Accuracy: 0.5833 [Epoch 15/500] Val Loss: 0.6319, Val Accuracy: 0.6674 [Epoch 16/500] Train Loss: 0.7147, Train Accuracy: 0.5174 [Epoch 16/500] Val Loss: 0.6285, Val Accuracy: 0.6808 [Epoch 17/500] Train Loss: 0.6725, Train Accuracy: 0.6021 [Epoch 17/500] Val Loss: 0.6373, Val Accuracy: 0.6295 [Epoch 18/500] Train Loss: 0.7027, Train Accuracy: 0.5924 [Epoch 18/500] Val Loss: 0.6385, Val Accuracy: 0.5982 [Epoch 19/500] Train Loss: 0.6669, Train Accuracy: 0.6208 [Epoch 19/500] Val Loss: 0.6276, Val Accuracy: 0.6161 [Epoch 20/500] Train Loss: 0.6104, Train Accuracy: 0.6708 [Epoch 20/500] Val Loss: 0.6220, Val Accuracy: 0.6339 [Epoch 21/500] Train Loss: 0.6400, Train Accuracy: 0.6681 [Epoch 21/500] Val Loss: 0.6152, Val Accuracy: 0.6339 [Epoch 22/500] Train Loss: 0.6376, Train Accuracy: 0.6556 [Epoch 22/500] Val Loss: 0.6153, Val Accuracy: 0.6339 [Epoch 23/500] Train Loss: 0.7231, Train Accuracy: 0.5576 [Epoch 23/500] Val Loss: 0.6149, Val Accuracy: 0.6652 [Epoch 24/500] Train Loss: 0.6456, Train Accuracy: 0.6458 [Epoch 24/500] Val Loss: 0.6035, Val Accuracy: 0.7009 [Epoch 25/500] Train Loss: 0.6008, Train Accuracy: 0.6826 [Epoch 25/500] Val Loss: 0.5941, Val Accuracy: 0.7188 [Epoch 26/500] Train Loss: 0.6255, Train Accuracy: 0.6111 [Epoch 26/500] Val Loss: 0.5879, Val Accuracy: 0.7188 [Epoch 27/500] Train Loss: 0.6389, Train Accuracy: 0.6271 [Epoch 27/500] Val Loss: 0.5748, Val Accuracy: 0.7344 [Epoch 28/500] Train Loss: 0.5469, Train Accuracy: 0.7278 [Epoch 28/500] Val Loss: 0.5568, Val Accuracy: 0.7344 [Epoch 29/500] Train Loss: 0.5601, Train Accuracy: 0.7056 [Epoch 29/500] Val Loss: 0.5571, Val Accuracy: 0.7344 [Epoch 30/500] Train Loss: 0.5674, Train Accuracy: 0.6833 [Epoch 30/500] Val Loss: 0.5475, Val Accuracy: 0.7344 [Epoch 31/500] Train Loss: 0.5724, Train Accuracy: 0.7083 [Epoch 31/500] Val Loss: 0.5377, Val Accuracy: 0.7321 [Epoch 32/500] Train Loss: 0.6194, Train Accuracy: 0.6736 [Epoch 32/500] Val Loss: 0.5273, Val Accuracy: 0.7165 [Epoch 33/500] Train Loss: 0.5555, Train Accuracy: 0.6736 [Epoch 33/500] Val Loss: 0.5263, Val Accuracy: 0.7165 [Epoch 34/500] Train Loss: 0.6036, Train Accuracy: 0.6868 [Epoch 34/500] Val Loss: 0.5333, Val Accuracy: 0.7500 [Epoch 35/500] Train Loss: 0.6112, Train Accuracy: 0.6889 [Epoch 35/500] Val Loss: 0.5359, Val Accuracy: 0.7500 [Epoch 36/500] Train Loss: 0.6248, Train Accuracy: 0.6417 [Epoch 36/500] Val Loss: 0.5286, Val Accuracy: 0.7500 [Epoch 37/500] Train Loss: 0.5945, Train Accuracy: 0.6701 [Epoch 37/500] Val Loss: 0.5299, Val Accuracy: 0.7500 [Epoch 38/500] Train Loss: 0.5414, Train Accuracy: 0.7278 [Epoch 38/500] Val Loss: 0.5213, Val Accuracy: 0.7500 [Epoch 39/500] Train Loss: 0.5202, Train Accuracy: 0.7528 [Epoch 39/500] Val Loss: 0.5089, Val Accuracy: 0.7500 [Epoch 40/500] Train Loss: 0.5271, Train Accuracy: 0.7431 [Epoch 40/500] Val Loss: 0.5196, Val Accuracy: 0.7500 [Epoch 41/500] Train Loss: 0.4798, Train Accuracy: 0.8125 [Epoch 41/500] Val Loss: 0.4942, Val Accuracy: 0.7500 [Epoch 42/500] Train Loss: 0.5453, Train Accuracy: 0.7021 [Epoch 42/500] Val Loss: 0.5069, Val Accuracy: 0.7500 [Epoch 43/500] Train Loss: 0.5184, Train Accuracy: 0.7715 [Epoch 43/500] Val Loss: 0.5092, Val Accuracy: 0.7165 [Epoch 44/500] Train Loss: 0.5715, Train Accuracy: 0.6924 [Epoch 44/500] Val Loss: 0.4928, Val Accuracy: 0.7321 [Epoch 45/500] Train Loss: 0.4584, Train Accuracy: 0.8278 [Epoch 45/500] Val Loss: 0.4923, Val Accuracy: 0.7165 [Epoch 46/500] Train Loss: 0.4863, Train Accuracy: 0.7708 [Epoch 46/500] Val Loss: 0.4908, Val Accuracy: 0.7321 [Epoch 47/500] Train Loss: 0.5204, Train Accuracy: 0.7208 [Epoch 47/500] Val Loss: 0.5093, Val Accuracy: 0.7165 [Epoch 48/500] Train Loss: 0.4889, Train Accuracy: 0.7903 [Epoch 48/500] Val Loss: 0.4867, Val Accuracy: 0.7165 [Epoch 49/500] Train Loss: 0.5442, Train Accuracy: 0.7014 [Epoch 49/500] Val Loss: 0.4835, Val Accuracy: 0.6987 [Epoch 50/500] Train Loss: 0.5451, Train Accuracy: 0.7389 [Epoch 50/500] Val Loss: 0.4610, Val Accuracy: 0.7299 [Epoch 51/500] Train Loss: 0.4983, Train Accuracy: 0.8056 [Epoch 51/500] Val Loss: 0.4567, Val Accuracy: 0.7478 [Epoch 52/500] Train Loss: 0.4605, Train Accuracy: 0.8056 [Epoch 52/500] Val Loss: 0.4656, Val Accuracy: 0.7478 [Epoch 53/500] Train Loss: 0.5045, Train Accuracy: 0.8056 [Epoch 53/500] Val Loss: 0.4556, Val Accuracy: 0.7478 [Epoch 54/500] Train Loss: 0.4885, Train Accuracy: 0.7708 [Epoch 54/500] Val Loss: 0.4416, Val Accuracy: 0.7634 [Epoch 55/500] Train Loss: 0.5028, Train Accuracy: 0.7896 [Epoch 55/500] Val Loss: 0.4644, Val Accuracy: 0.7143 [Epoch 56/500] Train Loss: 0.5048, Train Accuracy: 0.7931 [Epoch 56/500] Val Loss: 0.4768, Val Accuracy: 0.6987 [Epoch 57/500] Train Loss: 0.5309, Train Accuracy: 0.6986 [Epoch 57/500] Val Loss: 0.4757, Val Accuracy: 0.6987 [Epoch 58/500] Train Loss: 0.4578, Train Accuracy: 0.8215 [Epoch 58/500] Val Loss: 0.4720, Val Accuracy: 0.6987 [Epoch 59/500] Train Loss: 0.4733, Train Accuracy: 0.7771 [Epoch 59/500] Val Loss: 0.4668, Val Accuracy: 0.7143 [Epoch 60/500] Train Loss: 0.4352, Train Accuracy: 0.8368 [Epoch 60/500] Val Loss: 0.4598, Val Accuracy: 0.7321 [Epoch 61/500] Train Loss: 0.4762, Train Accuracy: 0.7451 [Epoch 61/500] Val Loss: 0.4580, Val Accuracy: 0.7321 [Epoch 62/500] Train Loss: 0.4578, Train Accuracy: 0.7778 [Epoch 62/500] Val Loss: 0.4617, Val Accuracy: 0.7165 [Epoch 63/500] Train Loss: 0.5454, Train Accuracy: 0.7396 [Epoch 63/500] Val Loss: 0.4650, Val Accuracy: 0.7299 [Epoch 64/500] Train Loss: 0.4786, Train Accuracy: 0.7583 [Epoch 64/500] Val Loss: 0.4563, Val Accuracy: 0.7478 [Epoch 65/500] Train Loss: 0.4356, Train Accuracy: 0.8215 [Epoch 65/500] Val Loss: 0.4440, Val Accuracy: 0.7656 [Epoch 66/500] Train Loss: 0.4440, Train Accuracy: 0.8340 [Epoch 66/500] Val Loss: 0.4516, Val Accuracy: 0.7656 [Epoch 67/500] Train Loss: 0.4895, Train Accuracy: 0.7458 [Epoch 67/500] Val Loss: 0.4617, Val Accuracy: 0.7143 [Epoch 68/500] Train Loss: 0.4819, Train Accuracy: 0.7771 [Epoch 68/500] Val Loss: 0.4531, Val Accuracy: 0.7478 [Epoch 69/500] Train Loss: 0.4232, Train Accuracy: 0.7958 [Epoch 69/500] Val Loss: 0.4678, Val Accuracy: 0.7143 [Epoch 70/500] Train Loss: 0.4808, Train Accuracy: 0.7549 [Epoch 70/500] Val Loss: 0.4589, Val Accuracy: 0.7143 [Epoch 71/500] Train Loss: 0.4066, Train Accuracy: 0.8528 [Epoch 71/500] Val Loss: 0.4364, Val Accuracy: 0.7656 [Epoch 72/500] Train Loss: 0.4902, Train Accuracy: 0.7076 [Epoch 72/500] Val Loss: 0.4009, Val Accuracy: 0.7991 [Epoch 73/500] Train Loss: 0.4419, Train Accuracy: 0.7743 [Epoch 73/500] Val Loss: 0.3953, Val Accuracy: 0.8326 [Epoch 74/500] Train Loss: 0.4063, Train Accuracy: 0.8375 [Epoch 74/500] Val Loss: 0.3849, Val Accuracy: 0.8661 [Epoch 75/500] Train Loss: 0.4107, Train Accuracy: 0.8688 [Epoch 75/500] Val Loss: 0.3806, Val Accuracy: 0.8504 [Epoch 76/500] Train Loss: 0.4138, Train Accuracy: 0.8118 [Epoch 76/500] Val Loss: 0.3725, Val Accuracy: 0.8661 [Epoch 77/500] Train Loss: 0.3956, Train Accuracy: 0.8812 [Epoch 77/500] Val Loss: 0.3779, Val Accuracy: 0.8661 [Epoch 78/500] Train Loss: 0.3980, Train Accuracy: 0.8056 [Epoch 78/500] Val Loss: 0.3849, Val Accuracy: 0.8661 [Epoch 79/500] Train Loss: 0.4102, Train Accuracy: 0.8153 [Epoch 79/500] Val Loss: 0.3739, Val Accuracy: 0.8661 [Epoch 80/500] Train Loss: 0.4597, Train Accuracy: 0.7833 [Epoch 80/500] Val Loss: 0.3826, Val Accuracy: 0.8638 [Epoch 81/500] Train Loss: 0.4037, Train Accuracy: 0.8306 [Epoch 81/500] Val Loss: 0.3750, Val Accuracy: 0.8817 [Epoch 82/500] Train Loss: 0.4165, Train Accuracy: 0.7993 [Epoch 82/500] Val Loss: 0.3767, Val Accuracy: 0.8661 [Epoch 83/500] Train Loss: 0.3402, Train Accuracy: 0.8965 [Epoch 83/500] Val Loss: 0.4171, Val Accuracy: 0.8304 [Epoch 84/500] Train Loss: 0.3679, Train Accuracy: 0.8743 [Epoch 84/500] Val Loss: 0.4138, Val Accuracy: 0.8304 [Epoch 85/500] Train Loss: 0.3816, Train Accuracy: 0.8556 [Epoch 85/500] Val Loss: 0.3820, Val Accuracy: 0.8304 [Epoch 86/500] Train Loss: 0.4140, Train Accuracy: 0.8465 [Epoch 86/500] Val Loss: 0.3679, Val Accuracy: 0.8504 [Epoch 87/500] Train Loss: 0.4093, Train Accuracy: 0.8715 [Epoch 87/500] Val Loss: 0.3797, Val Accuracy: 0.8326 [Epoch 88/500] Train Loss: 0.3568, Train Accuracy: 0.8458 [Epoch 88/500] Val Loss: 0.3653, Val Accuracy: 0.8326 [Epoch 89/500] Train Loss: 0.3484, Train Accuracy: 0.8903 [Epoch 89/500] Val Loss: 0.3640, Val Accuracy: 0.8326 [Epoch 90/500] Train Loss: 0.3748, Train Accuracy: 0.8681 [Epoch 90/500] Val Loss: 0.3579, Val Accuracy: 0.8661 [Epoch 91/500] Train Loss: 0.4377, Train Accuracy: 0.7736 [Epoch 91/500] Val Loss: 0.3646, Val Accuracy: 0.8504 [Epoch 92/500] Train Loss: 0.3359, Train Accuracy: 0.9062 [Epoch 92/500] Val Loss: 0.3560, Val Accuracy: 0.8504 [Epoch 93/500] Train Loss: 0.4025, Train Accuracy: 0.8590 [Epoch 93/500] Val Loss: 0.3425, Val Accuracy: 0.8817 [Epoch 94/500] Train Loss: 0.3636, Train Accuracy: 0.8840 [Epoch 94/500] Val Loss: 0.3587, Val Accuracy: 0.8661 [Epoch 95/500] Train Loss: 0.3937, Train Accuracy: 0.8174 [Epoch 95/500] Val Loss: 0.3420, Val Accuracy: 0.8817 [Epoch 96/500] Train Loss: 0.4251, Train Accuracy: 0.8368 [Epoch 96/500] Val Loss: 0.3392, Val Accuracy: 0.8817 [Epoch 97/500] Train Loss: 0.3710, Train Accuracy: 0.8556 [Epoch 97/500] Val Loss: 0.3312, Val Accuracy: 0.8996 [Epoch 98/500] Train Loss: 0.3178, Train Accuracy: 0.9000 [Epoch 98/500] Val Loss: 0.3600, Val Accuracy: 0.8638 [Epoch 99/500] Train Loss: 0.3730, Train Accuracy: 0.8903 [Epoch 99/500] Val Loss: 0.3503, Val Accuracy: 0.8638 [Epoch 100/500] Train Loss: 0.3537, Train Accuracy: 0.8715 [Epoch 100/500] Val Loss: 0.3442, Val Accuracy: 0.8817 [Epoch 101/500] Train Loss: 0.3360, Train Accuracy: 0.8618 [Epoch 101/500] Val Loss: 0.3292, Val Accuracy: 0.8817 [Epoch 102/500] Train Loss: 0.3887, Train Accuracy: 0.8333 [Epoch 102/500] Val Loss: 0.3167, Val Accuracy: 0.8817 [Epoch 103/500] Train Loss: 0.3360, Train Accuracy: 0.8965 [Epoch 103/500] Val Loss: 0.3274, Val Accuracy: 0.8817 [Epoch 104/500] Train Loss: 0.3579, Train Accuracy: 0.8715 [Epoch 104/500] Val Loss: 0.3415, Val Accuracy: 0.8817 [Epoch 105/500] Train Loss: 0.3522, Train Accuracy: 0.8681 [Epoch 105/500] Val Loss: 0.3570, Val Accuracy: 0.8638 [Epoch 106/500] Train Loss: 0.3727, Train Accuracy: 0.8361 [Epoch 106/500] Val Loss: 0.3408, Val Accuracy: 0.8638 [Epoch 107/500] Train Loss: 0.3538, Train Accuracy: 0.8715 [Epoch 107/500] Val Loss: 0.3520, Val Accuracy: 0.8460 [Epoch 108/500] Train Loss: 0.3551, Train Accuracy: 0.8493 [Epoch 108/500] Val Loss: 0.3690, Val Accuracy: 0.8304 [Epoch 109/500] Train Loss: 0.3135, Train Accuracy: 0.9250 [Epoch 109/500] Val Loss: 0.3661, Val Accuracy: 0.8304 [Epoch 110/500] Train Loss: 0.3287, Train Accuracy: 0.8806 [Epoch 110/500] Val Loss: 0.3747, Val Accuracy: 0.8304 [Epoch 111/500] Train Loss: 0.3228, Train Accuracy: 0.9187 [Epoch 111/500] Val Loss: 0.3486, Val Accuracy: 0.8304 [Epoch 112/500] Train Loss: 0.3250, Train Accuracy: 0.9153 [Epoch 112/500] Val Loss: 0.3347, Val Accuracy: 0.8638 [Epoch 113/500] Train Loss: 0.3315, Train Accuracy: 0.8903 [Epoch 113/500] Val Loss: 0.3161, Val Accuracy: 0.8996 [Epoch 114/500] Train Loss: 0.3237, Train Accuracy: 0.8868 [Epoch 114/500] Val Loss: 0.3067, Val Accuracy: 0.8996 [Epoch 115/500] Train Loss: 0.3088, Train Accuracy: 0.9090 [Epoch 115/500] Val Loss: 0.3100, Val Accuracy: 0.8817 [Epoch 116/500] Train Loss: 0.2577, Train Accuracy: 0.9313 [Epoch 116/500] Val Loss: 0.3141, Val Accuracy: 0.8817 [Epoch 117/500] Train Loss: 0.3142, Train Accuracy: 0.8653 [Epoch 117/500] Val Loss: 0.3230, Val Accuracy: 0.8817 [Epoch 118/500] Train Loss: 0.2730, Train Accuracy: 0.9090 [Epoch 118/500] Val Loss: 0.3213, Val Accuracy: 0.8817 [Epoch 119/500] Train Loss: 0.3433, Train Accuracy: 0.8708 [Epoch 119/500] Val Loss: 0.3558, Val Accuracy: 0.8460 [Epoch 120/500] Train Loss: 0.3038, Train Accuracy: 0.8965 [Epoch 120/500] Val Loss: 0.3391, Val Accuracy: 0.8638 [Epoch 121/500] Train Loss: 0.3056, Train Accuracy: 0.9083 [Epoch 121/500] Val Loss: 0.3617, Val Accuracy: 0.8125 [Epoch 122/500] Train Loss: 0.3262, Train Accuracy: 0.8868 [Epoch 122/500] Val Loss: 0.3842, Val Accuracy: 0.8125 [Epoch 123/500] Train Loss: 0.3194, Train Accuracy: 0.9125 [Epoch 123/500] Val Loss: 0.3780, Val Accuracy: 0.8125 [Epoch 124/500] Train Loss: 0.3128, Train Accuracy: 0.8812 [Epoch 124/500] Val Loss: 0.3688, Val Accuracy: 0.8125 [Epoch 125/500] Train Loss: 0.2690, Train Accuracy: 0.9313 [Epoch 125/500] Val Loss: 0.3386, Val Accuracy: 0.8304 [Epoch 126/500] Train Loss: 0.2899, Train Accuracy: 0.9340 [Epoch 126/500] Val Loss: 0.3170, Val Accuracy: 0.8638 [Epoch 127/500] Train Loss: 0.2754, Train Accuracy: 0.9250 [Epoch 127/500] Val Loss: 0.3022, Val Accuracy: 0.8996 [Epoch 128/500] Train Loss: 0.2762, Train Accuracy: 0.9250 [Epoch 128/500] Val Loss: 0.2977, Val Accuracy: 0.8996 [Epoch 129/500] Train Loss: 0.2948, Train Accuracy: 0.8993 [Epoch 129/500] Val Loss: 0.3128, Val Accuracy: 0.8817 [Epoch 130/500] Train Loss: 0.3164, Train Accuracy: 0.8833 [Epoch 130/500] Val Loss: 0.2854, Val Accuracy: 0.8817 [Epoch 131/500] Train Loss: 0.3127, Train Accuracy: 0.9028 [Epoch 131/500] Val Loss: 0.2899, Val Accuracy: 0.8817 [Epoch 132/500] Train Loss: 0.3136, Train Accuracy: 0.8875 [Epoch 132/500] Val Loss: 0.3134, Val Accuracy: 0.8638 [Epoch 133/500] Train Loss: 0.2553, Train Accuracy: 0.9403 [Epoch 133/500] Val Loss: 0.3244, Val Accuracy: 0.8638 [Epoch 134/500] Train Loss: 0.3649, Train Accuracy: 0.8868 [Epoch 134/500] Val Loss: 0.3547, Val Accuracy: 0.8304 [Epoch 135/500] Train Loss: 0.2843, Train Accuracy: 0.8903 [Epoch 135/500] Val Loss: 0.3351, Val Accuracy: 0.8482 [Epoch 136/500] Train Loss: 0.2870, Train Accuracy: 0.9250 [Epoch 136/500] Val Loss: 0.3187, Val Accuracy: 0.8460 [Epoch 137/500] Train Loss: 0.2811, Train Accuracy: 0.9340 [Epoch 137/500] Val Loss: 0.2995, Val Accuracy: 0.8817 [Epoch 138/500] Train Loss: 0.2619, Train Accuracy: 0.9187 [Epoch 138/500] Val Loss: 0.2905, Val Accuracy: 0.8817 [Epoch 139/500] Train Loss: 0.2434, Train Accuracy: 0.9403 [Epoch 139/500] Val Loss: 0.3072, Val Accuracy: 0.8817 [Epoch 140/500] Train Loss: 0.2997, Train Accuracy: 0.9243 [Epoch 140/500] Val Loss: 0.3265, Val Accuracy: 0.8638 [Epoch 141/500] Train Loss: 0.2396, Train Accuracy: 0.9563 [Epoch 141/500] Val Loss: 0.2977, Val Accuracy: 0.8817 [Epoch 142/500] Train Loss: 0.2743, Train Accuracy: 0.9243 [Epoch 142/500] Val Loss: 0.2973, Val Accuracy: 0.8996 [Epoch 143/500] Train Loss: 0.3020, Train Accuracy: 0.9083 [Epoch 143/500] Val Loss: 0.3092, Val Accuracy: 0.8817 [Epoch 144/500] Train Loss: 0.2300, Train Accuracy: 0.9500 [Epoch 144/500] Val Loss: 0.2976, Val Accuracy: 0.9152 [Epoch 145/500] Train Loss: 0.3149, Train Accuracy: 0.8896 [Epoch 145/500] Val Loss: 0.3107, Val Accuracy: 0.8638 [Epoch 146/500] Train Loss: 0.2212, Train Accuracy: 0.9500 [Epoch 146/500] Val Loss: 0.3075, Val Accuracy: 0.8795 [Epoch 147/500] Train Loss: 0.2461, Train Accuracy: 0.9340 [Epoch 147/500] Val Loss: 0.3041, Val Accuracy: 0.8795 [Epoch 148/500] Train Loss: 0.2869, Train Accuracy: 0.9062 [Epoch 148/500] Val Loss: 0.3026, Val Accuracy: 0.8817 [Epoch 149/500] Train Loss: 0.2553, Train Accuracy: 0.9278 [Epoch 149/500] Val Loss: 0.2829, Val Accuracy: 0.8996 [Epoch 150/500] Train Loss: 0.2392, Train Accuracy: 0.9313 [Epoch 150/500] Val Loss: 0.2742, Val Accuracy: 0.8996 [Epoch 151/500] Train Loss: 0.2391, Train Accuracy: 0.9062 [Epoch 151/500] Val Loss: 0.2765, Val Accuracy: 0.8817 [Epoch 152/500] Train Loss: 0.2718, Train Accuracy: 0.9250 [Epoch 152/500] Val Loss: 0.2548, Val Accuracy: 0.9152 [Epoch 153/500] Train Loss: 0.2374, Train Accuracy: 0.9500 [Epoch 153/500] Val Loss: 0.2511, Val Accuracy: 0.9152 [Epoch 154/500] Train Loss: 0.2505, Train Accuracy: 0.9500 [Epoch 154/500] Val Loss: 0.2672, Val Accuracy: 0.8817 [Epoch 155/500] Train Loss: 0.2083, Train Accuracy: 0.9688 [Epoch 155/500] Val Loss: 0.2678, Val Accuracy: 0.8973 [Epoch 156/500] Train Loss: 0.2620, Train Accuracy: 0.9153 [Epoch 156/500] Val Loss: 0.2536, Val Accuracy: 0.8817 [Epoch 157/500] Train Loss: 0.2246, Train Accuracy: 0.9500 [Epoch 157/500] Val Loss: 0.2447, Val Accuracy: 0.9152 [Epoch 158/500] Train Loss: 0.2184, Train Accuracy: 0.9500 [Epoch 158/500] Val Loss: 0.2460, Val Accuracy: 0.8996 [Epoch 159/500] Train Loss: 0.2593, Train Accuracy: 0.9056 [Epoch 159/500] Val Loss: 0.2555, Val Accuracy: 0.8817 [Epoch 160/500] Train Loss: 0.2046, Train Accuracy: 0.9500 [Epoch 160/500] Val Loss: 0.2474, Val Accuracy: 0.8996 [Epoch 161/500] Train Loss: 0.2354, Train Accuracy: 0.9375 [Epoch 161/500] Val Loss: 0.2462, Val Accuracy: 0.8996 [Epoch 162/500] Train Loss: 0.2366, Train Accuracy: 0.9403 [Epoch 162/500] Val Loss: 0.2421, Val Accuracy: 0.8996 [Epoch 163/500] Train Loss: 0.2316, Train Accuracy: 0.9403 [Epoch 163/500] Val Loss: 0.2516, Val Accuracy: 0.8973 [Epoch 164/500] Train Loss: 0.2450, Train Accuracy: 0.9590 [Epoch 164/500] Val Loss: 0.2573, Val Accuracy: 0.8795 [Epoch 165/500] Train Loss: 0.2471, Train Accuracy: 0.9278 [Epoch 165/500] Val Loss: 0.2782, Val Accuracy: 0.8795 [Epoch 166/500] Train Loss: 0.2963, Train Accuracy: 0.9021 [Epoch 166/500] Val Loss: 0.3091, Val Accuracy: 0.8616 [Epoch 167/500] Train Loss: 0.2978, Train Accuracy: 0.9056 [Epoch 167/500] Val Loss: 0.3062, Val Accuracy: 0.8616 [Epoch 168/500] Train Loss: 0.2560, Train Accuracy: 0.9181 [Epoch 168/500] Val Loss: 0.2891, Val Accuracy: 0.8795 [Epoch 169/500] Train Loss: 0.2842, Train Accuracy: 0.9153 [Epoch 169/500] Val Loss: 0.2926, Val Accuracy: 0.8795 [Epoch 170/500] Train Loss: 0.2726, Train Accuracy: 0.9021 [Epoch 170/500] Val Loss: 0.2857, Val Accuracy: 0.8795 [Epoch 171/500] Train Loss: 0.2701, Train Accuracy: 0.8993 [Epoch 171/500] Val Loss: 0.2459, Val Accuracy: 0.8973 [Epoch 172/500] Train Loss: 0.2445, Train Accuracy: 0.9278 [Epoch 172/500] Val Loss: 0.2505, Val Accuracy: 0.8973 [Epoch 173/500] Train Loss: 0.2198, Train Accuracy: 0.9750 [Epoch 173/500] Val Loss: 0.2704, Val Accuracy: 0.8795 [Epoch 174/500] Train Loss: 0.2283, Train Accuracy: 0.9465 [Epoch 174/500] Val Loss: 0.2895, Val Accuracy: 0.8616 [Epoch 175/500] Train Loss: 0.2132, Train Accuracy: 0.9750 [Epoch 175/500] Val Loss: 0.2698, Val Accuracy: 0.8616 [Epoch 176/500] Train Loss: 0.2334, Train Accuracy: 0.9403 [Epoch 176/500] Val Loss: 0.2780, Val Accuracy: 0.8616 [Epoch 177/500] Train Loss: 0.2057, Train Accuracy: 0.9590 [Epoch 177/500] Val Loss: 0.2503, Val Accuracy: 0.8795 [Epoch 178/500] Train Loss: 0.2500, Train Accuracy: 0.9243 [Epoch 178/500] Val Loss: 0.2461, Val Accuracy: 0.8973 [Epoch 179/500] Train Loss: 0.1956, Train Accuracy: 0.9375 [Epoch 179/500] Val Loss: 0.2393, Val Accuracy: 0.8973 [Epoch 180/500] Train Loss: 0.2441, Train Accuracy: 0.9243 [Epoch 180/500] Val Loss: 0.2600, Val Accuracy: 0.8616 [Epoch 181/500] Train Loss: 0.2048, Train Accuracy: 0.9250 [Epoch 181/500] Val Loss: 0.2473, Val Accuracy: 0.8795 [Epoch 182/500] Train Loss: 0.1992, Train Accuracy: 0.9812 [Epoch 182/500] Val Loss: 0.2643, Val Accuracy: 0.8616 [Epoch 183/500] Train Loss: 0.2882, Train Accuracy: 0.8958 [Epoch 183/500] Val Loss: 0.2800, Val Accuracy: 0.8616 [Epoch 184/500] Train Loss: 0.2676, Train Accuracy: 0.9187 [Epoch 184/500] Val Loss: 0.2733, Val Accuracy: 0.8616 [Epoch 185/500] Train Loss: 0.2389, Train Accuracy: 0.9306 [Epoch 185/500] Val Loss: 0.2650, Val Accuracy: 0.8616 [Epoch 186/500] Train Loss: 0.2355, Train Accuracy: 0.9403 [Epoch 186/500] Val Loss: 0.2828, Val Accuracy: 0.8616 [Epoch 187/500] Train Loss: 0.2211, Train Accuracy: 0.9215 [Epoch 187/500] Val Loss: 0.2680, Val Accuracy: 0.8616 [Epoch 188/500] Train Loss: 0.2601, Train Accuracy: 0.8993 [Epoch 188/500] Val Loss: 0.2207, Val Accuracy: 0.9464 [Epoch 189/500] Train Loss: 0.2032, Train Accuracy: 0.9465 [Epoch 189/500] Val Loss: 0.2114, Val Accuracy: 0.9464 [Epoch 190/500] Train Loss: 0.1830, Train Accuracy: 0.9812 [Epoch 190/500] Val Loss: 0.2149, Val Accuracy: 0.9464 [Epoch 191/500] Train Loss: 0.1845, Train Accuracy: 0.9528 [Epoch 191/500] Val Loss: 0.2033, Val Accuracy: 0.9464 [Epoch 192/500] Train Loss: 0.2112, Train Accuracy: 0.9375 [Epoch 192/500] Val Loss: 0.1994, Val Accuracy: 0.9464 [Epoch 193/500] Train Loss: 0.2067, Train Accuracy: 0.9688 [Epoch 193/500] Val Loss: 0.2056, Val Accuracy: 0.9464 [Epoch 194/500] Train Loss: 0.2596, Train Accuracy: 0.9153 [Epoch 194/500] Val Loss: 0.2244, Val Accuracy: 0.9129 [Epoch 195/500] Train Loss: 0.1737, Train Accuracy: 0.9500 [Epoch 195/500] Val Loss: 0.2397, Val Accuracy: 0.8772 [Epoch 196/500] Train Loss: 0.1962, Train Accuracy: 0.9563 [Epoch 196/500] Val Loss: 0.2280, Val Accuracy: 0.8951 [Epoch 197/500] Train Loss: 0.2244, Train Accuracy: 0.9118 [Epoch 197/500] Val Loss: 0.2582, Val Accuracy: 0.8616 [Epoch 198/500] Train Loss: 0.2361, Train Accuracy: 0.9465 [Epoch 198/500] Val Loss: 0.2480, Val Accuracy: 0.8795 [Epoch 199/500] Train Loss: 0.2115, Train Accuracy: 0.9528 [Epoch 199/500] Val Loss: 0.2647, Val Accuracy: 0.8795 [Epoch 200/500] Train Loss: 0.2101, Train Accuracy: 0.9278 [Epoch 200/500] Val Loss: 0.2352, Val Accuracy: 0.9152 [Epoch 201/500] Train Loss: 0.1906, Train Accuracy: 0.9500 [Epoch 201/500] Val Loss: 0.2237, Val Accuracy: 0.9464 [Epoch 202/500] Train Loss: 0.1810, Train Accuracy: 0.9688 [Epoch 202/500] Val Loss: 0.2052, Val Accuracy: 0.9464 [Epoch 203/500] Train Loss: 0.2087, Train Accuracy: 0.9625 [Epoch 203/500] Val Loss: 0.2233, Val Accuracy: 0.9464 [Epoch 204/500] Train Loss: 0.2130, Train Accuracy: 0.9625 [Epoch 204/500] Val Loss: 0.2038, Val Accuracy: 0.9464 [Epoch 205/500] Train Loss: 0.1765, Train Accuracy: 0.9812 [Epoch 205/500] Val Loss: 0.2085, Val Accuracy: 0.9464 [Epoch 206/500] Train Loss: 0.2587, Train Accuracy: 0.9215 [Epoch 206/500] Val Loss: 0.1969, Val Accuracy: 0.9464 [Epoch 207/500] Train Loss: 0.1867, Train Accuracy: 0.9437 [Epoch 207/500] Val Loss: 0.2167, Val Accuracy: 0.9464 [Epoch 208/500] Train Loss: 0.1730, Train Accuracy: 0.9750 [Epoch 208/500] Val Loss: 0.2247, Val Accuracy: 0.9464 [Epoch 209/500] Train Loss: 0.1742, Train Accuracy: 0.9590 [Epoch 209/500] Val Loss: 0.2086, Val Accuracy: 0.9464 [Epoch 210/500] Train Loss: 0.1617, Train Accuracy: 0.9563 [Epoch 210/500] Val Loss: 0.1983, Val Accuracy: 0.9464 [Epoch 211/500] Train Loss: 0.1794, Train Accuracy: 0.9750 [Epoch 211/500] Val Loss: 0.1949, Val Accuracy: 0.9464 [Epoch 212/500] Train Loss: 0.1813, Train Accuracy: 0.9750 [Epoch 212/500] Val Loss: 0.1859, Val Accuracy: 0.9464 [Epoch 213/500] Train Loss: 0.1913, Train Accuracy: 0.9500 [Epoch 213/500] Val Loss: 0.1928, Val Accuracy: 0.9464 [Epoch 214/500] Train Loss: 0.1693, Train Accuracy: 0.9812 [Epoch 214/500] Val Loss: 0.2086, Val Accuracy: 0.9308 [Epoch 215/500] Train Loss: 0.1773, Train Accuracy: 0.9625 [Epoch 215/500] Val Loss: 0.1985, Val Accuracy: 0.9464 [Epoch 216/500] Train Loss: 0.2359, Train Accuracy: 0.9431 [Epoch 216/500] Val Loss: 0.2118, Val Accuracy: 0.9464 [Epoch 217/500] Train Loss: 0.2074, Train Accuracy: 0.9306 [Epoch 217/500] Val Loss: 0.2330, Val Accuracy: 0.8616 [Epoch 218/500] Train Loss: 0.1783, Train Accuracy: 0.9500 [Epoch 218/500] Val Loss: 0.2412, Val Accuracy: 0.8616 [Epoch 219/500] Train Loss: 0.2272, Train Accuracy: 0.9146 [Epoch 219/500] Val Loss: 0.2639, Val Accuracy: 0.8616 [Epoch 220/500] Train Loss: 0.1716, Train Accuracy: 0.9688 [Epoch 220/500] Val Loss: 0.2439, Val Accuracy: 0.8616 [Epoch 221/500] Train Loss: 0.1685, Train Accuracy: 0.9750 [Epoch 221/500] Val Loss: 0.2328, Val Accuracy: 0.8795 [Epoch 222/500] Train Loss: 0.1524, Train Accuracy: 0.9812 [Epoch 222/500] Val Loss: 0.2237, Val Accuracy: 0.8795 [Epoch 223/500] Train Loss: 0.1744, Train Accuracy: 0.9750 [Epoch 223/500] Val Loss: 0.1968, Val Accuracy: 0.9286 [Epoch 224/500] Train Loss: 0.1840, Train Accuracy: 0.9368 [Epoch 224/500] Val Loss: 0.2096, Val Accuracy: 0.9286 [Epoch 225/500] Train Loss: 0.1851, Train Accuracy: 0.9653 [Epoch 225/500] Val Loss: 0.2263, Val Accuracy: 0.8795 [Epoch 226/500] Train Loss: 0.1478, Train Accuracy: 0.9812 [Epoch 226/500] Val Loss: 0.2123, Val Accuracy: 0.9107 [Epoch 227/500] Train Loss: 0.2167, Train Accuracy: 0.9465 [Epoch 227/500] Val Loss: 0.2182, Val Accuracy: 0.8951 [Epoch 228/500] Train Loss: 0.2076, Train Accuracy: 0.9750 [Epoch 228/500] Val Loss: 0.2079, Val Accuracy: 0.9286 [Epoch 229/500] Train Loss: 0.1744, Train Accuracy: 0.9465 [Epoch 229/500] Val Loss: 0.1976, Val Accuracy: 0.9286 [Epoch 230/500] Train Loss: 0.2223, Train Accuracy: 0.9750 [Epoch 230/500] Val Loss: 0.1973, Val Accuracy: 0.9464 [Epoch 231/500] Train Loss: 0.1632, Train Accuracy: 0.9688 [Epoch 231/500] Val Loss: 0.2189, Val Accuracy: 0.9129 [Epoch 232/500] Train Loss: 0.1515, Train Accuracy: 0.9875 [Epoch 232/500] Val Loss: 0.1950, Val Accuracy: 0.9308 [Epoch 233/500] Train Loss: 0.1663, Train Accuracy: 0.9528 [Epoch 233/500] Val Loss: 0.2057, Val Accuracy: 0.9308 [Epoch 234/500] Train Loss: 0.2094, Train Accuracy: 0.9431 [Epoch 234/500] Val Loss: 0.2315, Val Accuracy: 0.8616 [Epoch 235/500] Train Loss: 0.1956, Train Accuracy: 0.9340 [Epoch 235/500] Val Loss: 0.2202, Val Accuracy: 0.9129 [Epoch 236/500] Train Loss: 0.1620, Train Accuracy: 0.9563 [Epoch 236/500] Val Loss: 0.1953, Val Accuracy: 0.9464 [Epoch 237/500] Train Loss: 0.1640, Train Accuracy: 0.9688 [Epoch 237/500] Val Loss: 0.1874, Val Accuracy: 0.9464 [Epoch 238/500] Train Loss: 0.1477, Train Accuracy: 0.9812 [Epoch 238/500] Val Loss: 0.1839, Val Accuracy: 0.9464 [Epoch 239/500] Train Loss: 0.1442, Train Accuracy: 0.9688 [Epoch 239/500] Val Loss: 0.1682, Val Accuracy: 0.9464 [Epoch 240/500] Train Loss: 0.1431, Train Accuracy: 0.9688 [Epoch 240/500] Val Loss: 0.1751, Val Accuracy: 0.9464 [Epoch 241/500] Train Loss: 0.2116, Train Accuracy: 0.9375 [Epoch 241/500] Val Loss: 0.1740, Val Accuracy: 0.9464 [Epoch 242/500] Train Loss: 0.1612, Train Accuracy: 0.9563 [Epoch 242/500] Val Loss: 0.1734, Val Accuracy: 0.9464 [Epoch 243/500] Train Loss: 0.1914, Train Accuracy: 0.9431 [Epoch 243/500] Val Loss: 0.1995, Val Accuracy: 0.9286 [Epoch 244/500] Train Loss: 0.1781, Train Accuracy: 0.9750 [Epoch 244/500] Val Loss: 0.2136, Val Accuracy: 0.9107 [Epoch 245/500] Train Loss: 0.1319, Train Accuracy: 0.9812 [Epoch 245/500] Val Loss: 0.2205, Val Accuracy: 0.8951 [Epoch 246/500] Train Loss: 0.1241, Train Accuracy: 0.9938 [Epoch 246/500] Val Loss: 0.2115, Val Accuracy: 0.9129 [Epoch 247/500] Train Loss: 0.1847, Train Accuracy: 0.9590 [Epoch 247/500] Val Loss: 0.2388, Val Accuracy: 0.8951 [Epoch 248/500] Train Loss: 0.1774, Train Accuracy: 0.9431 [Epoch 248/500] Val Loss: 0.2237, Val Accuracy: 0.8951 [Epoch 249/500] Train Loss: 0.1446, Train Accuracy: 0.9875 [Epoch 249/500] Val Loss: 0.2034, Val Accuracy: 0.9129 [Epoch 250/500] Train Loss: 0.1566, Train Accuracy: 0.9812 [Epoch 250/500] Val Loss: 0.1739, Val Accuracy: 0.9464 [Epoch 251/500] Train Loss: 0.1386, Train Accuracy: 0.9812 [Epoch 251/500] Val Loss: 0.1877, Val Accuracy: 0.9286 [Epoch 252/500] Train Loss: 0.1324, Train Accuracy: 0.9875 [Epoch 252/500] Val Loss: 0.1899, Val Accuracy: 0.9286 [Epoch 253/500] Train Loss: 0.1574, Train Accuracy: 0.9812 [Epoch 253/500] Val Loss: 0.1835, Val Accuracy: 0.9286 [Epoch 254/500] Train Loss: 0.1365, Train Accuracy: 0.9938 [Epoch 254/500] Val Loss: 0.1803, Val Accuracy: 0.9286 [Epoch 255/500] Train Loss: 0.1443, Train Accuracy: 0.9875 [Epoch 255/500] Val Loss: 0.2075, Val Accuracy: 0.8951 [Epoch 256/500] Train Loss: 0.1789, Train Accuracy: 0.9590 [Epoch 256/500] Val Loss: 0.2188, Val Accuracy: 0.8951 [Epoch 257/500] Train Loss: 0.1595, Train Accuracy: 0.9653 [Epoch 257/500] Val Loss: 0.2188, Val Accuracy: 0.8795 [Epoch 258/500] Train Loss: 0.1364, Train Accuracy: 0.9875 [Epoch 258/500] Val Loss: 0.2126, Val Accuracy: 0.9107 [Epoch 259/500] Train Loss: 0.1994, Train Accuracy: 0.9590 [Epoch 259/500] Val Loss: 0.2518, Val Accuracy: 0.8795 [Epoch 260/500] Train Loss: 0.1367, Train Accuracy: 0.9688 [Epoch 260/500] Val Loss: 0.2298, Val Accuracy: 0.8795 [Epoch 261/500] Train Loss: 0.1437, Train Accuracy: 0.9938 [Epoch 261/500] Val Loss: 0.2214, Val Accuracy: 0.8951 [Epoch 262/500] Train Loss: 0.1430, Train Accuracy: 0.9750 [Epoch 262/500] Val Loss: 0.2043, Val Accuracy: 0.9286 [Epoch 263/500] Train Loss: 0.1667, Train Accuracy: 0.9688 [Epoch 263/500] Val Loss: 0.1833, Val Accuracy: 0.9464 [Epoch 264/500] Train Loss: 0.1357, Train Accuracy: 0.9875 [Epoch 264/500] Val Loss: 0.1961, Val Accuracy: 0.9129 [Epoch 265/500] Train Loss: 0.1645, Train Accuracy: 0.9563 [Epoch 265/500] Val Loss: 0.2019, Val Accuracy: 0.9129 [Epoch 266/500] Train Loss: 0.1512, Train Accuracy: 0.9750 [Epoch 266/500] Val Loss: 0.2084, Val Accuracy: 0.9129 [Epoch 267/500] Train Loss: 0.1441, Train Accuracy: 0.9938 [Epoch 267/500] Val Loss: 0.2123, Val Accuracy: 0.9129 [Epoch 268/500] Train Loss: 0.1518, Train Accuracy: 0.9875 [Epoch 268/500] Val Loss: 0.1856, Val Accuracy: 0.9129 [Epoch 269/500] Train Loss: 0.1508, Train Accuracy: 0.9938 [Epoch 269/500] Val Loss: 0.1939, Val Accuracy: 0.9129 [Epoch 270/500] Train Loss: 0.2147, Train Accuracy: 0.9431 [Epoch 270/500] Val Loss: 0.2361, Val Accuracy: 0.8951 [Epoch 271/500] Train Loss: 0.1247, Train Accuracy: 0.9875 [Epoch 271/500] Val Loss: 0.1966, Val Accuracy: 0.9286 [Epoch 272/500] Train Loss: 0.2293, Train Accuracy: 0.9243 [Epoch 272/500] Val Loss: 0.1588, Val Accuracy: 0.9464 [Epoch 273/500] Train Loss: 0.1086, Train Accuracy: 0.9938 [Epoch 273/500] Val Loss: 0.1612, Val Accuracy: 0.9643 [Epoch 274/500] Train Loss: 0.1434, Train Accuracy: 0.9812 [Epoch 274/500] Val Loss: 0.1652, Val Accuracy: 0.9643 [Epoch 275/500] Train Loss: 0.1508, Train Accuracy: 0.9528 [Epoch 275/500] Val Loss: 0.1646, Val Accuracy: 0.9643 [Epoch 276/500] Train Loss: 0.1350, Train Accuracy: 0.9875 [Epoch 276/500] Val Loss: 0.1775, Val Accuracy: 0.9464 [Epoch 277/500] Train Loss: 0.1201, Train Accuracy: 0.9750 [Epoch 277/500] Val Loss: 0.1618, Val Accuracy: 0.9643 [Epoch 278/500] Train Loss: 0.1696, Train Accuracy: 0.9750 [Epoch 278/500] Val Loss: 0.1507, Val Accuracy: 0.9643 [Epoch 279/500] Train Loss: 0.1680, Train Accuracy: 0.9590 [Epoch 279/500] Val Loss: 0.1671, Val Accuracy: 0.9464 [Epoch 280/500] Train Loss: 0.1496, Train Accuracy: 0.9812 [Epoch 280/500] Val Loss: 0.1769, Val Accuracy: 0.9464 [Epoch 281/500] Train Loss: 0.1261, Train Accuracy: 0.9875 [Epoch 281/500] Val Loss: 0.1833, Val Accuracy: 0.9286 [Epoch 282/500] Train Loss: 0.1826, Train Accuracy: 0.9528 [Epoch 282/500] Val Loss: 0.1892, Val Accuracy: 0.9286 [Epoch 283/500] Train Loss: 0.1301, Train Accuracy: 1.0000 [Epoch 283/500] Val Loss: 0.1727, Val Accuracy: 0.9464 [Epoch 284/500] Train Loss: 0.1382, Train Accuracy: 0.9938 [Epoch 284/500] Val Loss: 0.1893, Val Accuracy: 0.9286 [Epoch 285/500] Train Loss: 0.1156, Train Accuracy: 0.9875 [Epoch 285/500] Val Loss: 0.1796, Val Accuracy: 0.9286 [Epoch 286/500] Train Loss: 0.1248, Train Accuracy: 0.9875 [Epoch 286/500] Val Loss: 0.1878, Val Accuracy: 0.9286 [Epoch 287/500] Train Loss: 0.1545, Train Accuracy: 0.9590 [Epoch 287/500] Val Loss: 0.1794, Val Accuracy: 0.9286 [Epoch 288/500] Train Loss: 0.1433, Train Accuracy: 0.9750 [Epoch 288/500] Val Loss: 0.1741, Val Accuracy: 0.9643 [Epoch 289/500] Train Loss: 0.1317, Train Accuracy: 0.9875 [Epoch 289/500] Val Loss: 0.1809, Val Accuracy: 0.9286 [Epoch 290/500] Train Loss: 0.1511, Train Accuracy: 0.9556 [Epoch 290/500] Val Loss: 0.1979, Val Accuracy: 0.9286 [Epoch 291/500] Train Loss: 0.1147, Train Accuracy: 0.9938 [Epoch 291/500] Val Loss: 0.1838, Val Accuracy: 0.9286 [Epoch 292/500] Train Loss: 0.1700, Train Accuracy: 0.9368 [Epoch 292/500] Val Loss: 0.1901, Val Accuracy: 0.9286 [Epoch 293/500] Train Loss: 0.1177, Train Accuracy: 1.0000 [Epoch 293/500] Val Loss: 0.1748, Val Accuracy: 0.9286 [Epoch 294/500] Train Loss: 0.1119, Train Accuracy: 1.0000 [Epoch 294/500] Val Loss: 0.1669, Val Accuracy: 0.9464 [Epoch 295/500] Train Loss: 0.1375, Train Accuracy: 0.9875 [Epoch 295/500] Val Loss: 0.1573, Val Accuracy: 0.9464 [Epoch 296/500] Train Loss: 0.1272, Train Accuracy: 0.9715 [Epoch 296/500] Val Loss: 0.1581, Val Accuracy: 0.9643 [Epoch 297/500] Train Loss: 0.1269, Train Accuracy: 0.9875 [Epoch 297/500] Val Loss: 0.1787, Val Accuracy: 0.9286 [Epoch 298/500] Train Loss: 0.1416, Train Accuracy: 0.9625 [Epoch 298/500] Val Loss: 0.1903, Val Accuracy: 0.9286 [Epoch 299/500] Train Loss: 0.1121, Train Accuracy: 0.9875 [Epoch 299/500] Val Loss: 0.1694, Val Accuracy: 0.9286 [Epoch 300/500] Train Loss: 0.1395, Train Accuracy: 0.9875 [Epoch 300/500] Val Loss: 0.1803, Val Accuracy: 0.9286 [Epoch 301/500] Train Loss: 0.1357, Train Accuracy: 1.0000 [Epoch 301/500] Val Loss: 0.1891, Val Accuracy: 0.9286 [Epoch 302/500] Train Loss: 0.1154, Train Accuracy: 0.9875 [Epoch 302/500] Val Loss: 0.1939, Val Accuracy: 0.9286 [Epoch 303/500] Train Loss: 0.1215, Train Accuracy: 0.9750 [Epoch 303/500] Val Loss: 0.1897, Val Accuracy: 0.9286 [Epoch 304/500] Train Loss: 0.1335, Train Accuracy: 0.9778 [Epoch 304/500] Val Loss: 0.2255, Val Accuracy: 0.9129 [Epoch 305/500] Train Loss: 0.1448, Train Accuracy: 0.9528 [Epoch 305/500] Val Loss: 0.2067, Val Accuracy: 0.9129 [Epoch 306/500] Train Loss: 0.1486, Train Accuracy: 0.9653 [Epoch 306/500] Val Loss: 0.1685, Val Accuracy: 0.9464 [Epoch 307/500] Train Loss: 0.1487, Train Accuracy: 0.9778 [Epoch 307/500] Val Loss: 0.1722, Val Accuracy: 0.9464 [Epoch 308/500] Train Loss: 0.1322, Train Accuracy: 0.9812 [Epoch 308/500] Val Loss: 0.1769, Val Accuracy: 0.9464 [Epoch 309/500] Train Loss: 0.1200, Train Accuracy: 0.9875 [Epoch 309/500] Val Loss: 0.1681, Val Accuracy: 0.9464 [Epoch 310/500] Train Loss: 0.1209, Train Accuracy: 0.9938 [Epoch 310/500] Val Loss: 0.1767, Val Accuracy: 0.9464 [Epoch 311/500] Train Loss: 0.1185, Train Accuracy: 1.0000 [Epoch 311/500] Val Loss: 0.1850, Val Accuracy: 0.9464 [Epoch 312/500] Train Loss: 0.1235, Train Accuracy: 0.9812 [Epoch 312/500] Val Loss: 0.1767, Val Accuracy: 0.9464 [Epoch 313/500] Train Loss: 0.1132, Train Accuracy: 0.9875 [Epoch 313/500] Val Loss: 0.1784, Val Accuracy: 0.9464 [Epoch 314/500] Train Loss: 0.1761, Train Accuracy: 0.9528 [Epoch 314/500] Val Loss: 0.1606, Val Accuracy: 0.9643 [Epoch 315/500] Train Loss: 0.1221, Train Accuracy: 0.9812 [Epoch 315/500] Val Loss: 0.1717, Val Accuracy: 0.9464 [Epoch 316/500] Train Loss: 0.1365, Train Accuracy: 0.9715 [Epoch 316/500] Val Loss: 0.1414, Val Accuracy: 0.9643 [Epoch 317/500] Train Loss: 0.1534, Train Accuracy: 0.9778 [Epoch 317/500] Val Loss: 0.1579, Val Accuracy: 0.9464 [Epoch 318/500] Train Loss: 0.1562, Train Accuracy: 0.9493 [Epoch 318/500] Val Loss: 0.1749, Val Accuracy: 0.9464 [Epoch 319/500] Train Loss: 0.1282, Train Accuracy: 0.9750 [Epoch 319/500] Val Loss: 0.1505, Val Accuracy: 0.9464 [Epoch 320/500] Train Loss: 0.2023, Train Accuracy: 0.9368 [Epoch 320/500] Val Loss: 0.1657, Val Accuracy: 0.9464 [Epoch 321/500] Train Loss: 0.1542, Train Accuracy: 0.9528 [Epoch 321/500] Val Loss: 0.1750, Val Accuracy: 0.9464 [Epoch 322/500] Train Loss: 0.1867, Train Accuracy: 0.9083 [Epoch 322/500] Val Loss: 0.1667, Val Accuracy: 0.9464 [Epoch 323/500] Train Loss: 0.0987, Train Accuracy: 1.0000 [Epoch 323/500] Val Loss: 0.1489, Val Accuracy: 0.9464 [Epoch 324/500] Train Loss: 0.1474, Train Accuracy: 0.9715 [Epoch 324/500] Val Loss: 0.1614, Val Accuracy: 0.9464 [Epoch 325/500] Train Loss: 0.1090, Train Accuracy: 0.9875 [Epoch 325/500] Val Loss: 0.1722, Val Accuracy: 0.9464 [Epoch 326/500] Train Loss: 0.1168, Train Accuracy: 0.9812 [Epoch 326/500] Val Loss: 0.1543, Val Accuracy: 0.9464 [Epoch 327/500] Train Loss: 0.1523, Train Accuracy: 0.9493 [Epoch 327/500] Val Loss: 0.1593, Val Accuracy: 0.9464 [Epoch 328/500] Train Loss: 0.1465, Train Accuracy: 0.9431 [Epoch 328/500] Val Loss: 0.1597, Val Accuracy: 0.9464 [Epoch 329/500] Train Loss: 0.1988, Train Accuracy: 0.9368 [Epoch 329/500] Val Loss: 0.1867, Val Accuracy: 0.9464 [Epoch 330/500] Train Loss: 0.1220, Train Accuracy: 0.9653 [Epoch 330/500] Val Loss: 0.1745, Val Accuracy: 0.9464 [Epoch 331/500] Train Loss: 0.0912, Train Accuracy: 0.9938 [Epoch 331/500] Val Loss: 0.1586, Val Accuracy: 0.9464 [Epoch 332/500] Train Loss: 0.1034, Train Accuracy: 0.9938 [Epoch 332/500] Val Loss: 0.1548, Val Accuracy: 0.9464 [Epoch 333/500] Train Loss: 0.1850, Train Accuracy: 0.9431 [Epoch 333/500] Val Loss: 0.1898, Val Accuracy: 0.9464 [Epoch 334/500] Train Loss: 0.2054, Train Accuracy: 0.8924 [Epoch 334/500] Val Loss: 0.2024, Val Accuracy: 0.9308 [Epoch 335/500] Train Loss: 0.0991, Train Accuracy: 1.0000 [Epoch 335/500] Val Loss: 0.1862, Val Accuracy: 0.9308 [Epoch 336/500] Train Loss: 0.1134, Train Accuracy: 0.9875 [Epoch 336/500] Val Loss: 0.1724, Val Accuracy: 0.9464 [Epoch 337/500] Train Loss: 0.0998, Train Accuracy: 0.9938 [Epoch 337/500] Val Loss: 0.1635, Val Accuracy: 0.9464 [Epoch 338/500] Train Loss: 0.1233, Train Accuracy: 0.9875 [Epoch 338/500] Val Loss: 0.1437, Val Accuracy: 0.9643 [Epoch 339/500] Train Loss: 0.1272, Train Accuracy: 0.9812 [Epoch 339/500] Val Loss: 0.1604, Val Accuracy: 0.9308 [Epoch 340/500] Train Loss: 0.1212, Train Accuracy: 0.9778 [Epoch 340/500] Val Loss: 0.1492, Val Accuracy: 0.9643 [Epoch 341/500] Train Loss: 0.1169, Train Accuracy: 0.9812 [Epoch 341/500] Val Loss: 0.1571, Val Accuracy: 0.9487 [Epoch 342/500] Train Loss: 0.1108, Train Accuracy: 0.9875 [Epoch 342/500] Val Loss: 0.1638, Val Accuracy: 0.9487 [Epoch 343/500] Train Loss: 0.1110, Train Accuracy: 0.9875 [Epoch 343/500] Val Loss: 0.1603, Val Accuracy: 0.9643 [Epoch 344/500] Train Loss: 0.1051, Train Accuracy: 0.9875 [Epoch 344/500] Val Loss: 0.1414, Val Accuracy: 0.9643 [Epoch 345/500] Train Loss: 0.1089, Train Accuracy: 0.9938 [Epoch 345/500] Val Loss: 0.1389, Val Accuracy: 0.9643 [Epoch 346/500] Train Loss: 0.0967, Train Accuracy: 0.9938 [Epoch 346/500] Val Loss: 0.1536, Val Accuracy: 0.9643 [Epoch 347/500] Train Loss: 0.0987, Train Accuracy: 0.9938 [Epoch 347/500] Val Loss: 0.1625, Val Accuracy: 0.9487 [Epoch 348/500] Train Loss: 0.1067, Train Accuracy: 0.9938 [Epoch 348/500] Val Loss: 0.1711, Val Accuracy: 0.9308 [Epoch 349/500] Train Loss: 0.1380, Train Accuracy: 0.9938 [Epoch 349/500] Val Loss: 0.1740, Val Accuracy: 0.9308 [Epoch 350/500] Train Loss: 0.0975, Train Accuracy: 0.9938 [Epoch 350/500] Val Loss: 0.1613, Val Accuracy: 0.9643 [Epoch 351/500] Train Loss: 0.1239, Train Accuracy: 0.9556 [Epoch 351/500] Val Loss: 0.1646, Val Accuracy: 0.9464 [Epoch 352/500] Train Loss: 0.1179, Train Accuracy: 0.9653 [Epoch 352/500] Val Loss: 0.1667, Val Accuracy: 0.9464 [Epoch 353/500] Train Loss: 0.1251, Train Accuracy: 0.9875 [Epoch 353/500] Val Loss: 0.1773, Val Accuracy: 0.9464 [Epoch 354/500] Train Loss: 0.1088, Train Accuracy: 0.9938 [Epoch 354/500] Val Loss: 0.1912, Val Accuracy: 0.9308 [Epoch 355/500] Train Loss: 0.1291, Train Accuracy: 0.9688 [Epoch 355/500] Val Loss: 0.1702, Val Accuracy: 0.9464 [Epoch 356/500] Train Loss: 0.1118, Train Accuracy: 0.9938 [Epoch 356/500] Val Loss: 0.1576, Val Accuracy: 0.9464 [Epoch 357/500] Train Loss: 0.0922, Train Accuracy: 1.0000 [Epoch 357/500] Val Loss: 0.1564, Val Accuracy: 0.9464 [Epoch 358/500] Train Loss: 0.1163, Train Accuracy: 0.9938 [Epoch 358/500] Val Loss: 0.1759, Val Accuracy: 0.9464 [Epoch 359/500] Train Loss: 0.0940, Train Accuracy: 1.0000 [Epoch 359/500] Val Loss: 0.1585, Val Accuracy: 0.9464 [Epoch 360/500] Train Loss: 0.0952, Train Accuracy: 1.0000 [Epoch 360/500] Val Loss: 0.1537, Val Accuracy: 0.9464 [Epoch 361/500] Train Loss: 0.1275, Train Accuracy: 0.9812 [Epoch 361/500] Val Loss: 0.1638, Val Accuracy: 0.9464 [Epoch 362/500] Train Loss: 0.1055, Train Accuracy: 0.9875 [Epoch 362/500] Val Loss: 0.1567, Val Accuracy: 0.9643 [Epoch 363/500] Train Loss: 0.1316, Train Accuracy: 0.9715 [Epoch 363/500] Val Loss: 0.1674, Val Accuracy: 0.9308 [Epoch 364/500] Train Loss: 0.1677, Train Accuracy: 0.9333 [Epoch 364/500] Val Loss: 0.1480, Val Accuracy: 0.9643 [Epoch 365/500] Train Loss: 0.1033, Train Accuracy: 0.9875 [Epoch 365/500] Val Loss: 0.1465, Val Accuracy: 0.9643 [Epoch 366/500] Train Loss: 0.0835, Train Accuracy: 0.9938 [Epoch 366/500] Val Loss: 0.1420, Val Accuracy: 0.9643 [Epoch 367/500] Train Loss: 0.1044, Train Accuracy: 0.9938 [Epoch 367/500] Val Loss: 0.1460, Val Accuracy: 0.9643 [Epoch 368/500] Train Loss: 0.0861, Train Accuracy: 0.9875 [Epoch 368/500] Val Loss: 0.1597, Val Accuracy: 0.9308 [Epoch 369/500] Train Loss: 0.1422, Train Accuracy: 0.9493 [Epoch 369/500] Val Loss: 0.1634, Val Accuracy: 0.9308 [Epoch 370/500] Train Loss: 0.1184, Train Accuracy: 0.9938 [Epoch 370/500] Val Loss: 0.1810, Val Accuracy: 0.9308 [Epoch 371/500] Train Loss: 0.1106, Train Accuracy: 0.9875 [Epoch 371/500] Val Loss: 0.1599, Val Accuracy: 0.9308 [Epoch 372/500] Train Loss: 0.1058, Train Accuracy: 0.9875 [Epoch 372/500] Val Loss: 0.1499, Val Accuracy: 0.9464 [Epoch 373/500] Train Loss: 0.1016, Train Accuracy: 0.9750 [Epoch 373/500] Val Loss: 0.1313, Val Accuracy: 0.9643 [Epoch 374/500] Train Loss: 0.0965, Train Accuracy: 0.9875 [Epoch 374/500] Val Loss: 0.1270, Val Accuracy: 0.9643 [Epoch 375/500] Train Loss: 0.1202, Train Accuracy: 0.9750 [Epoch 375/500] Val Loss: 0.1296, Val Accuracy: 0.9643 [Epoch 376/500] Train Loss: 0.1105, Train Accuracy: 0.9778 [Epoch 376/500] Val Loss: 0.1150, Val Accuracy: 0.9643 [Epoch 377/500] Train Loss: 0.0832, Train Accuracy: 1.0000 [Epoch 377/500] Val Loss: 0.1255, Val Accuracy: 0.9643 [Epoch 378/500] Train Loss: 0.0879, Train Accuracy: 0.9938 [Epoch 378/500] Val Loss: 0.1294, Val Accuracy: 0.9643 [Epoch 379/500] Train Loss: 0.1002, Train Accuracy: 0.9938 [Epoch 379/500] Val Loss: 0.1468, Val Accuracy: 0.9308 [Epoch 380/500] Train Loss: 0.1063, Train Accuracy: 0.9875 [Epoch 380/500] Val Loss: 0.1329, Val Accuracy: 0.9487 [Epoch 381/500] Train Loss: 0.1870, Train Accuracy: 0.9431 [Epoch 381/500] Val Loss: 0.1627, Val Accuracy: 0.9308 [Epoch 382/500] Train Loss: 0.1637, Train Accuracy: 0.9715 [Epoch 382/500] Val Loss: 0.1659, Val Accuracy: 0.9308 [Epoch 383/500] Train Loss: 0.1463, Train Accuracy: 0.9556 [Epoch 383/500] Val Loss: 0.1706, Val Accuracy: 0.9308 [Epoch 384/500] Train Loss: 0.0812, Train Accuracy: 0.9938 [Epoch 384/500] Val Loss: 0.1615, Val Accuracy: 0.9308 [Epoch 385/500] Train Loss: 0.1453, Train Accuracy: 0.9653 [Epoch 385/500] Val Loss: 0.1696, Val Accuracy: 0.9308 [Epoch 386/500] Train Loss: 0.1086, Train Accuracy: 0.9778 [Epoch 386/500] Val Loss: 0.1771, Val Accuracy: 0.9308 [Epoch 387/500] Train Loss: 0.1182, Train Accuracy: 1.0000 [Epoch 387/500] Val Loss: 0.1801, Val Accuracy: 0.9308 [Epoch 388/500] Train Loss: 0.0840, Train Accuracy: 1.0000 [Epoch 388/500] Val Loss: 0.1438, Val Accuracy: 0.9464 [Epoch 389/500] Train Loss: 0.1078, Train Accuracy: 0.9875 [Epoch 389/500] Val Loss: 0.1579, Val Accuracy: 0.9308 [Epoch 390/500] Train Loss: 0.1385, Train Accuracy: 0.9778 [Epoch 390/500] Val Loss: 0.1620, Val Accuracy: 0.9308 [Epoch 391/500] Train Loss: 0.0860, Train Accuracy: 1.0000 [Epoch 391/500] Val Loss: 0.1390, Val Accuracy: 0.9464 [Epoch 392/500] Train Loss: 0.0897, Train Accuracy: 0.9938 [Epoch 392/500] Val Loss: 0.1282, Val Accuracy: 0.9464 [Epoch 393/500] Train Loss: 0.2008, Train Accuracy: 0.9111 [Epoch 393/500] Val Loss: 0.1620, Val Accuracy: 0.9464 [Epoch 394/500] Train Loss: 0.0768, Train Accuracy: 0.9938 [Epoch 394/500] Val Loss: 0.1407, Val Accuracy: 0.9464 [Epoch 395/500] Train Loss: 0.0816, Train Accuracy: 0.9938 [Epoch 395/500] Val Loss: 0.1327, Val Accuracy: 0.9464 [Epoch 396/500] Train Loss: 0.1080, Train Accuracy: 0.9812 [Epoch 396/500] Val Loss: 0.1385, Val Accuracy: 0.9464 [Epoch 397/500] Train Loss: 0.1000, Train Accuracy: 0.9875 [Epoch 397/500] Val Loss: 0.1313, Val Accuracy: 0.9464 [Epoch 398/500] Train Loss: 0.1199, Train Accuracy: 0.9778 [Epoch 398/500] Val Loss: 0.1197, Val Accuracy: 0.9643 [Epoch 399/500] Train Loss: 0.0750, Train Accuracy: 1.0000 [Epoch 399/500] Val Loss: 0.1249, Val Accuracy: 0.9643 [Epoch 400/500] Train Loss: 0.1069, Train Accuracy: 0.9812 [Epoch 400/500] Val Loss: 0.1554, Val Accuracy: 0.9464 [Epoch 401/500] Train Loss: 0.0998, Train Accuracy: 0.9938 [Epoch 401/500] Val Loss: 0.1487, Val Accuracy: 0.9464 [Epoch 402/500] Train Loss: 0.0733, Train Accuracy: 0.9938 [Epoch 402/500] Val Loss: 0.1394, Val Accuracy: 0.9464 [Epoch 403/500] Train Loss: 0.2038, Train Accuracy: 0.9111 [Epoch 403/500] Val Loss: 0.1610, Val Accuracy: 0.9308 [Epoch 404/500] Train Loss: 0.1282, Train Accuracy: 0.9812 [Epoch 404/500] Val Loss: 0.1695, Val Accuracy: 0.9308 [Epoch 405/500] Train Loss: 0.1175, Train Accuracy: 1.0000 [Epoch 405/500] Val Loss: 0.1572, Val Accuracy: 0.9308 [Epoch 406/500] Train Loss: 0.0892, Train Accuracy: 0.9938 [Epoch 406/500] Val Loss: 0.1668, Val Accuracy: 0.9308 [Epoch 407/500] Train Loss: 0.0921, Train Accuracy: 0.9653 [Epoch 407/500] Val Loss: 0.1657, Val Accuracy: 0.9308 [Epoch 408/500] Train Loss: 0.1144, Train Accuracy: 0.9715 [Epoch 408/500] Val Loss: 0.1349, Val Accuracy: 0.9643 [Epoch 409/500] Train Loss: 0.1753, Train Accuracy: 0.9431 [Epoch 409/500] Val Loss: 0.1139, Val Accuracy: 0.9643 [Epoch 410/500] Train Loss: 0.1282, Train Accuracy: 0.9493 [Epoch 410/500] Val Loss: 0.1211, Val Accuracy: 0.9643 [Epoch 411/500] Train Loss: 0.0864, Train Accuracy: 0.9875 [Epoch 411/500] Val Loss: 0.1281, Val Accuracy: 0.9643 [Epoch 412/500] Train Loss: 0.1215, Train Accuracy: 0.9812 [Epoch 412/500] Val Loss: 0.1421, Val Accuracy: 0.9464 [Epoch 413/500] Train Loss: 0.0991, Train Accuracy: 0.9750 [Epoch 413/500] Val Loss: 0.1362, Val Accuracy: 0.9464 [Epoch 414/500] Train Loss: 0.0921, Train Accuracy: 0.9875 [Epoch 414/500] Val Loss: 0.1343, Val Accuracy: 0.9464 [Epoch 415/500] Train Loss: 0.1132, Train Accuracy: 0.9875 [Epoch 415/500] Val Loss: 0.1590, Val Accuracy: 0.9464 [Epoch 416/500] Train Loss: 0.0819, Train Accuracy: 1.0000 [Epoch 416/500] Val Loss: 0.1584, Val Accuracy: 0.9308 [Epoch 417/500] Train Loss: 0.0964, Train Accuracy: 0.9875 [Epoch 417/500] Val Loss: 0.1518, Val Accuracy: 0.9464 [Epoch 418/500] Train Loss: 0.0848, Train Accuracy: 1.0000 [Epoch 418/500] Val Loss: 0.1439, Val Accuracy: 0.9464 [Epoch 419/500] Train Loss: 0.0896, Train Accuracy: 1.0000 [Epoch 419/500] Val Loss: 0.1386, Val Accuracy: 0.9464 [Epoch 420/500] Train Loss: 0.0903, Train Accuracy: 1.0000 [Epoch 420/500] Val Loss: 0.1353, Val Accuracy: 0.9464 [Epoch 421/500] Train Loss: 0.1344, Train Accuracy: 0.9556 [Epoch 421/500] Val Loss: 0.1494, Val Accuracy: 0.9464 [Epoch 422/500] Train Loss: 0.1072, Train Accuracy: 0.9812 [Epoch 422/500] Val Loss: 0.1542, Val Accuracy: 0.9464 [Epoch 423/500] Train Loss: 0.0789, Train Accuracy: 1.0000 [Epoch 423/500] Val Loss: 0.1429, Val Accuracy: 0.9464 [Epoch 424/500] Train Loss: 0.0994, Train Accuracy: 0.9715 [Epoch 424/500] Val Loss: 0.1534, Val Accuracy: 0.9464 [Epoch 425/500] Train Loss: 0.0905, Train Accuracy: 1.0000 [Epoch 425/500] Val Loss: 0.1490, Val Accuracy: 0.9464 [Epoch 426/500] Train Loss: 0.0902, Train Accuracy: 0.9938 [Epoch 426/500] Val Loss: 0.1414, Val Accuracy: 0.9464 [Epoch 427/500] Train Loss: 0.1089, Train Accuracy: 0.9750 [Epoch 427/500] Val Loss: 0.1434, Val Accuracy: 0.9464 [Epoch 428/500] Train Loss: 0.1204, Train Accuracy: 0.9875 [Epoch 428/500] Val Loss: 0.1293, Val Accuracy: 0.9464 [Epoch 429/500] Train Loss: 0.0899, Train Accuracy: 1.0000 [Epoch 429/500] Val Loss: 0.1340, Val Accuracy: 0.9464 [Epoch 430/500] Train Loss: 0.1012, Train Accuracy: 1.0000 [Epoch 430/500] Val Loss: 0.1483, Val Accuracy: 0.9464 [Epoch 431/500] Train Loss: 0.1092, Train Accuracy: 0.9715 [Epoch 431/500] Val Loss: 0.1495, Val Accuracy: 0.9464 [Epoch 432/500] Train Loss: 0.0909, Train Accuracy: 0.9875 [Epoch 432/500] Val Loss: 0.1439, Val Accuracy: 0.9464 [Epoch 433/500] Train Loss: 0.0854, Train Accuracy: 1.0000 [Epoch 433/500] Val Loss: 0.1406, Val Accuracy: 0.9464 [Epoch 434/500] Train Loss: 0.1072, Train Accuracy: 0.9812 [Epoch 434/500] Val Loss: 0.1456, Val Accuracy: 0.9464 [Epoch 435/500] Train Loss: 0.0930, Train Accuracy: 0.9750 [Epoch 435/500] Val Loss: 0.1384, Val Accuracy: 0.9464 [Epoch 436/500] Train Loss: 0.1282, Train Accuracy: 0.9590 [Epoch 436/500] Val Loss: 0.1573, Val Accuracy: 0.9464 [Epoch 437/500] Train Loss: 0.0870, Train Accuracy: 0.9875 [Epoch 437/500] Val Loss: 0.1584, Val Accuracy: 0.9464 [Epoch 438/500] Train Loss: 0.0823, Train Accuracy: 1.0000 [Epoch 438/500] Val Loss: 0.1710, Val Accuracy: 0.9464 [Epoch 439/500] Train Loss: 0.0902, Train Accuracy: 1.0000 [Epoch 439/500] Val Loss: 0.1580, Val Accuracy: 0.9464 [Epoch 440/500] Train Loss: 0.0669, Train Accuracy: 0.9938 [Epoch 440/500] Val Loss: 0.1458, Val Accuracy: 0.9464 [Epoch 441/500] Train Loss: 0.0656, Train Accuracy: 1.0000 [Epoch 441/500] Val Loss: 0.1519, Val Accuracy: 0.9464 [Epoch 442/500] Train Loss: 0.0680, Train Accuracy: 0.9938 [Epoch 442/500] Val Loss: 0.1439, Val Accuracy: 0.9464 [Epoch 443/500] Train Loss: 0.0825, Train Accuracy: 0.9875 [Epoch 443/500] Val Loss: 0.1410, Val Accuracy: 0.9464 [Epoch 444/500] Train Loss: 0.0766, Train Accuracy: 1.0000 [Epoch 444/500] Val Loss: 0.1423, Val Accuracy: 0.9464 [Epoch 445/500] Train Loss: 0.0764, Train Accuracy: 0.9875 [Epoch 445/500] Val Loss: 0.1445, Val Accuracy: 0.9464 [Epoch 446/500] Train Loss: 0.0717, Train Accuracy: 1.0000 [Epoch 446/500] Val Loss: 0.1526, Val Accuracy: 0.9464 [Epoch 447/500] Train Loss: 0.1155, Train Accuracy: 0.9875 [Epoch 447/500] Val Loss: 0.1715, Val Accuracy: 0.9464 [Epoch 448/500] Train Loss: 0.1243, Train Accuracy: 0.9715 [Epoch 448/500] Val Loss: 0.1836, Val Accuracy: 0.9308 [Epoch 449/500] Train Loss: 0.0957, Train Accuracy: 0.9778 [Epoch 449/500] Val Loss: 0.1775, Val Accuracy: 0.9308 [Epoch 450/500] Train Loss: 0.0715, Train Accuracy: 1.0000 [Epoch 450/500] Val Loss: 0.1696, Val Accuracy: 0.9308 [Epoch 451/500] Train Loss: 0.1065, Train Accuracy: 1.0000 [Epoch 451/500] Val Loss: 0.1327, Val Accuracy: 0.9464 [Epoch 452/500] Train Loss: 0.0956, Train Accuracy: 0.9938 [Epoch 452/500] Val Loss: 0.1221, Val Accuracy: 0.9464 [Epoch 453/500] Train Loss: 0.0745, Train Accuracy: 0.9875 [Epoch 453/500] Val Loss: 0.1137, Val Accuracy: 0.9643 [Epoch 454/500] Train Loss: 0.0738, Train Accuracy: 1.0000 [Epoch 454/500] Val Loss: 0.1272, Val Accuracy: 0.9464 [Epoch 455/500] Train Loss: 0.0871, Train Accuracy: 1.0000 [Epoch 455/500] Val Loss: 0.1380, Val Accuracy: 0.9464 [Epoch 456/500] Train Loss: 0.0896, Train Accuracy: 0.9938 [Epoch 456/500] Val Loss: 0.1453, Val Accuracy: 0.9464 [Epoch 457/500] Train Loss: 0.0691, Train Accuracy: 0.9938 [Epoch 457/500] Val Loss: 0.1329, Val Accuracy: 0.9464 [Epoch 458/500] Train Loss: 0.1488, Train Accuracy: 0.9556 [Epoch 458/500] Val Loss: 0.1197, Val Accuracy: 0.9643 [Epoch 459/500] Train Loss: 0.0775, Train Accuracy: 1.0000 [Epoch 459/500] Val Loss: 0.1309, Val Accuracy: 0.9464 [Epoch 460/500] Train Loss: 0.0890, Train Accuracy: 0.9938 [Epoch 460/500] Val Loss: 0.1277, Val Accuracy: 0.9464 [Epoch 461/500] Train Loss: 0.1371, Train Accuracy: 0.9556 [Epoch 461/500] Val Loss: 0.1234, Val Accuracy: 0.9464 [Epoch 462/500] Train Loss: 0.0646, Train Accuracy: 0.9938 [Epoch 462/500] Val Loss: 0.1266, Val Accuracy: 0.9464 [Epoch 463/500] Train Loss: 0.0629, Train Accuracy: 1.0000 [Epoch 463/500] Val Loss: 0.1229, Val Accuracy: 0.9643 [Epoch 464/500] Train Loss: 0.0860, Train Accuracy: 0.9938 [Epoch 464/500] Val Loss: 0.1419, Val Accuracy: 0.9464 [Epoch 465/500] Train Loss: 0.1216, Train Accuracy: 0.9750 [Epoch 465/500] Val Loss: 0.1275, Val Accuracy: 0.9643 [Epoch 466/500] Train Loss: 0.0891, Train Accuracy: 1.0000 [Epoch 466/500] Val Loss: 0.1394, Val Accuracy: 0.9464 [Epoch 467/500] Train Loss: 0.1005, Train Accuracy: 0.9653 [Epoch 467/500] Val Loss: 0.1539, Val Accuracy: 0.9464 [Epoch 468/500] Train Loss: 0.0694, Train Accuracy: 0.9938 [Epoch 468/500] Val Loss: 0.1547, Val Accuracy: 0.9464 [Epoch 469/500] Train Loss: 0.1217, Train Accuracy: 0.9590 [Epoch 469/500] Val Loss: 0.1289, Val Accuracy: 0.9643 [Epoch 470/500] Train Loss: 0.0730, Train Accuracy: 0.9938 [Epoch 470/500] Val Loss: 0.1170, Val Accuracy: 0.9643 [Epoch 471/500] Train Loss: 0.0856, Train Accuracy: 0.9875 [Epoch 471/500] Val Loss: 0.1223, Val Accuracy: 0.9643 [Epoch 472/500] Train Loss: 0.1171, Train Accuracy: 0.9778 [Epoch 472/500] Val Loss: 0.1318, Val Accuracy: 0.9464 [Epoch 473/500] Train Loss: 0.0805, Train Accuracy: 0.9875 [Epoch 473/500] Val Loss: 0.1178, Val Accuracy: 0.9643 [Epoch 474/500] Train Loss: 0.0735, Train Accuracy: 1.0000 [Epoch 474/500] Val Loss: 0.1328, Val Accuracy: 0.9464 [Epoch 475/500] Train Loss: 0.1080, Train Accuracy: 0.9715 [Epoch 475/500] Val Loss: 0.1443, Val Accuracy: 0.9464 [Epoch 476/500] Train Loss: 0.1363, Train Accuracy: 0.9493 [Epoch 476/500] Val Loss: 0.1641, Val Accuracy: 0.9464 [Epoch 477/500] Train Loss: 0.0788, Train Accuracy: 0.9778 [Epoch 477/500] Val Loss: 0.1647, Val Accuracy: 0.9464 [Epoch 478/500] Train Loss: 0.0673, Train Accuracy: 0.9938 [Epoch 478/500] Val Loss: 0.1338, Val Accuracy: 0.9464 [Epoch 479/500] Train Loss: 0.0871, Train Accuracy: 0.9875 [Epoch 479/500] Val Loss: 0.1334, Val Accuracy: 0.9643 [Epoch 480/500] Train Loss: 0.0658, Train Accuracy: 1.0000 [Epoch 480/500] Val Loss: 0.1308, Val Accuracy: 0.9643 [Epoch 481/500] Train Loss: 0.0939, Train Accuracy: 0.9778 [Epoch 481/500] Val Loss: 0.1349, Val Accuracy: 0.9464 [Epoch 482/500] Train Loss: 0.1026, Train Accuracy: 0.9875 [Epoch 482/500] Val Loss: 0.1557, Val Accuracy: 0.9464 [Epoch 483/500] Train Loss: 0.0869, Train Accuracy: 0.9875 [Epoch 483/500] Val Loss: 0.1421, Val Accuracy: 0.9464 [Epoch 484/500] Train Loss: 0.0969, Train Accuracy: 1.0000 [Epoch 484/500] Val Loss: 0.1245, Val Accuracy: 0.9643 [Epoch 485/500] Train Loss: 0.0869, Train Accuracy: 0.9812 [Epoch 485/500] Val Loss: 0.1264, Val Accuracy: 0.9643 [Epoch 486/500] Train Loss: 0.0714, Train Accuracy: 0.9875 [Epoch 486/500] Val Loss: 0.1360, Val Accuracy: 0.9464 [Epoch 487/500] Train Loss: 0.0886, Train Accuracy: 1.0000 [Epoch 487/500] Val Loss: 0.1532, Val Accuracy: 0.9464 [Epoch 488/500] Train Loss: 0.1349, Train Accuracy: 0.9750 [Epoch 488/500] Val Loss: 0.1433, Val Accuracy: 0.9464 [Epoch 489/500] Train Loss: 0.0669, Train Accuracy: 0.9938 [Epoch 489/500] Val Loss: 0.1382, Val Accuracy: 0.9464 [Epoch 490/500] Train Loss: 0.0986, Train Accuracy: 0.9875 [Epoch 490/500] Val Loss: 0.1209, Val Accuracy: 0.9643 [Epoch 491/500] Train Loss: 0.0766, Train Accuracy: 0.9938 [Epoch 491/500] Val Loss: 0.1161, Val Accuracy: 0.9643 [Epoch 492/500] Train Loss: 0.0619, Train Accuracy: 1.0000 [Epoch 492/500] Val Loss: 0.1226, Val Accuracy: 0.9643 [Epoch 493/500] Train Loss: 0.1053, Train Accuracy: 0.9653 [Epoch 493/500] Val Loss: 0.1493, Val Accuracy: 0.9464 [Epoch 494/500] Train Loss: 0.0740, Train Accuracy: 0.9938 [Epoch 494/500] Val Loss: 0.1389, Val Accuracy: 0.9464 [Epoch 495/500] Train Loss: 0.1042, Train Accuracy: 0.9715 [Epoch 495/500] Val Loss: 0.1558, Val Accuracy: 0.9464 [Epoch 496/500] Train Loss: 0.1252, Train Accuracy: 0.9653 [Epoch 496/500] Val Loss: 0.1318, Val Accuracy: 0.9464 [Epoch 497/500] Train Loss: 0.0938, Train Accuracy: 0.9812 [Epoch 497/500] Val Loss: 0.1299, Val Accuracy: 0.9464 [Epoch 498/500] Train Loss: 0.0598, Train Accuracy: 1.0000 [Epoch 498/500] Val Loss: 0.1300, Val Accuracy: 0.9464 [Epoch 499/500] Train Loss: 0.1445, Train Accuracy: 0.9778 [Epoch 499/500] Val Loss: 0.1524, Val Accuracy: 0.9464 [Epoch 500/500] Train Loss: 0.0676, Train Accuracy: 0.9875 [Epoch 500/500] Val Loss: 0.1422, Val Accuracy: 0.9643
Out[1]:
source_layer | target_layer | source_node | target_node | class_idx | importance | normalized_importance | |
---|---|---|---|---|---|---|---|
0 | 0 | 1 | A0M8Q6 | R-HSA-166663 | 0 | 0.046414 | 0.009554 |
1 | 0 | 1 | A0M8Q6 | R-HSA-166663 | 1 | 0.045046 | 0.009272 |
2 | 0 | 1 | A0M8Q6 | R-HSA-198933 | 0 | 0.046414 | 0.009554 |
3 | 0 | 1 | A0M8Q6 | R-HSA-198933 | 1 | 0.045046 | 0.009272 |
4 | 0 | 1 | A0M8Q6 | R-HSA-2029481 | 0 | 0.046414 | 0.009554 |
... | ... | ... | ... | ... | ... | ... | ... |
7079 | 4 | 5 | R-HSA-9612973 | output_node | 1 | 0.153817 | 0.035590 |
7080 | 4 | 5 | R-HSA-9709957 | output_node | 0 | 0.191081 | 0.041147 |
7081 | 4 | 5 | R-HSA-9709957 | output_node | 1 | 0.091277 | 0.019655 |
7082 | 4 | 5 | R-HSA-9748784 | output_node | 0 | 0.194474 | 0.047578 |
7083 | 4 | 5 | R-HSA-9748784 | output_node | 1 | 0.033177 | 0.008117 |
7084 rows × 7 columns
In [2]:
Copied!
from binn.plot.network import visualize_binn
layer_specific_top_n = {"0": 10, "1": 7, "2": 5, "3": 5, "4": 5}
plt = visualize_binn(
explanations,
top_n=layer_specific_top_n,
plot_size=(20, 15),
sink_node_size=500,
node_size_scaling=200,
edge_width=1,
node_cmap="coolwarm",
pathways_mapping="reactome",
input_entity_mapping="uniprot"
)
plt.title("Interpreted network")
plt.savefig("./img/interpreted_binn.png")
from binn.plot.network import visualize_binn
layer_specific_top_n = {"0": 10, "1": 7, "2": 5, "3": 5, "4": 5}
plt = visualize_binn(
explanations,
top_n=layer_specific_top_n,
plot_size=(20, 15),
sink_node_size=500,
node_size_scaling=200,
edge_width=1,
node_cmap="coolwarm",
pathways_mapping="reactome",
input_entity_mapping="uniprot"
)
plt.title("Interpreted network")
plt.savefig("./img/interpreted_binn.png")
In [3]:
Copied!
average_explanations = explainer.explain(
dataloaders, nr_iterations=3, num_epochs=50, trainer=trainer
)
average_explanations = explainer.explain(
dataloaders, nr_iterations=3, num_epochs=50, trainer=trainer
)
[BINNExplainer] Iteration 1/3... [Epoch 1/50] Train Loss: 0.9191, Train Accuracy: 0.3854 [Epoch 1/50] Val Loss: 0.6931, Val Accuracy: 0.6250 [Epoch 2/50] Train Loss: 0.9186, Train Accuracy: 0.3319 [Epoch 2/50] Val Loss: 0.6925, Val Accuracy: 0.6250 [Epoch 3/50] Train Loss: 0.9000, Train Accuracy: 0.3896 [Epoch 3/50] Val Loss: 0.6934, Val Accuracy: 0.3594 [Epoch 4/50] Train Loss: 0.9189, Train Accuracy: 0.4049 [Epoch 4/50] Val Loss: 0.6938, Val Accuracy: 0.3415 [Epoch 5/50] Train Loss: 0.7889, Train Accuracy: 0.5215 [Epoch 5/50] Val Loss: 0.6948, Val Accuracy: 0.3415 [Epoch 6/50] Train Loss: 0.8482, Train Accuracy: 0.4639 [Epoch 6/50] Val Loss: 0.6945, Val Accuracy: 0.4531 [Epoch 7/50] Train Loss: 0.7898, Train Accuracy: 0.4611 [Epoch 7/50] Val Loss: 0.6984, Val Accuracy: 0.4174 [Epoch 8/50] Train Loss: 0.8681, Train Accuracy: 0.4701 [Epoch 8/50] Val Loss: 0.7024, Val Accuracy: 0.4196 [Epoch 9/50] Train Loss: 0.7773, Train Accuracy: 0.4681 [Epoch 9/50] Val Loss: 0.7127, Val Accuracy: 0.4196 [Epoch 10/50] Train Loss: 0.8086, Train Accuracy: 0.5326 [Epoch 10/50] Val Loss: 0.7211, Val Accuracy: 0.4196 [Epoch 11/50] Train Loss: 0.7498, Train Accuracy: 0.5236 [Epoch 11/50] Val Loss: 0.7394, Val Accuracy: 0.4866 [Epoch 12/50] Train Loss: 0.8695, Train Accuracy: 0.4132 [Epoch 12/50] Val Loss: 0.7347, Val Accuracy: 0.4710 [Epoch 13/50] Train Loss: 0.7198, Train Accuracy: 0.5736 [Epoch 13/50] Val Loss: 0.7095, Val Accuracy: 0.5223 [Epoch 14/50] Train Loss: 0.6933, Train Accuracy: 0.6076 [Epoch 14/50] Val Loss: 0.6746, Val Accuracy: 0.5692 [Epoch 15/50] Train Loss: 0.7195, Train Accuracy: 0.5514 [Epoch 15/50] Val Loss: 0.6437, Val Accuracy: 0.6339 [Epoch 16/50] Train Loss: 0.6586, Train Accuracy: 0.6264 [Epoch 16/50] Val Loss: 0.6108, Val Accuracy: 0.6496 [Epoch 17/50] Train Loss: 0.6107, Train Accuracy: 0.6903 [Epoch 17/50] Val Loss: 0.5811, Val Accuracy: 0.6496 [Epoch 18/50] Train Loss: 0.6302, Train Accuracy: 0.7056 [Epoch 18/50] Val Loss: 0.5550, Val Accuracy: 0.6964 [Epoch 19/50] Train Loss: 0.6104, Train Accuracy: 0.6646 [Epoch 19/50] Val Loss: 0.5310, Val Accuracy: 0.7299 [Epoch 20/50] Train Loss: 0.6176, Train Accuracy: 0.6521 [Epoch 20/50] Val Loss: 0.4974, Val Accuracy: 0.7812 [Epoch 21/50] Train Loss: 0.6660, Train Accuracy: 0.5951 [Epoch 21/50] Val Loss: 0.4841, Val Accuracy: 0.7478 [Epoch 22/50] Train Loss: 0.5843, Train Accuracy: 0.6958 [Epoch 22/50] Val Loss: 0.4702, Val Accuracy: 0.7478 [Epoch 23/50] Train Loss: 0.5996, Train Accuracy: 0.6951 [Epoch 23/50] Val Loss: 0.4760, Val Accuracy: 0.7121 [Epoch 24/50] Train Loss: 0.4986, Train Accuracy: 0.7181 [Epoch 24/50] Val Loss: 0.4564, Val Accuracy: 0.7478 [Epoch 25/50] Train Loss: 0.5654, Train Accuracy: 0.7181 [Epoch 25/50] Val Loss: 0.4443, Val Accuracy: 0.7634 [Epoch 26/50] Train Loss: 0.5581, Train Accuracy: 0.6639 [Epoch 26/50] Val Loss: 0.4244, Val Accuracy: 0.7634 [Epoch 27/50] Train Loss: 0.5324, Train Accuracy: 0.7208 [Epoch 27/50] Val Loss: 0.4188, Val Accuracy: 0.7812 [Epoch 28/50] Train Loss: 0.5304, Train Accuracy: 0.7326 [Epoch 28/50] Val Loss: 0.4088, Val Accuracy: 0.7812 [Epoch 29/50] Train Loss: 0.5184, Train Accuracy: 0.7583 [Epoch 29/50] Val Loss: 0.3951, Val Accuracy: 0.7991 [Epoch 30/50] Train Loss: 0.4809, Train Accuracy: 0.7326 [Epoch 30/50] Val Loss: 0.3919, Val Accuracy: 0.7812 [Epoch 31/50] Train Loss: 0.4573, Train Accuracy: 0.7931 [Epoch 31/50] Val Loss: 0.3955, Val Accuracy: 0.7991 [Epoch 32/50] Train Loss: 0.5162, Train Accuracy: 0.7368 [Epoch 32/50] Val Loss: 0.3919, Val Accuracy: 0.7991 [Epoch 33/50] Train Loss: 0.4445, Train Accuracy: 0.8625 [Epoch 33/50] Val Loss: 0.3739, Val Accuracy: 0.8482 [Epoch 34/50] Train Loss: 0.4816, Train Accuracy: 0.8118 [Epoch 34/50] Val Loss: 0.3643, Val Accuracy: 0.8661 [Epoch 35/50] Train Loss: 0.5249, Train Accuracy: 0.7271 [Epoch 35/50] Val Loss: 0.3539, Val Accuracy: 0.8661 [Epoch 36/50] Train Loss: 0.4714, Train Accuracy: 0.7611 [Epoch 36/50] Val Loss: 0.3557, Val Accuracy: 0.8661 [Epoch 37/50] Train Loss: 0.5146, Train Accuracy: 0.8146 [Epoch 37/50] Val Loss: 0.3580, Val Accuracy: 0.8661 [Epoch 38/50] Train Loss: 0.4628, Train Accuracy: 0.7771 [Epoch 38/50] Val Loss: 0.3672, Val Accuracy: 0.8147 [Epoch 39/50] Train Loss: 0.5000, Train Accuracy: 0.7708 [Epoch 39/50] Val Loss: 0.3647, Val Accuracy: 0.8125 [Epoch 40/50] Train Loss: 0.5053, Train Accuracy: 0.7896 [Epoch 40/50] Val Loss: 0.3563, Val Accuracy: 0.8304 [Epoch 41/50] Train Loss: 0.4360, Train Accuracy: 0.8146 [Epoch 41/50] Val Loss: 0.3499, Val Accuracy: 0.8304 [Epoch 42/50] Train Loss: 0.4285, Train Accuracy: 0.8090 [Epoch 42/50] Val Loss: 0.3367, Val Accuracy: 0.8304 [Epoch 43/50] Train Loss: 0.3986, Train Accuracy: 0.8368 [Epoch 43/50] Val Loss: 0.3258, Val Accuracy: 0.8304 [Epoch 44/50] Train Loss: 0.3787, Train Accuracy: 0.8500 [Epoch 44/50] Val Loss: 0.3206, Val Accuracy: 0.8482 [Epoch 45/50] Train Loss: 0.4106, Train Accuracy: 0.8368 [Epoch 45/50] Val Loss: 0.3234, Val Accuracy: 0.8638 [Epoch 46/50] Train Loss: 0.4308, Train Accuracy: 0.8187 [Epoch 46/50] Val Loss: 0.3222, Val Accuracy: 0.8281 [Epoch 47/50] Train Loss: 0.4116, Train Accuracy: 0.8340 [Epoch 47/50] Val Loss: 0.3163, Val Accuracy: 0.8281 [Epoch 48/50] Train Loss: 0.3552, Train Accuracy: 0.9215 [Epoch 48/50] Val Loss: 0.3141, Val Accuracy: 0.8438 [Epoch 49/50] Train Loss: 0.3756, Train Accuracy: 0.8590 [Epoch 49/50] Val Loss: 0.3135, Val Accuracy: 0.8438 [Epoch 50/50] Train Loss: 0.4009, Train Accuracy: 0.8465 [Epoch 50/50] Val Loss: 0.3080, Val Accuracy: 0.8616 [BINNExplainer] Iteration 2/3... [Epoch 1/50] Train Loss: 0.5925, Train Accuracy: 0.6174 [Epoch 1/50] Val Loss: 0.6920, Val Accuracy: 0.6250 [Epoch 2/50] Train Loss: 0.5315, Train Accuracy: 0.7340 [Epoch 2/50] Val Loss: 0.6916, Val Accuracy: 0.6250 [Epoch 3/50] Train Loss: 0.5359, Train Accuracy: 0.7465 [Epoch 3/50] Val Loss: 0.6911, Val Accuracy: 0.6250 [Epoch 4/50] Train Loss: 0.4988, Train Accuracy: 0.7208 [Epoch 4/50] Val Loss: 0.6896, Val Accuracy: 0.6250 [Epoch 5/50] Train Loss: 0.5110, Train Accuracy: 0.7486 [Epoch 5/50] Val Loss: 0.6871, Val Accuracy: 0.6250 [Epoch 6/50] Train Loss: 0.5109, Train Accuracy: 0.7646 [Epoch 6/50] Val Loss: 0.6813, Val Accuracy: 0.6741 [Epoch 7/50] Train Loss: 0.4853, Train Accuracy: 0.8153 [Epoch 7/50] Val Loss: 0.6694, Val Accuracy: 0.7366 [Epoch 8/50] Train Loss: 0.4554, Train Accuracy: 0.7903 [Epoch 8/50] Val Loss: 0.6501, Val Accuracy: 0.7991 [Epoch 9/50] Train Loss: 0.4414, Train Accuracy: 0.8028 [Epoch 9/50] Val Loss: 0.6151, Val Accuracy: 0.8304 [Epoch 10/50] Train Loss: 0.4432, Train Accuracy: 0.8153 [Epoch 10/50] Val Loss: 0.5668, Val Accuracy: 0.8326 [Epoch 11/50] Train Loss: 0.3426, Train Accuracy: 0.8750 [Epoch 11/50] Val Loss: 0.5061, Val Accuracy: 0.8638 [Epoch 12/50] Train Loss: 0.3402, Train Accuracy: 0.8875 [Epoch 12/50] Val Loss: 0.4467, Val Accuracy: 0.8817 [Epoch 13/50] Train Loss: 0.3122, Train Accuracy: 0.8715 [Epoch 13/50] Val Loss: 0.3964, Val Accuracy: 0.8638 [Epoch 14/50] Train Loss: 0.3353, Train Accuracy: 0.8812 [Epoch 14/50] Val Loss: 0.3645, Val Accuracy: 0.8638 [Epoch 15/50] Train Loss: 0.3759, Train Accuracy: 0.8396 [Epoch 15/50] Val Loss: 0.3485, Val Accuracy: 0.8817 [Epoch 16/50] Train Loss: 0.3179, Train Accuracy: 0.8938 [Epoch 16/50] Val Loss: 0.3341, Val Accuracy: 0.8817 [Epoch 17/50] Train Loss: 0.3892, Train Accuracy: 0.8076 [Epoch 17/50] Val Loss: 0.3156, Val Accuracy: 0.8817 [Epoch 18/50] Train Loss: 0.2865, Train Accuracy: 0.9250 [Epoch 18/50] Val Loss: 0.2988, Val Accuracy: 0.8973 [Epoch 19/50] Train Loss: 0.2751, Train Accuracy: 0.9313 [Epoch 19/50] Val Loss: 0.2927, Val Accuracy: 0.8795 [Epoch 20/50] Train Loss: 0.3389, Train Accuracy: 0.8681 [Epoch 20/50] Val Loss: 0.2983, Val Accuracy: 0.8795 [Epoch 21/50] Train Loss: 0.2784, Train Accuracy: 0.9187 [Epoch 21/50] Val Loss: 0.2933, Val Accuracy: 0.8795 [Epoch 22/50] Train Loss: 0.3058, Train Accuracy: 0.8965 [Epoch 22/50] Val Loss: 0.2841, Val Accuracy: 0.8795 [Epoch 23/50] Train Loss: 0.2870, Train Accuracy: 0.8743 [Epoch 23/50] Val Loss: 0.2896, Val Accuracy: 0.8795 [Epoch 24/50] Train Loss: 0.2397, Train Accuracy: 0.9313 [Epoch 24/50] Val Loss: 0.2916, Val Accuracy: 0.8638 [Epoch 25/50] Train Loss: 0.2831, Train Accuracy: 0.9028 [Epoch 25/50] Val Loss: 0.2813, Val Accuracy: 0.8638 [Epoch 26/50] Train Loss: 0.2952, Train Accuracy: 0.8812 [Epoch 26/50] Val Loss: 0.2564, Val Accuracy: 0.8973 [Epoch 27/50] Train Loss: 0.3448, Train Accuracy: 0.8868 [Epoch 27/50] Val Loss: 0.2746, Val Accuracy: 0.8795 [Epoch 28/50] Train Loss: 0.3106, Train Accuracy: 0.8556 [Epoch 28/50] Val Loss: 0.2793, Val Accuracy: 0.8638 [Epoch 29/50] Train Loss: 0.3037, Train Accuracy: 0.8743 [Epoch 29/50] Val Loss: 0.2555, Val Accuracy: 0.8795 [Epoch 30/50] Train Loss: 0.2518, Train Accuracy: 0.9181 [Epoch 30/50] Val Loss: 0.2512, Val Accuracy: 0.8795 [Epoch 31/50] Train Loss: 0.2643, Train Accuracy: 0.9313 [Epoch 31/50] Val Loss: 0.2442, Val Accuracy: 0.8973 [Epoch 32/50] Train Loss: 0.2329, Train Accuracy: 0.9437 [Epoch 32/50] Val Loss: 0.2389, Val Accuracy: 0.9152 [Epoch 33/50] Train Loss: 0.2327, Train Accuracy: 0.9340 [Epoch 33/50] Val Loss: 0.2253, Val Accuracy: 0.9152 [Epoch 34/50] Train Loss: 0.2303, Train Accuracy: 0.9500 [Epoch 34/50] Val Loss: 0.2220, Val Accuracy: 0.9152 [Epoch 35/50] Train Loss: 0.2344, Train Accuracy: 0.9153 [Epoch 35/50] Val Loss: 0.2432, Val Accuracy: 0.9129 [Epoch 36/50] Train Loss: 0.2123, Train Accuracy: 0.9688 [Epoch 36/50] Val Loss: 0.2231, Val Accuracy: 0.9308 [Epoch 37/50] Train Loss: 0.2544, Train Accuracy: 0.9028 [Epoch 37/50] Val Loss: 0.2273, Val Accuracy: 0.9129 [Epoch 38/50] Train Loss: 0.2343, Train Accuracy: 0.9250 [Epoch 38/50] Val Loss: 0.2225, Val Accuracy: 0.9308 [Epoch 39/50] Train Loss: 0.2528, Train Accuracy: 0.9181 [Epoch 39/50] Val Loss: 0.2391, Val Accuracy: 0.9129 [Epoch 40/50] Train Loss: 0.2067, Train Accuracy: 0.9437 [Epoch 40/50] Val Loss: 0.2410, Val Accuracy: 0.9129 [Epoch 41/50] Train Loss: 0.2511, Train Accuracy: 0.8993 [Epoch 41/50] Val Loss: 0.2686, Val Accuracy: 0.8973 [Epoch 42/50] Train Loss: 0.2544, Train Accuracy: 0.9153 [Epoch 42/50] Val Loss: 0.2808, Val Accuracy: 0.8616 [Epoch 43/50] Train Loss: 0.2187, Train Accuracy: 0.9403 [Epoch 43/50] Val Loss: 0.2731, Val Accuracy: 0.8616 [Epoch 44/50] Train Loss: 0.2162, Train Accuracy: 0.9375 [Epoch 44/50] Val Loss: 0.2620, Val Accuracy: 0.8973 [Epoch 45/50] Train Loss: 0.2362, Train Accuracy: 0.9500 [Epoch 45/50] Val Loss: 0.2360, Val Accuracy: 0.9129 [Epoch 46/50] Train Loss: 0.2568, Train Accuracy: 0.8924 [Epoch 46/50] Val Loss: 0.2649, Val Accuracy: 0.9129 [Epoch 47/50] Train Loss: 0.2395, Train Accuracy: 0.8833 [Epoch 47/50] Val Loss: 0.2671, Val Accuracy: 0.8951 [Epoch 48/50] Train Loss: 0.2653, Train Accuracy: 0.8958 [Epoch 48/50] Val Loss: 0.2987, Val Accuracy: 0.8616 [Epoch 49/50] Train Loss: 0.2109, Train Accuracy: 0.9375 [Epoch 49/50] Val Loss: 0.2613, Val Accuracy: 0.8951 [Epoch 50/50] Train Loss: 0.2382, Train Accuracy: 0.9083 [Epoch 50/50] Val Loss: 0.2647, Val Accuracy: 0.8951 [BINNExplainer] Iteration 3/3... [Epoch 1/50] Train Loss: 0.8401, Train Accuracy: 0.4701 [Epoch 1/50] Val Loss: 0.6928, Val Accuracy: 0.6250 [Epoch 2/50] Train Loss: 0.7645, Train Accuracy: 0.5396 [Epoch 2/50] Val Loss: 0.6926, Val Accuracy: 0.6250 [Epoch 3/50] Train Loss: 0.9065, Train Accuracy: 0.4507 [Epoch 3/50] Val Loss: 0.6933, Val Accuracy: 0.3750 [Epoch 4/50] Train Loss: 0.8173, Train Accuracy: 0.4944 [Epoch 4/50] Val Loss: 0.6926, Val Accuracy: 0.7188 [Epoch 5/50] Train Loss: 0.7743, Train Accuracy: 0.5201 [Epoch 5/50] Val Loss: 0.6916, Val Accuracy: 0.7009 [Epoch 6/50] Train Loss: 0.7753, Train Accuracy: 0.5458 [Epoch 6/50] Val Loss: 0.6886, Val Accuracy: 0.7188 [Epoch 7/50] Train Loss: 0.6265, Train Accuracy: 0.6681 [Epoch 7/50] Val Loss: 0.6835, Val Accuracy: 0.8192 [Epoch 8/50] Train Loss: 0.7117, Train Accuracy: 0.6333 [Epoch 8/50] Val Loss: 0.6739, Val Accuracy: 0.7277 [Epoch 9/50] Train Loss: 0.7203, Train Accuracy: 0.5514 [Epoch 9/50] Val Loss: 0.6529, Val Accuracy: 0.7455 [Epoch 10/50] Train Loss: 0.6659, Train Accuracy: 0.6146 [Epoch 10/50] Val Loss: 0.6171, Val Accuracy: 0.8125 [Epoch 11/50] Train Loss: 0.7536, Train Accuracy: 0.6174 [Epoch 11/50] Val Loss: 0.5774, Val Accuracy: 0.7812 [Epoch 12/50] Train Loss: 0.6361, Train Accuracy: 0.6771 [Epoch 12/50] Val Loss: 0.5465, Val Accuracy: 0.7634 [Epoch 13/50] Train Loss: 0.6365, Train Accuracy: 0.6549 [Epoch 13/50] Val Loss: 0.5330, Val Accuracy: 0.7634 [Epoch 14/50] Train Loss: 0.6185, Train Accuracy: 0.6931 [Epoch 14/50] Val Loss: 0.5328, Val Accuracy: 0.7455 [Epoch 15/50] Train Loss: 0.5632, Train Accuracy: 0.6868 [Epoch 15/50] Val Loss: 0.5376, Val Accuracy: 0.7121 [Epoch 16/50] Train Loss: 0.6005, Train Accuracy: 0.6486 [Epoch 16/50] Val Loss: 0.5442, Val Accuracy: 0.7121 [Epoch 17/50] Train Loss: 0.5957, Train Accuracy: 0.6354 [Epoch 17/50] Val Loss: 0.5316, Val Accuracy: 0.7277 [Epoch 18/50] Train Loss: 0.5698, Train Accuracy: 0.7083 [Epoch 18/50] Val Loss: 0.5410, Val Accuracy: 0.7433 [Epoch 19/50] Train Loss: 0.5728, Train Accuracy: 0.7049 [Epoch 19/50] Val Loss: 0.5282, Val Accuracy: 0.7433 [Epoch 20/50] Train Loss: 0.5171, Train Accuracy: 0.7521 [Epoch 20/50] Val Loss: 0.5135, Val Accuracy: 0.7946 [Epoch 21/50] Train Loss: 0.5647, Train Accuracy: 0.6549 [Epoch 21/50] Val Loss: 0.4991, Val Accuracy: 0.8281 [Epoch 22/50] Train Loss: 0.5289, Train Accuracy: 0.7431 [Epoch 22/50] Val Loss: 0.4772, Val Accuracy: 0.7969 [Epoch 23/50] Train Loss: 0.5195, Train Accuracy: 0.7174 [Epoch 23/50] Val Loss: 0.4517, Val Accuracy: 0.7969 [Epoch 24/50] Train Loss: 0.4551, Train Accuracy: 0.7840 [Epoch 24/50] Val Loss: 0.4324, Val Accuracy: 0.8147 [Epoch 25/50] Train Loss: 0.5336, Train Accuracy: 0.7174 [Epoch 25/50] Val Loss: 0.4318, Val Accuracy: 0.8125 [Epoch 26/50] Train Loss: 0.4817, Train Accuracy: 0.8153 [Epoch 26/50] Val Loss: 0.4196, Val Accuracy: 0.8281 [Epoch 27/50] Train Loss: 0.4215, Train Accuracy: 0.8187 [Epoch 27/50] Val Loss: 0.4115, Val Accuracy: 0.8281 [Epoch 28/50] Train Loss: 0.4610, Train Accuracy: 0.8090 [Epoch 28/50] Val Loss: 0.4050, Val Accuracy: 0.8125 [Epoch 29/50] Train Loss: 0.4662, Train Accuracy: 0.7771 [Epoch 29/50] Val Loss: 0.4113, Val Accuracy: 0.8281 [Epoch 30/50] Train Loss: 0.4829, Train Accuracy: 0.7896 [Epoch 30/50] Val Loss: 0.4225, Val Accuracy: 0.8438 [Epoch 31/50] Train Loss: 0.4313, Train Accuracy: 0.7799 [Epoch 31/50] Val Loss: 0.4068, Val Accuracy: 0.8281 [Epoch 32/50] Train Loss: 0.4163, Train Accuracy: 0.7833 [Epoch 32/50] Val Loss: 0.3903, Val Accuracy: 0.8438 [Epoch 33/50] Train Loss: 0.4172, Train Accuracy: 0.8243 [Epoch 33/50] Val Loss: 0.3868, Val Accuracy: 0.8438 [Epoch 34/50] Train Loss: 0.4316, Train Accuracy: 0.7924 [Epoch 34/50] Val Loss: 0.4001, Val Accuracy: 0.8438 [Epoch 35/50] Train Loss: 0.4203, Train Accuracy: 0.8049 [Epoch 35/50] Val Loss: 0.3969, Val Accuracy: 0.8438 [Epoch 36/50] Train Loss: 0.4343, Train Accuracy: 0.7743 [Epoch 36/50] Val Loss: 0.4114, Val Accuracy: 0.8438 [Epoch 37/50] Train Loss: 0.3657, Train Accuracy: 0.8778 [Epoch 37/50] Val Loss: 0.3994, Val Accuracy: 0.8438 [Epoch 38/50] Train Loss: 0.3251, Train Accuracy: 0.9062 [Epoch 38/50] Val Loss: 0.3816, Val Accuracy: 0.8616 [Epoch 39/50] Train Loss: 0.3566, Train Accuracy: 0.8938 [Epoch 39/50] Val Loss: 0.3553, Val Accuracy: 0.8795 [Epoch 40/50] Train Loss: 0.3346, Train Accuracy: 0.8493 [Epoch 40/50] Val Loss: 0.3532, Val Accuracy: 0.8795 [Epoch 41/50] Train Loss: 0.4065, Train Accuracy: 0.8583 [Epoch 41/50] Val Loss: 0.3626, Val Accuracy: 0.8772 [Epoch 42/50] Train Loss: 0.3960, Train Accuracy: 0.8340 [Epoch 42/50] Val Loss: 0.3377, Val Accuracy: 0.9107 [Epoch 43/50] Train Loss: 0.3204, Train Accuracy: 0.9278 [Epoch 43/50] Val Loss: 0.3239, Val Accuracy: 0.9129 [Epoch 44/50] Train Loss: 0.3331, Train Accuracy: 0.8778 [Epoch 44/50] Val Loss: 0.3246, Val Accuracy: 0.9286 [Epoch 45/50] Train Loss: 0.3422, Train Accuracy: 0.8903 [Epoch 45/50] Val Loss: 0.3154, Val Accuracy: 0.9286 [Epoch 46/50] Train Loss: 0.3434, Train Accuracy: 0.8812 [Epoch 46/50] Val Loss: 0.3233, Val Accuracy: 0.9286 [Epoch 47/50] Train Loss: 0.3059, Train Accuracy: 0.9028 [Epoch 47/50] Val Loss: 0.3043, Val Accuracy: 0.9286 [Epoch 48/50] Train Loss: 0.3107, Train Accuracy: 0.9187 [Epoch 48/50] Val Loss: 0.3236, Val Accuracy: 0.9286 [Epoch 49/50] Train Loss: 0.3773, Train Accuracy: 0.8583 [Epoch 49/50] Val Loss: 0.3350, Val Accuracy: 0.9129 [Epoch 50/50] Train Loss: 0.3378, Train Accuracy: 0.8681 [Epoch 50/50] Val Loss: 0.3259, Val Accuracy: 0.9129
In [4]:
Copied!
normalized_average_explanations = explainer.normalize_importances(
average_explanations, method="fan"
)
normalized_average_explanations
normalized_average_explanations = explainer.normalize_importances(
average_explanations, method="fan"
)
normalized_average_explanations
Out[4]:
source_layer | target_layer | source_node | target_node | class_idx | importance | normalized_importance | importance_0 | importance_1 | importance_2 | importance_mean | importance_std | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 1 | A0M8Q6 | R-HSA-166663 | 0 | 0.042978 | 0.010745 | 0.054916 | 0.059498 | 0.014519 | 0.042978 | 0.020210 |
1 | 0 | 1 | A0M8Q6 | R-HSA-166663 | 1 | 0.024389 | 0.006097 | 0.036027 | 0.023563 | 0.013576 | 0.024389 | 0.009184 |
2 | 0 | 1 | A0M8Q6 | R-HSA-198933 | 0 | 0.042978 | 0.010745 | 0.054916 | 0.059498 | 0.014519 | 0.042978 | 0.020210 |
3 | 0 | 1 | A0M8Q6 | R-HSA-198933 | 1 | 0.024389 | 0.006097 | 0.036027 | 0.023563 | 0.013576 | 0.024389 | 0.009184 |
4 | 0 | 1 | A0M8Q6 | R-HSA-2029481 | 0 | 0.042978 | 0.010745 | 0.054916 | 0.059498 | 0.014519 | 0.042978 | 0.020210 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
7079 | 4 | 5 | R-HSA-9612973 | output_node | 1 | 0.261493 | 0.112619 | 0.281425 | 0.322759 | 0.180295 | 0.261493 | 0.059844 |
7080 | 4 | 5 | R-HSA-9709957 | output_node | 0 | 0.177599 | 0.088800 | 0.197641 | 0.248670 | 0.086487 | 0.177599 | 0.067710 |
7081 | 4 | 5 | R-HSA-9709957 | output_node | 1 | 0.078293 | 0.039146 | 0.068226 | 0.037516 | 0.129136 | 0.078293 | 0.038075 |
7082 | 4 | 5 | R-HSA-9748784 | output_node | 0 | 0.210645 | 0.070215 | 0.249968 | 0.204762 | 0.177204 | 0.210645 | 0.029996 |
7083 | 4 | 5 | R-HSA-9748784 | output_node | 1 | 0.119934 | 0.039978 | 0.116994 | 0.130811 | 0.111997 | 0.119934 | 0.007957 |
7084 rows × 12 columns