Inference and Analysis of Spatial data Rhythmicity using GeneRhythm

This tutorial provides a step-by-step guide on performing inference, analysis, and visualization of Spatial data rhythmicity in a single dataset using GeneRhythm. We demonstrate the diverse capabilities of GeneRhythm by applying it to Spatial data obtained from human tissue samples.

GeneRhythm leverages user-provided Spatial data by integrating wavelet transformation with deep generative modeling. This approach enables the extraction of frequency-domain features that complement traditional time-domain analyses, allowing for a more comprehensive understanding of gene expression dynamics in Spatial data.

[1]:
import subprocess
from Build_graph import *
from Frequency_extract import *
from GCN_VAE import *
from Show_result import *

Part 1: Data loading and frequency information acquisition

Frequency information generation

In this step, we first chooce a line in the Spatial figure as the trajectory. Then, we harness the power of wavelet transformation to extract detailed frequency information from the gene expression data. By leveraging the trajectory information obtained from Spatial figure—which orders cells along a location axis—we can capture the underlying periodic patterns of gene expression.

Wavelet transformation decomposes the gene expression profiles into various frequency components, enabling us to detect subtle oscillations and rhythmic behaviors that are often not apparent in the time domain alone. This multi-scale analysis helps reveal hidden periodicities and enriches our understanding of gene regulatory mechanisms in Spatial data.

By integrating the frequency-domain features with the location trajectory and expression, we achieve a more nuanced analysis. The frequency information complements the location-domain data, enhancing gene clustering. Ultimately, this combined approach provides a comprehensive view of the dynamic changes in gene expression, paving the way for deeper insights into cellular functions and regulatory processes.

[2]:
dataset = 'LIBD_human_dorsolateral_prefrontal_cortex'
adata = sc.read_10x_h5('filtered_feature_bc_matrix.h5')
df_spatial = pd.read_csv('./spatial/tissue_positions_list.csv', header=None)
df_spatial.index = df_spatial.iloc[:, 0]
df_spatial = df_spatial.loc[adata.obs_names]

adata.obsm['spatial'] = df_spatial.iloc[:, -2:].values
adata.var_names_make_unique()
df_meta = pd.read_csv('metadata.tsv', sep='\t')
df_meta_layer = df_meta['layer_guess']
adata.obs['layer'] = df_meta_layer.values

# Extract spatial coordinates
spatial_coords = adata.obsm["spatial"]

# Define a single line from bottom-left to top-right
start = np.array([0, 0])  # Bottom-left
end = np.array([max(spatial_coords[:, 0]), max(spatial_coords[:, 1])])  # Top-right
frequency_extract_spatial( adata,dataset, start, end)

Part 2: Model preparation and training

Modle training

In this stage, the model is trained using location, frequency, and expression data. This integration allows the model to learn a comprehensive latent embedding that encapsulates the intricate relationships among genes. Once the model has been trained, we apply the Leiden algorithm to the latent space to identify gene clusters. These clusters represent groups of genes with similar expression dynamics and regulatory patterns, providing a valuable basis for further biological insights and downstream analysis in Spatial data.

[3]:
GeneRhythm_Model(input_data = 'LIBD_human_dorsolateral_prefrontal_cortex.npy',sc_data = adata)

____________________________
Start Training VAE...
torch.Size([5000, 250])
Epochs: 1, AvgLoss: 26.3230
torch.Size([5000, 250])
Epochs: 2, AvgLoss: 26.3207
torch.Size([5000, 250])
Epochs: 3, AvgLoss: 26.3182
torch.Size([5000, 250])
Epochs: 4, AvgLoss: 26.3159
torch.Size([5000, 250])
Epochs: 5, AvgLoss: 26.3146
torch.Size([5000, 250])
Epochs: 6, AvgLoss: 26.3125
torch.Size([5000, 250])
Epochs: 7, AvgLoss: 26.3092
torch.Size([5000, 250])
Epochs: 8, AvgLoss: 26.3068
torch.Size([5000, 250])
Epochs: 9, AvgLoss: 26.3048
torch.Size([5000, 250])
Epochs: 10, AvgLoss: 26.3017
torch.Size([5000, 250])
Epochs: 11, AvgLoss: 26.2996
torch.Size([5000, 250])
Epochs: 12, AvgLoss: 26.2971
torch.Size([5000, 250])
Epochs: 13, AvgLoss: 26.2954
torch.Size([5000, 250])
Epochs: 14, AvgLoss: 26.2929
torch.Size([5000, 250])
Epochs: 15, AvgLoss: 26.2912
torch.Size([5000, 250])
Epochs: 16, AvgLoss: 26.2890
torch.Size([5000, 250])
Epochs: 17, AvgLoss: 26.2868
torch.Size([5000, 250])
Epochs: 18, AvgLoss: 26.2841
torch.Size([5000, 250])
Epochs: 19, AvgLoss: 26.2826
torch.Size([5000, 250])
Epochs: 20, AvgLoss: 26.2805
torch.Size([5000, 250])
Epochs: 21, AvgLoss: 26.2767
torch.Size([5000, 250])
Epochs: 22, AvgLoss: 26.2752
torch.Size([5000, 250])
Epochs: 23, AvgLoss: 26.2719
torch.Size([5000, 250])
Epochs: 24, AvgLoss: 26.2708
torch.Size([5000, 250])
Epochs: 25, AvgLoss: 26.2686
torch.Size([5000, 250])
Epochs: 26, AvgLoss: 26.2662
torch.Size([5000, 250])
Epochs: 27, AvgLoss: 26.2630
torch.Size([5000, 250])
Epochs: 28, AvgLoss: 26.2619
torch.Size([5000, 250])
Epochs: 29, AvgLoss: 26.2600
torch.Size([5000, 250])
Epochs: 30, AvgLoss: 26.2579
torch.Size([5000, 250])
Epochs: 31, AvgLoss: 26.2542
torch.Size([5000, 250])
Epochs: 32, AvgLoss: 26.2529
torch.Size([5000, 250])
Epochs: 33, AvgLoss: 26.2498
torch.Size([5000, 250])
Epochs: 34, AvgLoss: 26.2476
torch.Size([5000, 250])
Epochs: 35, AvgLoss: 26.2462
torch.Size([5000, 250])
Epochs: 36, AvgLoss: 26.2444
torch.Size([5000, 250])
Epochs: 37, AvgLoss: 26.2412
torch.Size([5000, 250])
Epochs: 38, AvgLoss: 26.2395
torch.Size([5000, 250])
Epochs: 39, AvgLoss: 26.2362
torch.Size([5000, 250])
Epochs: 40, AvgLoss: 26.2335
torch.Size([5000, 250])
Epochs: 41, AvgLoss: 26.2316
torch.Size([5000, 250])
Epochs: 42, AvgLoss: 26.2309
torch.Size([5000, 250])
Epochs: 43, AvgLoss: 26.2276
torch.Size([5000, 250])
Epochs: 44, AvgLoss: 26.2251
torch.Size([5000, 250])
Epochs: 45, AvgLoss: 26.2245
torch.Size([5000, 250])
Epochs: 46, AvgLoss: 26.2204
torch.Size([5000, 250])
Epochs: 47, AvgLoss: 26.2181
torch.Size([5000, 250])
Epochs: 48, AvgLoss: 26.2164
torch.Size([5000, 250])
Epochs: 49, AvgLoss: 26.2130
torch.Size([5000, 250])
Epochs: 50, AvgLoss: 26.2124
torch.Size([5000, 250])
Epochs: 51, AvgLoss: 26.2089
torch.Size([5000, 250])
Epochs: 52, AvgLoss: 26.2063
torch.Size([5000, 250])
Epochs: 53, AvgLoss: 26.2041
torch.Size([5000, 250])
Epochs: 54, AvgLoss: 26.2017
torch.Size([5000, 250])
Epochs: 55, AvgLoss: 26.2011
torch.Size([5000, 250])
Epochs: 56, AvgLoss: 26.1968
torch.Size([5000, 250])
Epochs: 57, AvgLoss: 26.1953
torch.Size([5000, 250])
Epochs: 58, AvgLoss: 26.1945
torch.Size([5000, 250])
Epochs: 59, AvgLoss: 26.1902
torch.Size([5000, 250])
Epochs: 60, AvgLoss: 26.1884
torch.Size([5000, 250])
Epochs: 61, AvgLoss: 26.1871
torch.Size([5000, 250])
Epochs: 62, AvgLoss: 26.1844
torch.Size([5000, 250])
Epochs: 63, AvgLoss: 26.1828
torch.Size([5000, 250])
Epochs: 64, AvgLoss: 26.1800
torch.Size([5000, 250])
Epochs: 65, AvgLoss: 26.1774
torch.Size([5000, 250])
Epochs: 66, AvgLoss: 26.1751
torch.Size([5000, 250])
Epochs: 67, AvgLoss: 26.1747
torch.Size([5000, 250])
Epochs: 68, AvgLoss: 26.1698
torch.Size([5000, 250])
Epochs: 69, AvgLoss: 26.1701
torch.Size([5000, 250])
Epochs: 70, AvgLoss: 26.1662
torch.Size([5000, 250])
Epochs: 71, AvgLoss: 26.1629
torch.Size([5000, 250])
Epochs: 72, AvgLoss: 26.1619
torch.Size([5000, 250])
Epochs: 73, AvgLoss: 26.1599
torch.Size([5000, 250])
Epochs: 74, AvgLoss: 26.1569
torch.Size([5000, 250])
Epochs: 75, AvgLoss: 26.1538
torch.Size([5000, 250])
Epochs: 76, AvgLoss: 26.1543
torch.Size([5000, 250])
Epochs: 77, AvgLoss: 26.1494
torch.Size([5000, 250])
Epochs: 78, AvgLoss: 26.1477
torch.Size([5000, 250])
Epochs: 79, AvgLoss: 26.1455
torch.Size([5000, 250])
Epochs: 80, AvgLoss: 26.1437
torch.Size([5000, 250])
Epochs: 81, AvgLoss: 26.1404
torch.Size([5000, 250])
Epochs: 82, AvgLoss: 26.1389
torch.Size([5000, 250])
Epochs: 83, AvgLoss: 26.1371
torch.Size([5000, 250])
Epochs: 84, AvgLoss: 26.1352
torch.Size([5000, 250])
Epochs: 85, AvgLoss: 26.1330
torch.Size([5000, 250])
Epochs: 86, AvgLoss: 26.1293
torch.Size([5000, 250])
Epochs: 87, AvgLoss: 26.1270
torch.Size([5000, 250])
Epochs: 88, AvgLoss: 26.1264
torch.Size([5000, 250])
Epochs: 89, AvgLoss: 26.1228
torch.Size([5000, 250])
Epochs: 90, AvgLoss: 26.1196
torch.Size([5000, 250])
Epochs: 91, AvgLoss: 26.1177
torch.Size([5000, 250])
Epochs: 92, AvgLoss: 26.1166
torch.Size([5000, 250])
Epochs: 93, AvgLoss: 26.1130
torch.Size([5000, 250])
Epochs: 94, AvgLoss: 26.1116
torch.Size([5000, 250])
Epochs: 95, AvgLoss: 26.1094
torch.Size([5000, 250])
Epochs: 96, AvgLoss: 26.1072
torch.Size([5000, 250])
Epochs: 97, AvgLoss: 26.1036
torch.Size([5000, 250])
Epochs: 98, AvgLoss: 26.1029
torch.Size([5000, 250])
Epochs: 99, AvgLoss: 26.0988
torch.Size([5000, 250])
Epochs: 100, AvgLoss: 26.0978
torch.Size([5000, 250])
Epochs: 101, AvgLoss: 26.0966
torch.Size([5000, 250])
Epochs: 102, AvgLoss: 26.0932
torch.Size([5000, 250])
Epochs: 103, AvgLoss: 26.0909
torch.Size([5000, 250])
Epochs: 104, AvgLoss: 26.0882
torch.Size([5000, 250])
Epochs: 105, AvgLoss: 26.0867
torch.Size([5000, 250])
Epochs: 106, AvgLoss: 26.0831
torch.Size([5000, 250])
Epochs: 107, AvgLoss: 26.0809
torch.Size([5000, 250])
Epochs: 108, AvgLoss: 26.0800
torch.Size([5000, 250])
Epochs: 109, AvgLoss: 26.0766
torch.Size([5000, 250])
Epochs: 110, AvgLoss: 26.0733
torch.Size([5000, 250])
Epochs: 111, AvgLoss: 26.0718
torch.Size([5000, 250])
Epochs: 112, AvgLoss: 26.0699
torch.Size([5000, 250])
Epochs: 113, AvgLoss: 26.0672
torch.Size([5000, 250])
Epochs: 114, AvgLoss: 26.0641
torch.Size([5000, 250])
Epochs: 115, AvgLoss: 26.0626
torch.Size([5000, 250])
Epochs: 116, AvgLoss: 26.0611
torch.Size([5000, 250])
Epochs: 117, AvgLoss: 26.0597
torch.Size([5000, 250])
Epochs: 118, AvgLoss: 26.0557
torch.Size([5000, 250])
Epochs: 119, AvgLoss: 26.0545
torch.Size([5000, 250])
Epochs: 120, AvgLoss: 26.0501
torch.Size([5000, 250])
Epochs: 121, AvgLoss: 26.0486
torch.Size([5000, 250])
Epochs: 122, AvgLoss: 26.0452
torch.Size([5000, 250])
Epochs: 123, AvgLoss: 26.0435
torch.Size([5000, 250])
Epochs: 124, AvgLoss: 26.0399
torch.Size([5000, 250])
Epochs: 125, AvgLoss: 26.0385
torch.Size([5000, 250])
Epochs: 126, AvgLoss: 26.0368
torch.Size([5000, 250])
Epochs: 127, AvgLoss: 26.0325
torch.Size([5000, 250])
Epochs: 128, AvgLoss: 26.0308
torch.Size([5000, 250])
Epochs: 129, AvgLoss: 26.0285
torch.Size([5000, 250])
Epochs: 130, AvgLoss: 26.0274
torch.Size([5000, 250])
Epochs: 131, AvgLoss: 26.0245
torch.Size([5000, 250])
Epochs: 132, AvgLoss: 26.0210
torch.Size([5000, 250])
Epochs: 133, AvgLoss: 26.0187
torch.Size([5000, 250])
Epochs: 134, AvgLoss: 26.0164
torch.Size([5000, 250])
Epochs: 135, AvgLoss: 26.0148
torch.Size([5000, 250])
Epochs: 136, AvgLoss: 26.0127
torch.Size([5000, 250])
Epochs: 137, AvgLoss: 26.0098
torch.Size([5000, 250])
Epochs: 138, AvgLoss: 26.0086
torch.Size([5000, 250])
Epochs: 139, AvgLoss: 26.0056
torch.Size([5000, 250])
Epochs: 140, AvgLoss: 26.0024
torch.Size([5000, 250])
Epochs: 141, AvgLoss: 26.0003
torch.Size([5000, 250])
Epochs: 142, AvgLoss: 25.9986
torch.Size([5000, 250])
Epochs: 143, AvgLoss: 25.9946
torch.Size([5000, 250])
Epochs: 144, AvgLoss: 25.9926
torch.Size([5000, 250])
Epochs: 145, AvgLoss: 25.9893
torch.Size([5000, 250])
Epochs: 146, AvgLoss: 25.9868
torch.Size([5000, 250])
Epochs: 147, AvgLoss: 25.9845
torch.Size([5000, 250])
Epochs: 148, AvgLoss: 25.9827
torch.Size([5000, 250])
Epochs: 149, AvgLoss: 25.9795
torch.Size([5000, 250])
Epochs: 150, AvgLoss: 25.9773
torch.Size([5000, 250])
Epochs: 151, AvgLoss: 25.9753
torch.Size([5000, 250])
Epochs: 152, AvgLoss: 25.9720
torch.Size([5000, 250])
Epochs: 153, AvgLoss: 25.9719
torch.Size([5000, 250])
Epochs: 154, AvgLoss: 25.9682
torch.Size([5000, 250])
Epochs: 155, AvgLoss: 25.9654
torch.Size([5000, 250])
Epochs: 156, AvgLoss: 25.9622
torch.Size([5000, 250])
Epochs: 157, AvgLoss: 25.9599
torch.Size([5000, 250])
Epochs: 158, AvgLoss: 25.9561
torch.Size([5000, 250])
Epochs: 159, AvgLoss: 25.9546
torch.Size([5000, 250])
Epochs: 160, AvgLoss: 25.9522
torch.Size([5000, 250])
Epochs: 161, AvgLoss: 25.9484
torch.Size([5000, 250])
Epochs: 162, AvgLoss: 25.9476
torch.Size([5000, 250])
Epochs: 163, AvgLoss: 25.9442
torch.Size([5000, 250])
Epochs: 164, AvgLoss: 25.9437
torch.Size([5000, 250])
Epochs: 165, AvgLoss: 25.9387
torch.Size([5000, 250])
Epochs: 166, AvgLoss: 25.9358
torch.Size([5000, 250])
Epochs: 167, AvgLoss: 25.9330
torch.Size([5000, 250])
Epochs: 168, AvgLoss: 25.9337
torch.Size([5000, 250])
Epochs: 169, AvgLoss: 25.9280
torch.Size([5000, 250])
Epochs: 170, AvgLoss: 25.9256
torch.Size([5000, 250])
Epochs: 171, AvgLoss: 25.9245
torch.Size([5000, 250])
Epochs: 172, AvgLoss: 25.9213
torch.Size([5000, 250])
Epochs: 173, AvgLoss: 25.9196
torch.Size([5000, 250])
Epochs: 174, AvgLoss: 25.9149
torch.Size([5000, 250])
Epochs: 175, AvgLoss: 25.9126
torch.Size([5000, 250])
Epochs: 176, AvgLoss: 25.9100
torch.Size([5000, 250])
Epochs: 177, AvgLoss: 25.9091
torch.Size([5000, 250])
Epochs: 178, AvgLoss: 25.9068
torch.Size([5000, 250])
Epochs: 179, AvgLoss: 25.9022
torch.Size([5000, 250])
Epochs: 180, AvgLoss: 25.9003
torch.Size([5000, 250])
Epochs: 181, AvgLoss: 25.8969
torch.Size([5000, 250])
Epochs: 182, AvgLoss: 25.8951
torch.Size([5000, 250])
Epochs: 183, AvgLoss: 25.8939
torch.Size([5000, 250])
Epochs: 184, AvgLoss: 25.8907
torch.Size([5000, 250])
Epochs: 185, AvgLoss: 25.8880
torch.Size([5000, 250])
Epochs: 186, AvgLoss: 25.8849
torch.Size([5000, 250])
Epochs: 187, AvgLoss: 25.8832
torch.Size([5000, 250])
Epochs: 188, AvgLoss: 25.8811
torch.Size([5000, 250])
Epochs: 189, AvgLoss: 25.8762
torch.Size([5000, 250])
Epochs: 190, AvgLoss: 25.8740
torch.Size([5000, 250])
Epochs: 191, AvgLoss: 25.8713
torch.Size([5000, 250])
Epochs: 192, AvgLoss: 25.8688
torch.Size([5000, 250])
Epochs: 193, AvgLoss: 25.8644
torch.Size([5000, 250])
Epochs: 194, AvgLoss: 25.8627
torch.Size([5000, 250])
Epochs: 195, AvgLoss: 25.8606
torch.Size([5000, 250])
Epochs: 196, AvgLoss: 25.8589
torch.Size([5000, 250])
Epochs: 197, AvgLoss: 25.8560
torch.Size([5000, 250])
Epochs: 198, AvgLoss: 25.8504
torch.Size([5000, 250])
Epochs: 199, AvgLoss: 25.8472
torch.Size([5000, 250])
Epochs: 200, AvgLoss: 25.8467
torch.Size([5000, 250])
Epochs: 201, AvgLoss: 25.8448
torch.Size([5000, 250])
Epochs: 202, AvgLoss: 25.8417
torch.Size([5000, 250])
Epochs: 203, AvgLoss: 25.8392
torch.Size([5000, 250])
Epochs: 204, AvgLoss: 25.8362
torch.Size([5000, 250])
Epochs: 205, AvgLoss: 25.8325
torch.Size([5000, 250])
Epochs: 206, AvgLoss: 25.8316
torch.Size([5000, 250])
Epochs: 207, AvgLoss: 25.8288
torch.Size([5000, 250])
Epochs: 208, AvgLoss: 25.8256
torch.Size([5000, 250])
Epochs: 209, AvgLoss: 25.8221
torch.Size([5000, 250])
Epochs: 210, AvgLoss: 25.8177
torch.Size([5000, 250])
Epochs: 211, AvgLoss: 25.8154
torch.Size([5000, 250])
Epochs: 212, AvgLoss: 25.8117
torch.Size([5000, 250])
Epochs: 213, AvgLoss: 25.8093
torch.Size([5000, 250])
Epochs: 214, AvgLoss: 25.8069
torch.Size([5000, 250])
Epochs: 215, AvgLoss: 25.8043
torch.Size([5000, 250])
Epochs: 216, AvgLoss: 25.8035
torch.Size([5000, 250])
Epochs: 217, AvgLoss: 25.7999
torch.Size([5000, 250])
Epochs: 218, AvgLoss: 25.7947
torch.Size([5000, 250])
Epochs: 219, AvgLoss: 25.7911
torch.Size([5000, 250])
Epochs: 220, AvgLoss: 25.7904
torch.Size([5000, 250])
Epochs: 221, AvgLoss: 25.7864
torch.Size([5000, 250])
Epochs: 222, AvgLoss: 25.7880
torch.Size([5000, 250])
Epochs: 223, AvgLoss: 25.7836
torch.Size([5000, 250])
Epochs: 224, AvgLoss: 25.7818
torch.Size([5000, 250])
Epochs: 225, AvgLoss: 25.7760
torch.Size([5000, 250])
Epochs: 226, AvgLoss: 25.7736
torch.Size([5000, 250])
Epochs: 227, AvgLoss: 25.7706
torch.Size([5000, 250])
Epochs: 228, AvgLoss: 25.7686
torch.Size([5000, 250])
Epochs: 229, AvgLoss: 25.7655
torch.Size([5000, 250])
Epochs: 230, AvgLoss: 25.7631
torch.Size([5000, 250])
Epochs: 231, AvgLoss: 25.7574
torch.Size([5000, 250])
Epochs: 232, AvgLoss: 25.7549
torch.Size([5000, 250])
Epochs: 233, AvgLoss: 25.7542
torch.Size([5000, 250])
Epochs: 234, AvgLoss: 25.7509
torch.Size([5000, 250])
Epochs: 235, AvgLoss: 25.7483
torch.Size([5000, 250])
Epochs: 236, AvgLoss: 25.7447
torch.Size([5000, 250])
Epochs: 237, AvgLoss: 25.7424
torch.Size([5000, 250])
Epochs: 238, AvgLoss: 25.7392
torch.Size([5000, 250])
Epochs: 239, AvgLoss: 25.7337
torch.Size([5000, 250])
Epochs: 240, AvgLoss: 25.7314
torch.Size([5000, 250])
Epochs: 241, AvgLoss: 25.7328
torch.Size([5000, 250])
Epochs: 242, AvgLoss: 25.7240
torch.Size([5000, 250])
Epochs: 243, AvgLoss: 25.7227
torch.Size([5000, 250])
Epochs: 244, AvgLoss: 25.7200
torch.Size([5000, 250])
Epochs: 245, AvgLoss: 25.7183
torch.Size([5000, 250])
Epochs: 246, AvgLoss: 25.7159
torch.Size([5000, 250])
Epochs: 247, AvgLoss: 25.7125
torch.Size([5000, 250])
Epochs: 248, AvgLoss: 25.7076
torch.Size([5000, 250])
Epochs: 249, AvgLoss: 25.7077
torch.Size([5000, 250])
Epochs: 250, AvgLoss: 25.7035
torch.Size([5000, 250])
Epochs: 251, AvgLoss: 25.6954
torch.Size([5000, 250])
Epochs: 252, AvgLoss: 25.6972
torch.Size([5000, 250])
Epochs: 253, AvgLoss: 25.6912
torch.Size([5000, 250])
Epochs: 254, AvgLoss: 25.6905
torch.Size([5000, 250])
Epochs: 255, AvgLoss: 25.6867
torch.Size([5000, 250])
Epochs: 256, AvgLoss: 25.6839
torch.Size([5000, 250])
Epochs: 257, AvgLoss: 25.6785
torch.Size([5000, 250])
Epochs: 258, AvgLoss: 25.6768
torch.Size([5000, 250])
Epochs: 259, AvgLoss: 25.6771
torch.Size([5000, 250])
Epochs: 260, AvgLoss: 25.6689
torch.Size([5000, 250])
Epochs: 261, AvgLoss: 25.6680
torch.Size([5000, 250])
Epochs: 262, AvgLoss: 25.6617
torch.Size([5000, 250])
Epochs: 263, AvgLoss: 25.6588
torch.Size([5000, 250])
Epochs: 264, AvgLoss: 25.6580
torch.Size([5000, 250])
Epochs: 265, AvgLoss: 25.6523
torch.Size([5000, 250])
Epochs: 266, AvgLoss: 25.6544
torch.Size([5000, 250])
Epochs: 267, AvgLoss: 25.6491
torch.Size([5000, 250])
Epochs: 268, AvgLoss: 25.6447
torch.Size([5000, 250])
Epochs: 269, AvgLoss: 25.6431
torch.Size([5000, 250])
Epochs: 270, AvgLoss: 25.6388
torch.Size([5000, 250])
Epochs: 271, AvgLoss: 25.6329
torch.Size([5000, 250])
Epochs: 272, AvgLoss: 25.6317
torch.Size([5000, 250])
Epochs: 273, AvgLoss: 25.6283
torch.Size([5000, 250])
Epochs: 274, AvgLoss: 25.6248
torch.Size([5000, 250])
Epochs: 275, AvgLoss: 25.6190
torch.Size([5000, 250])
Epochs: 276, AvgLoss: 25.6182
torch.Size([5000, 250])
Epochs: 277, AvgLoss: 25.6150
torch.Size([5000, 250])
Epochs: 278, AvgLoss: 25.6131
torch.Size([5000, 250])
Epochs: 279, AvgLoss: 25.6055
torch.Size([5000, 250])
Epochs: 280, AvgLoss: 25.6064
torch.Size([5000, 250])
Epochs: 281, AvgLoss: 25.6024
torch.Size([5000, 250])
Epochs: 282, AvgLoss: 25.6009
torch.Size([5000, 250])
Epochs: 283, AvgLoss: 25.5984
torch.Size([5000, 250])
Epochs: 284, AvgLoss: 25.5950
torch.Size([5000, 250])
Epochs: 285, AvgLoss: 25.5880
torch.Size([5000, 250])
Epochs: 286, AvgLoss: 25.5859
torch.Size([5000, 250])
Epochs: 287, AvgLoss: 25.5819
torch.Size([5000, 250])
Epochs: 288, AvgLoss: 25.5819
torch.Size([5000, 250])
Epochs: 289, AvgLoss: 25.5786
torch.Size([5000, 250])
Epochs: 290, AvgLoss: 25.5698
torch.Size([5000, 250])
Epochs: 291, AvgLoss: 25.5679
torch.Size([5000, 250])
Epochs: 292, AvgLoss: 25.5680
torch.Size([5000, 250])
Epochs: 293, AvgLoss: 25.5652
torch.Size([5000, 250])
Epochs: 294, AvgLoss: 25.5591
torch.Size([5000, 250])
Epochs: 295, AvgLoss: 25.5530
torch.Size([5000, 250])
Epochs: 296, AvgLoss: 25.5512
torch.Size([5000, 250])
Epochs: 297, AvgLoss: 25.5505
torch.Size([5000, 250])
Epochs: 298, AvgLoss: 25.5454
torch.Size([5000, 250])
Epochs: 299, AvgLoss: 25.5424
torch.Size([5000, 250])
Epochs: 300, AvgLoss: 25.5402
torch.Size([5000, 250])
Epochs: 301, AvgLoss: 25.5356
torch.Size([5000, 250])
Epochs: 302, AvgLoss: 25.5325
torch.Size([5000, 250])
Epochs: 303, AvgLoss: 25.5270
torch.Size([5000, 250])
Epochs: 304, AvgLoss: 25.5256
torch.Size([5000, 250])
Epochs: 305, AvgLoss: 25.5215
torch.Size([5000, 250])
Epochs: 306, AvgLoss: 25.5184
torch.Size([5000, 250])
Epochs: 307, AvgLoss: 25.5126
torch.Size([5000, 250])
Epochs: 308, AvgLoss: 25.5068
torch.Size([5000, 250])
Epochs: 309, AvgLoss: 25.5044
torch.Size([5000, 250])
Epochs: 310, AvgLoss: 25.5022
torch.Size([5000, 250])
Epochs: 311, AvgLoss: 25.5006
torch.Size([5000, 250])
Epochs: 312, AvgLoss: 25.4930
torch.Size([5000, 250])
Epochs: 313, AvgLoss: 25.4922
torch.Size([5000, 250])
Epochs: 314, AvgLoss: 25.4874
torch.Size([5000, 250])
Epochs: 315, AvgLoss: 25.4830
torch.Size([5000, 250])
Epochs: 316, AvgLoss: 25.4816
torch.Size([5000, 250])
Epochs: 317, AvgLoss: 25.4768
torch.Size([5000, 250])
Epochs: 318, AvgLoss: 25.4737
torch.Size([5000, 250])
Epochs: 319, AvgLoss: 25.4669
torch.Size([5000, 250])
Epochs: 320, AvgLoss: 25.4667
torch.Size([5000, 250])
Epochs: 321, AvgLoss: 25.4613
torch.Size([5000, 250])
Epochs: 322, AvgLoss: 25.4582
torch.Size([5000, 250])
Epochs: 323, AvgLoss: 25.4558
torch.Size([5000, 250])
Epochs: 324, AvgLoss: 25.4491
torch.Size([5000, 250])
Epochs: 325, AvgLoss: 25.4442
torch.Size([5000, 250])
Epochs: 326, AvgLoss: 25.4442
torch.Size([5000, 250])
Epochs: 327, AvgLoss: 25.4383
torch.Size([5000, 250])
Epochs: 328, AvgLoss: 25.4383
torch.Size([5000, 250])
Epochs: 329, AvgLoss: 25.4337
torch.Size([5000, 250])
Epochs: 330, AvgLoss: 25.4303
torch.Size([5000, 250])
Epochs: 331, AvgLoss: 25.4228
torch.Size([5000, 250])
Epochs: 332, AvgLoss: 25.4240
torch.Size([5000, 250])
Epochs: 333, AvgLoss: 25.4179
torch.Size([5000, 250])
Epochs: 334, AvgLoss: 25.4132
torch.Size([5000, 250])
Epochs: 335, AvgLoss: 25.4066
torch.Size([5000, 250])
Epochs: 336, AvgLoss: 25.4061
torch.Size([5000, 250])
Epochs: 337, AvgLoss: 25.3996
torch.Size([5000, 250])
Epochs: 338, AvgLoss: 25.3986
torch.Size([5000, 250])
Epochs: 339, AvgLoss: 25.3979
torch.Size([5000, 250])
Epochs: 340, AvgLoss: 25.3919
torch.Size([5000, 250])
Epochs: 341, AvgLoss: 25.3866
torch.Size([5000, 250])
Epochs: 342, AvgLoss: 25.3840
torch.Size([5000, 250])
Epochs: 343, AvgLoss: 25.3809
torch.Size([5000, 250])
Epochs: 344, AvgLoss: 25.3731
torch.Size([5000, 250])
Epochs: 345, AvgLoss: 25.3701
torch.Size([5000, 250])
Epochs: 346, AvgLoss: 25.3682
torch.Size([5000, 250])
Epochs: 347, AvgLoss: 25.3619
torch.Size([5000, 250])
Epochs: 348, AvgLoss: 25.3570
torch.Size([5000, 250])
Epochs: 349, AvgLoss: 25.3540
torch.Size([5000, 250])
Epochs: 350, AvgLoss: 25.3505
torch.Size([5000, 250])
Epochs: 351, AvgLoss: 25.3467
torch.Size([5000, 250])
Epochs: 352, AvgLoss: 25.3393
torch.Size([5000, 250])
Epochs: 353, AvgLoss: 25.3417
torch.Size([5000, 250])
Epochs: 354, AvgLoss: 25.3343
torch.Size([5000, 250])
Epochs: 355, AvgLoss: 25.3321
torch.Size([5000, 250])
Epochs: 356, AvgLoss: 25.3236
torch.Size([5000, 250])
Epochs: 357, AvgLoss: 25.3215
torch.Size([5000, 250])
Epochs: 358, AvgLoss: 25.3189
torch.Size([5000, 250])
Epochs: 359, AvgLoss: 25.3119
torch.Size([5000, 250])
Epochs: 360, AvgLoss: 25.3100
torch.Size([5000, 250])
Epochs: 361, AvgLoss: 25.3077
torch.Size([5000, 250])
Epochs: 362, AvgLoss: 25.3021
torch.Size([5000, 250])
Epochs: 363, AvgLoss: 25.3001
torch.Size([5000, 250])
Epochs: 364, AvgLoss: 25.2897
torch.Size([5000, 250])
Epochs: 365, AvgLoss: 25.2907
torch.Size([5000, 250])
Epochs: 366, AvgLoss: 25.2807
torch.Size([5000, 250])
Epochs: 367, AvgLoss: 25.2800
torch.Size([5000, 250])
Epochs: 368, AvgLoss: 25.2737
torch.Size([5000, 250])
Epochs: 369, AvgLoss: 25.2713
torch.Size([5000, 250])
Epochs: 370, AvgLoss: 25.2684
torch.Size([5000, 250])
Epochs: 371, AvgLoss: 25.2663
torch.Size([5000, 250])
Epochs: 372, AvgLoss: 25.2556
torch.Size([5000, 250])
Epochs: 373, AvgLoss: 25.2568
torch.Size([5000, 250])
Epochs: 374, AvgLoss: 25.2547
torch.Size([5000, 250])
Epochs: 375, AvgLoss: 25.2457
torch.Size([5000, 250])
Epochs: 376, AvgLoss: 25.2417
torch.Size([5000, 250])
Epochs: 377, AvgLoss: 25.2375
torch.Size([5000, 250])
Epochs: 378, AvgLoss: 25.2379
torch.Size([5000, 250])
Epochs: 379, AvgLoss: 25.2261
torch.Size([5000, 250])
Epochs: 380, AvgLoss: 25.2192
torch.Size([5000, 250])
Epochs: 381, AvgLoss: 25.2177
torch.Size([5000, 250])
Epochs: 382, AvgLoss: 25.2154
torch.Size([5000, 250])
Epochs: 383, AvgLoss: 25.2084
torch.Size([5000, 250])
Epochs: 384, AvgLoss: 25.2077
torch.Size([5000, 250])
Epochs: 385, AvgLoss: 25.2055
torch.Size([5000, 250])
Epochs: 386, AvgLoss: 25.1961
torch.Size([5000, 250])
Epochs: 387, AvgLoss: 25.1957
torch.Size([5000, 250])
Epochs: 388, AvgLoss: 25.1899
torch.Size([5000, 250])
Epochs: 389, AvgLoss: 25.1877
torch.Size([5000, 250])
Epochs: 390, AvgLoss: 25.1804
torch.Size([5000, 250])
Epochs: 391, AvgLoss: 25.1757
torch.Size([5000, 250])
Epochs: 392, AvgLoss: 25.1724
torch.Size([5000, 250])
Epochs: 393, AvgLoss: 25.1698
torch.Size([5000, 250])
Epochs: 394, AvgLoss: 25.1610
torch.Size([5000, 250])
Epochs: 395, AvgLoss: 25.1579
torch.Size([5000, 250])
Epochs: 396, AvgLoss: 25.1559
torch.Size([5000, 250])
Epochs: 397, AvgLoss: 25.1513
torch.Size([5000, 250])
Epochs: 398, AvgLoss: 25.1418
torch.Size([5000, 250])
Epochs: 399, AvgLoss: 25.1416
torch.Size([5000, 250])
Epochs: 400, AvgLoss: 25.1362
torch.Size([5000, 250])
Epochs: 401, AvgLoss: 25.1299
torch.Size([5000, 250])
Epochs: 402, AvgLoss: 25.1202
torch.Size([5000, 250])
Epochs: 403, AvgLoss: 25.1306
torch.Size([5000, 250])
Epochs: 404, AvgLoss: 25.1130
torch.Size([5000, 250])
Epochs: 405, AvgLoss: 25.1102
torch.Size([5000, 250])
Epochs: 406, AvgLoss: 25.1141
torch.Size([5000, 250])
Epochs: 407, AvgLoss: 25.0945
torch.Size([5000, 250])
Epochs: 408, AvgLoss: 25.1002
torch.Size([5000, 250])
Epochs: 409, AvgLoss: 25.0890
torch.Size([5000, 250])
Epochs: 410, AvgLoss: 25.0904
torch.Size([5000, 250])
Epochs: 411, AvgLoss: 25.0825
torch.Size([5000, 250])
Epochs: 412, AvgLoss: 25.0819
torch.Size([5000, 250])
Epochs: 413, AvgLoss: 25.0693
torch.Size([5000, 250])
Epochs: 414, AvgLoss: 25.0697
torch.Size([5000, 250])
Epochs: 415, AvgLoss: 25.0676
torch.Size([5000, 250])
Epochs: 416, AvgLoss: 25.0606
torch.Size([5000, 250])
Epochs: 417, AvgLoss: 25.0512
torch.Size([5000, 250])
Epochs: 418, AvgLoss: 25.0527
torch.Size([5000, 250])
Epochs: 419, AvgLoss: 25.0441
torch.Size([5000, 250])
Epochs: 420, AvgLoss: 25.0390
torch.Size([5000, 250])
Epochs: 421, AvgLoss: 25.0325
torch.Size([5000, 250])
Epochs: 422, AvgLoss: 25.0293
torch.Size([5000, 250])
Epochs: 423, AvgLoss: 25.0265
torch.Size([5000, 250])
Epochs: 424, AvgLoss: 25.0177
torch.Size([5000, 250])
Epochs: 425, AvgLoss: 25.0137
torch.Size([5000, 250])
Epochs: 426, AvgLoss: 25.0131
torch.Size([5000, 250])
Epochs: 427, AvgLoss: 25.0053
torch.Size([5000, 250])
Epochs: 428, AvgLoss: 25.0022
torch.Size([5000, 250])
Epochs: 429, AvgLoss: 24.9974
torch.Size([5000, 250])
Epochs: 430, AvgLoss: 24.9893
torch.Size([5000, 250])
Epochs: 431, AvgLoss: 24.9794
torch.Size([5000, 250])
Epochs: 432, AvgLoss: 24.9846
torch.Size([5000, 250])
Epochs: 433, AvgLoss: 24.9735
torch.Size([5000, 250])
Epochs: 434, AvgLoss: 24.9676
torch.Size([5000, 250])
Epochs: 435, AvgLoss: 24.9714
torch.Size([5000, 250])
Epochs: 436, AvgLoss: 24.9592
torch.Size([5000, 250])
Epochs: 437, AvgLoss: 24.9593
torch.Size([5000, 250])
Epochs: 438, AvgLoss: 24.9528
torch.Size([5000, 250])
Epochs: 439, AvgLoss: 24.9514
torch.Size([5000, 250])
Epochs: 440, AvgLoss: 24.9422
torch.Size([5000, 250])
Epochs: 441, AvgLoss: 24.9303
torch.Size([5000, 250])
Epochs: 442, AvgLoss: 24.9390
torch.Size([5000, 250])
Epochs: 443, AvgLoss: 24.9209
torch.Size([5000, 250])
Epochs: 444, AvgLoss: 24.9193
torch.Size([5000, 250])
Epochs: 445, AvgLoss: 24.9133
torch.Size([5000, 250])
Epochs: 446, AvgLoss: 24.9088
torch.Size([5000, 250])
Epochs: 447, AvgLoss: 24.9064
torch.Size([5000, 250])
Epochs: 448, AvgLoss: 24.8961
torch.Size([5000, 250])
Epochs: 449, AvgLoss: 24.9002
torch.Size([5000, 250])
Epochs: 450, AvgLoss: 24.8853
torch.Size([5000, 250])
Epochs: 451, AvgLoss: 24.8829
torch.Size([5000, 250])
Epochs: 452, AvgLoss: 24.8856
torch.Size([5000, 250])
Epochs: 453, AvgLoss: 24.8723
torch.Size([5000, 250])
Epochs: 454, AvgLoss: 24.8693
torch.Size([5000, 250])
Epochs: 455, AvgLoss: 24.8603
torch.Size([5000, 250])
Epochs: 456, AvgLoss: 24.8562
torch.Size([5000, 250])
Epochs: 457, AvgLoss: 24.8551
torch.Size([5000, 250])
Epochs: 458, AvgLoss: 24.8545
torch.Size([5000, 250])
Epochs: 459, AvgLoss: 24.8436
torch.Size([5000, 250])
Epochs: 460, AvgLoss: 24.8373
torch.Size([5000, 250])
Epochs: 461, AvgLoss: 24.8306
torch.Size([5000, 250])
Epochs: 462, AvgLoss: 24.8267
torch.Size([5000, 250])
Epochs: 463, AvgLoss: 24.8151
torch.Size([5000, 250])
Epochs: 464, AvgLoss: 24.8137
torch.Size([5000, 250])
Epochs: 465, AvgLoss: 24.8136
torch.Size([5000, 250])
Epochs: 466, AvgLoss: 24.7977
torch.Size([5000, 250])
Epochs: 467, AvgLoss: 24.7970
torch.Size([5000, 250])
Epochs: 468, AvgLoss: 24.7909
torch.Size([5000, 250])
Epochs: 469, AvgLoss: 24.7825
torch.Size([5000, 250])
Epochs: 470, AvgLoss: 24.7824
torch.Size([5000, 250])
Epochs: 471, AvgLoss: 24.7805
torch.Size([5000, 250])
Epochs: 472, AvgLoss: 24.7737
torch.Size([5000, 250])
Epochs: 473, AvgLoss: 24.7637
torch.Size([5000, 250])
Epochs: 474, AvgLoss: 24.7611
torch.Size([5000, 250])
Epochs: 475, AvgLoss: 24.7505
torch.Size([5000, 250])
Epochs: 476, AvgLoss: 24.7530
torch.Size([5000, 250])
Epochs: 477, AvgLoss: 24.7455
torch.Size([5000, 250])
Epochs: 478, AvgLoss: 24.7438
torch.Size([5000, 250])
Epochs: 479, AvgLoss: 24.7244
torch.Size([5000, 250])
Epochs: 480, AvgLoss: 24.7230
torch.Size([5000, 250])
Epochs: 481, AvgLoss: 24.7202
torch.Size([5000, 250])
Epochs: 482, AvgLoss: 24.7088
torch.Size([5000, 250])
Epochs: 483, AvgLoss: 24.7059
torch.Size([5000, 250])
Epochs: 484, AvgLoss: 24.7057
torch.Size([5000, 250])
Epochs: 485, AvgLoss: 24.7038
torch.Size([5000, 250])
Epochs: 486, AvgLoss: 24.7006
torch.Size([5000, 250])
Epochs: 487, AvgLoss: 24.6811
torch.Size([5000, 250])
Epochs: 488, AvgLoss: 24.6850
torch.Size([5000, 250])
Epochs: 489, AvgLoss: 24.6784
torch.Size([5000, 250])
Epochs: 490, AvgLoss: 24.6741
torch.Size([5000, 250])
Epochs: 491, AvgLoss: 24.6729
torch.Size([5000, 250])
Epochs: 492, AvgLoss: 24.6626
torch.Size([5000, 250])
Epochs: 493, AvgLoss: 24.6555
torch.Size([5000, 250])
Epochs: 494, AvgLoss: 24.6408
torch.Size([5000, 250])
Epochs: 495, AvgLoss: 24.6395
torch.Size([5000, 250])
Epochs: 496, AvgLoss: 24.6369
torch.Size([5000, 250])
Epochs: 497, AvgLoss: 24.6309
torch.Size([5000, 250])
Epochs: 498, AvgLoss: 24.6276
torch.Size([5000, 250])
Epochs: 499, AvgLoss: 24.6232
torch.Size([5000, 250])
Epochs: 500, AvgLoss: 24.6019
torch.Size([5000, 250])
Epochs: 501, AvgLoss: 24.6017
torch.Size([5000, 250])
Epochs: 502, AvgLoss: 24.6025
torch.Size([5000, 250])
Epochs: 503, AvgLoss: 24.5891
torch.Size([5000, 250])
Epochs: 504, AvgLoss: 24.5839
torch.Size([5000, 250])
Epochs: 505, AvgLoss: 24.5773
torch.Size([5000, 250])
Epochs: 506, AvgLoss: 24.5758
torch.Size([5000, 250])
Epochs: 507, AvgLoss: 24.5688
torch.Size([5000, 250])
Epochs: 508, AvgLoss: 24.5629
torch.Size([5000, 250])
Epochs: 509, AvgLoss: 24.5574
torch.Size([5000, 250])
Epochs: 510, AvgLoss: 24.5531
torch.Size([5000, 250])
Epochs: 511, AvgLoss: 24.5477
torch.Size([5000, 250])
Epochs: 512, AvgLoss: 24.5454
torch.Size([5000, 250])
Epochs: 513, AvgLoss: 24.5340
torch.Size([5000, 250])
Epochs: 514, AvgLoss: 24.5388
torch.Size([5000, 250])
Epochs: 515, AvgLoss: 24.5248
torch.Size([5000, 250])
Epochs: 516, AvgLoss: 24.5208
torch.Size([5000, 250])
Epochs: 517, AvgLoss: 24.5111
torch.Size([5000, 250])
Epochs: 518, AvgLoss: 24.5006
torch.Size([5000, 250])
Epochs: 519, AvgLoss: 24.5013
torch.Size([5000, 250])
Epochs: 520, AvgLoss: 24.4985
torch.Size([5000, 250])
Epochs: 521, AvgLoss: 24.4822
torch.Size([5000, 250])
Epochs: 522, AvgLoss: 24.4720
torch.Size([5000, 250])
Epochs: 523, AvgLoss: 24.4728
torch.Size([5000, 250])
Epochs: 524, AvgLoss: 24.4692
torch.Size([5000, 250])
Epochs: 525, AvgLoss: 24.4618
torch.Size([5000, 250])
Epochs: 526, AvgLoss: 24.4554
torch.Size([5000, 250])
Epochs: 527, AvgLoss: 24.4611
torch.Size([5000, 250])
Epochs: 528, AvgLoss: 24.4417
torch.Size([5000, 250])
Epochs: 529, AvgLoss: 24.4375
torch.Size([5000, 250])
Epochs: 530, AvgLoss: 24.4202
torch.Size([5000, 250])
Epochs: 531, AvgLoss: 24.4269
torch.Size([5000, 250])
Epochs: 532, AvgLoss: 24.4195
torch.Size([5000, 250])
Epochs: 533, AvgLoss: 24.4101
torch.Size([5000, 250])
Epochs: 534, AvgLoss: 24.4035
torch.Size([5000, 250])
Epochs: 535, AvgLoss: 24.4020
torch.Size([5000, 250])
Epochs: 536, AvgLoss: 24.3942
torch.Size([5000, 250])
Epochs: 537, AvgLoss: 24.3850
torch.Size([5000, 250])
Epochs: 538, AvgLoss: 24.3808
torch.Size([5000, 250])
Epochs: 539, AvgLoss: 24.3776
torch.Size([5000, 250])
Epochs: 540, AvgLoss: 24.3613
torch.Size([5000, 250])
Epochs: 541, AvgLoss: 24.3655
torch.Size([5000, 250])
Epochs: 542, AvgLoss: 24.3518
torch.Size([5000, 250])
Epochs: 543, AvgLoss: 24.3408
torch.Size([5000, 250])
Epochs: 544, AvgLoss: 24.3443
torch.Size([5000, 250])
Epochs: 545, AvgLoss: 24.3317
torch.Size([5000, 250])
Epochs: 546, AvgLoss: 24.3258
torch.Size([5000, 250])
Epochs: 547, AvgLoss: 24.3121
torch.Size([5000, 250])
Epochs: 548, AvgLoss: 24.3133
torch.Size([5000, 250])
Epochs: 549, AvgLoss: 24.3028
torch.Size([5000, 250])
Epochs: 550, AvgLoss: 24.3000
torch.Size([5000, 250])
Epochs: 551, AvgLoss: 24.2976
torch.Size([5000, 250])
Epochs: 552, AvgLoss: 24.2920
torch.Size([5000, 250])
Epochs: 553, AvgLoss: 24.2816
torch.Size([5000, 250])
Epochs: 554, AvgLoss: 24.2652
torch.Size([5000, 250])
Epochs: 555, AvgLoss: 24.2695
torch.Size([5000, 250])
Epochs: 556, AvgLoss: 24.2645
torch.Size([5000, 250])
Epochs: 557, AvgLoss: 24.2573
torch.Size([5000, 250])
Epochs: 558, AvgLoss: 24.2574
torch.Size([5000, 250])
Epochs: 559, AvgLoss: 24.2395
torch.Size([5000, 250])
Epochs: 560, AvgLoss: 24.2341
torch.Size([5000, 250])
Epochs: 561, AvgLoss: 24.2393
torch.Size([5000, 250])
Epochs: 562, AvgLoss: 24.2174
torch.Size([5000, 250])
Epochs: 563, AvgLoss: 24.2238
torch.Size([5000, 250])
Epochs: 564, AvgLoss: 24.2147
torch.Size([5000, 250])
Epochs: 565, AvgLoss: 24.1929
torch.Size([5000, 250])
Epochs: 566, AvgLoss: 24.2069
torch.Size([5000, 250])
Epochs: 567, AvgLoss: 24.1812
torch.Size([5000, 250])
Epochs: 568, AvgLoss: 24.1907
torch.Size([5000, 250])
Epochs: 569, AvgLoss: 24.1784
torch.Size([5000, 250])
Epochs: 570, AvgLoss: 24.1642
torch.Size([5000, 250])
Epochs: 571, AvgLoss: 24.1423
torch.Size([5000, 250])
Epochs: 572, AvgLoss: 24.1470
torch.Size([5000, 250])
Epochs: 573, AvgLoss: 24.1401
torch.Size([5000, 250])
Epochs: 574, AvgLoss: 24.1401
torch.Size([5000, 250])
Epochs: 575, AvgLoss: 24.1357
torch.Size([5000, 250])
Epochs: 576, AvgLoss: 24.1201
torch.Size([5000, 250])
Epochs: 577, AvgLoss: 24.1262
torch.Size([5000, 250])
Epochs: 578, AvgLoss: 24.1132
torch.Size([5000, 250])
Epochs: 579, AvgLoss: 24.0886
torch.Size([5000, 250])
Epochs: 580, AvgLoss: 24.1089
torch.Size([5000, 250])
Epochs: 581, AvgLoss: 24.0857
torch.Size([5000, 250])
Epochs: 582, AvgLoss: 24.0869
torch.Size([5000, 250])
Epochs: 583, AvgLoss: 24.0652
torch.Size([5000, 250])
Epochs: 584, AvgLoss: 24.0560
torch.Size([5000, 250])
Epochs: 585, AvgLoss: 24.0565
torch.Size([5000, 250])
Epochs: 586, AvgLoss: 24.0519
torch.Size([5000, 250])
Epochs: 587, AvgLoss: 24.0314
torch.Size([5000, 250])
Epochs: 588, AvgLoss: 24.0364
torch.Size([5000, 250])
Epochs: 589, AvgLoss: 24.0477
torch.Size([5000, 250])
Epochs: 590, AvgLoss: 24.0248
torch.Size([5000, 250])
Epochs: 591, AvgLoss: 24.0131
torch.Size([5000, 250])
Epochs: 592, AvgLoss: 24.0223
torch.Size([5000, 250])
Epochs: 593, AvgLoss: 24.0076
torch.Size([5000, 250])
Epochs: 594, AvgLoss: 24.0034
torch.Size([5000, 250])
Epochs: 595, AvgLoss: 23.9872
torch.Size([5000, 250])
Epochs: 596, AvgLoss: 23.9796
torch.Size([5000, 250])
Epochs: 597, AvgLoss: 23.9747
torch.Size([5000, 250])
Epochs: 598, AvgLoss: 23.9724
torch.Size([5000, 250])
Epochs: 599, AvgLoss: 23.9636
torch.Size([5000, 250])
Epochs: 600, AvgLoss: 23.9637
torch.Size([5000, 250])
Epochs: 601, AvgLoss: 23.9524
torch.Size([5000, 250])
Epochs: 602, AvgLoss: 23.9374
torch.Size([5000, 250])
Epochs: 603, AvgLoss: 23.9418
torch.Size([5000, 250])
Epochs: 604, AvgLoss: 23.9203
torch.Size([5000, 250])
Epochs: 605, AvgLoss: 23.9084
torch.Size([5000, 250])
Epochs: 606, AvgLoss: 23.9071
torch.Size([5000, 250])
Epochs: 607, AvgLoss: 23.9057
torch.Size([5000, 250])
Epochs: 608, AvgLoss: 23.9004
torch.Size([5000, 250])
Epochs: 609, AvgLoss: 23.8719
torch.Size([5000, 250])
Epochs: 610, AvgLoss: 23.8788
torch.Size([5000, 250])
Epochs: 611, AvgLoss: 23.8736
torch.Size([5000, 250])
Epochs: 612, AvgLoss: 23.8759
torch.Size([5000, 250])
Epochs: 613, AvgLoss: 23.8543
torch.Size([5000, 250])
Epochs: 614, AvgLoss: 23.8550
torch.Size([5000, 250])
Epochs: 615, AvgLoss: 23.8446
torch.Size([5000, 250])
Epochs: 616, AvgLoss: 23.8265
torch.Size([5000, 250])
Epochs: 617, AvgLoss: 23.8326
torch.Size([5000, 250])
Epochs: 618, AvgLoss: 23.8210
torch.Size([5000, 250])
Epochs: 619, AvgLoss: 23.8100
torch.Size([5000, 250])
Epochs: 620, AvgLoss: 23.8024
torch.Size([5000, 250])
Epochs: 621, AvgLoss: 23.8078
torch.Size([5000, 250])
Epochs: 622, AvgLoss: 23.8050
torch.Size([5000, 250])
Epochs: 623, AvgLoss: 23.7694
torch.Size([5000, 250])
Epochs: 624, AvgLoss: 23.7727
torch.Size([5000, 250])
Epochs: 625, AvgLoss: 23.7751
torch.Size([5000, 250])
Epochs: 626, AvgLoss: 23.7538
torch.Size([5000, 250])
Epochs: 627, AvgLoss: 23.7372
torch.Size([5000, 250])
Epochs: 628, AvgLoss: 23.7531
torch.Size([5000, 250])
Epochs: 629, AvgLoss: 23.7383
torch.Size([5000, 250])
Epochs: 630, AvgLoss: 23.7391
torch.Size([5000, 250])
Epochs: 631, AvgLoss: 23.7265
torch.Size([5000, 250])
Epochs: 632, AvgLoss: 23.7244
torch.Size([5000, 250])
Epochs: 633, AvgLoss: 23.7024
torch.Size([5000, 250])
Epochs: 634, AvgLoss: 23.6868
torch.Size([5000, 250])
Epochs: 635, AvgLoss: 23.7113
torch.Size([5000, 250])
Epochs: 636, AvgLoss: 23.6722
torch.Size([5000, 250])
Epochs: 637, AvgLoss: 23.6669
torch.Size([5000, 250])
Epochs: 638, AvgLoss: 23.6722
torch.Size([5000, 250])
Epochs: 639, AvgLoss: 23.6661
torch.Size([5000, 250])
Epochs: 640, AvgLoss: 23.6434
torch.Size([5000, 250])
Epochs: 641, AvgLoss: 23.6478
torch.Size([5000, 250])
Epochs: 642, AvgLoss: 23.6352
torch.Size([5000, 250])
Epochs: 643, AvgLoss: 23.6310
torch.Size([5000, 250])
Epochs: 644, AvgLoss: 23.6303
torch.Size([5000, 250])
Epochs: 645, AvgLoss: 23.6195
torch.Size([5000, 250])
Epochs: 646, AvgLoss: 23.6006
torch.Size([5000, 250])
Epochs: 647, AvgLoss: 23.5900
torch.Size([5000, 250])
Epochs: 648, AvgLoss: 23.5925
torch.Size([5000, 250])
Epochs: 649, AvgLoss: 23.5784
torch.Size([5000, 250])
Epochs: 650, AvgLoss: 23.5941
torch.Size([5000, 250])
Epochs: 651, AvgLoss: 23.5816
torch.Size([5000, 250])
Epochs: 652, AvgLoss: 23.5669
torch.Size([5000, 250])
Epochs: 653, AvgLoss: 23.5532
torch.Size([5000, 250])
Epochs: 654, AvgLoss: 23.5435
torch.Size([5000, 250])
Epochs: 655, AvgLoss: 23.5319
torch.Size([5000, 250])
Epochs: 656, AvgLoss: 23.5198
torch.Size([5000, 250])
Epochs: 657, AvgLoss: 23.5192
torch.Size([5000, 250])
Epochs: 658, AvgLoss: 23.5086
torch.Size([5000, 250])
Epochs: 659, AvgLoss: 23.5046
torch.Size([5000, 250])
Epochs: 660, AvgLoss: 23.5095
torch.Size([5000, 250])
Epochs: 661, AvgLoss: 23.4836
torch.Size([5000, 250])
Epochs: 662, AvgLoss: 23.4729
torch.Size([5000, 250])
Epochs: 663, AvgLoss: 23.4719
torch.Size([5000, 250])
Epochs: 664, AvgLoss: 23.4570
torch.Size([5000, 250])
Epochs: 665, AvgLoss: 23.4410
torch.Size([5000, 250])
Epochs: 666, AvgLoss: 23.4332
torch.Size([5000, 250])
Epochs: 667, AvgLoss: 23.4589
torch.Size([5000, 250])
Epochs: 668, AvgLoss: 23.4329
torch.Size([5000, 250])
Epochs: 669, AvgLoss: 23.4148
torch.Size([5000, 250])
Epochs: 670, AvgLoss: 23.4092
torch.Size([5000, 250])
Epochs: 671, AvgLoss: 23.4092
torch.Size([5000, 250])
Epochs: 672, AvgLoss: 23.3745
torch.Size([5000, 250])
Epochs: 673, AvgLoss: 23.3893
torch.Size([5000, 250])
Epochs: 674, AvgLoss: 23.3764
torch.Size([5000, 250])
Epochs: 675, AvgLoss: 23.3439
torch.Size([5000, 250])
Epochs: 676, AvgLoss: 23.3627
torch.Size([5000, 250])
Epochs: 677, AvgLoss: 23.3620
torch.Size([5000, 250])
Epochs: 678, AvgLoss: 23.3431
torch.Size([5000, 250])
Epochs: 679, AvgLoss: 23.3466
torch.Size([5000, 250])
Epochs: 680, AvgLoss: 23.3255
torch.Size([5000, 250])
Epochs: 681, AvgLoss: 23.3247
torch.Size([5000, 250])
Epochs: 682, AvgLoss: 23.3020
torch.Size([5000, 250])
Epochs: 683, AvgLoss: 23.2896
torch.Size([5000, 250])
Epochs: 684, AvgLoss: 23.2723
torch.Size([5000, 250])
Epochs: 685, AvgLoss: 23.2662
torch.Size([5000, 250])
Epochs: 686, AvgLoss: 23.2729
torch.Size([5000, 250])
Epochs: 687, AvgLoss: 23.2632
torch.Size([5000, 250])
Epochs: 688, AvgLoss: 23.2555
torch.Size([5000, 250])
Epochs: 689, AvgLoss: 23.2407
torch.Size([5000, 250])
Epochs: 690, AvgLoss: 23.2541
torch.Size([5000, 250])
Epochs: 691, AvgLoss: 23.2349
torch.Size([5000, 250])
Epochs: 692, AvgLoss: 23.2112
torch.Size([5000, 250])
Epochs: 693, AvgLoss: 23.2166
torch.Size([5000, 250])
Epochs: 694, AvgLoss: 23.1922
torch.Size([5000, 250])
Epochs: 695, AvgLoss: 23.2059
torch.Size([5000, 250])
Epochs: 696, AvgLoss: 23.1758
torch.Size([5000, 250])
Epochs: 697, AvgLoss: 23.1614
torch.Size([5000, 250])
Epochs: 698, AvgLoss: 23.1553
torch.Size([5000, 250])
Epochs: 699, AvgLoss: 23.1493
torch.Size([5000, 250])
Epochs: 700, AvgLoss: 23.1503
torch.Size([5000, 250])
Epochs: 701, AvgLoss: 23.1165
torch.Size([5000, 250])
Epochs: 702, AvgLoss: 23.1254
torch.Size([5000, 250])
Epochs: 703, AvgLoss: 23.1102
torch.Size([5000, 250])
Epochs: 704, AvgLoss: 23.1170
torch.Size([5000, 250])
Epochs: 705, AvgLoss: 23.0691
torch.Size([5000, 250])
Epochs: 706, AvgLoss: 23.0879
torch.Size([5000, 250])
Epochs: 707, AvgLoss: 23.0867
torch.Size([5000, 250])
Epochs: 708, AvgLoss: 23.0831
torch.Size([5000, 250])
Epochs: 709, AvgLoss: 23.0783
torch.Size([5000, 250])
Epochs: 710, AvgLoss: 23.0539
torch.Size([5000, 250])
Epochs: 711, AvgLoss: 23.0483
torch.Size([5000, 250])
Epochs: 712, AvgLoss: 23.0375
torch.Size([5000, 250])
Epochs: 713, AvgLoss: 23.0287
torch.Size([5000, 250])
Epochs: 714, AvgLoss: 23.0289
torch.Size([5000, 250])
Epochs: 715, AvgLoss: 22.9934
torch.Size([5000, 250])
Epochs: 716, AvgLoss: 23.0009
torch.Size([5000, 250])
Epochs: 717, AvgLoss: 22.9687
torch.Size([5000, 250])
Epochs: 718, AvgLoss: 22.9767
torch.Size([5000, 250])
Epochs: 719, AvgLoss: 22.9731
torch.Size([5000, 250])
Epochs: 720, AvgLoss: 22.9586
torch.Size([5000, 250])
Epochs: 721, AvgLoss: 22.9183
torch.Size([5000, 250])
Epochs: 722, AvgLoss: 22.9276
torch.Size([5000, 250])
Epochs: 723, AvgLoss: 22.9083
torch.Size([5000, 250])
Epochs: 724, AvgLoss: 22.9161
torch.Size([5000, 250])
Epochs: 725, AvgLoss: 22.9006
torch.Size([5000, 250])
Epochs: 726, AvgLoss: 22.8928
torch.Size([5000, 250])
Epochs: 727, AvgLoss: 22.8803
torch.Size([5000, 250])
Epochs: 728, AvgLoss: 22.8831
torch.Size([5000, 250])
Epochs: 729, AvgLoss: 22.8505
torch.Size([5000, 250])
Epochs: 730, AvgLoss: 22.8589
torch.Size([5000, 250])
Epochs: 731, AvgLoss: 22.8370
torch.Size([5000, 250])
Epochs: 732, AvgLoss: 22.8094
torch.Size([5000, 250])
Epochs: 733, AvgLoss: 22.8139
torch.Size([5000, 250])
Epochs: 734, AvgLoss: 22.7861
torch.Size([5000, 250])
Epochs: 735, AvgLoss: 22.8073
torch.Size([5000, 250])
Epochs: 736, AvgLoss: 22.7752
torch.Size([5000, 250])
Epochs: 737, AvgLoss: 22.7783
torch.Size([5000, 250])
Epochs: 738, AvgLoss: 22.7496
torch.Size([5000, 250])
Epochs: 739, AvgLoss: 22.7556
torch.Size([5000, 250])
Epochs: 740, AvgLoss: 22.7622
torch.Size([5000, 250])
Epochs: 741, AvgLoss: 22.7415
torch.Size([5000, 250])
Epochs: 742, AvgLoss: 22.7285
torch.Size([5000, 250])
Epochs: 743, AvgLoss: 22.7111
torch.Size([5000, 250])
Epochs: 744, AvgLoss: 22.6960
torch.Size([5000, 250])
Epochs: 745, AvgLoss: 22.6842
torch.Size([5000, 250])
Epochs: 746, AvgLoss: 22.6980
torch.Size([5000, 250])
Epochs: 747, AvgLoss: 22.6452
torch.Size([5000, 250])
Epochs: 748, AvgLoss: 22.6690
torch.Size([5000, 250])
Epochs: 749, AvgLoss: 22.6628
torch.Size([5000, 250])
Epochs: 750, AvgLoss: 22.6447
torch.Size([5000, 250])
Epochs: 751, AvgLoss: 22.6361
torch.Size([5000, 250])
Epochs: 752, AvgLoss: 22.6162
torch.Size([5000, 250])
Epochs: 753, AvgLoss: 22.6163
torch.Size([5000, 250])
Epochs: 754, AvgLoss: 22.5698
torch.Size([5000, 250])
Epochs: 755, AvgLoss: 22.5983
torch.Size([5000, 250])
Epochs: 756, AvgLoss: 22.5614
torch.Size([5000, 250])
Epochs: 757, AvgLoss: 22.5714
torch.Size([5000, 250])
Epochs: 758, AvgLoss: 22.5327
torch.Size([5000, 250])
Epochs: 759, AvgLoss: 22.5220
torch.Size([5000, 250])
Epochs: 760, AvgLoss: 22.5278
torch.Size([5000, 250])
Epochs: 761, AvgLoss: 22.5315
torch.Size([5000, 250])
Epochs: 762, AvgLoss: 22.5043
torch.Size([5000, 250])
Epochs: 763, AvgLoss: 22.4738
torch.Size([5000, 250])
Epochs: 764, AvgLoss: 22.4680
torch.Size([5000, 250])
Epochs: 765, AvgLoss: 22.4767
torch.Size([5000, 250])
Epochs: 766, AvgLoss: 22.4429
torch.Size([5000, 250])
Epochs: 767, AvgLoss: 22.4748
torch.Size([5000, 250])
Epochs: 768, AvgLoss: 22.4432
torch.Size([5000, 250])
Epochs: 769, AvgLoss: 22.4478
torch.Size([5000, 250])
Epochs: 770, AvgLoss: 22.4095
torch.Size([5000, 250])
Epochs: 771, AvgLoss: 22.3931
torch.Size([5000, 250])
Epochs: 772, AvgLoss: 22.3726
torch.Size([5000, 250])
Epochs: 773, AvgLoss: 22.3675
torch.Size([5000, 250])
Epochs: 774, AvgLoss: 22.3801
torch.Size([5000, 250])
Epochs: 775, AvgLoss: 22.3626
torch.Size([5000, 250])
Epochs: 776, AvgLoss: 22.3453
torch.Size([5000, 250])
Epochs: 777, AvgLoss: 22.3109
torch.Size([5000, 250])
Epochs: 778, AvgLoss: 22.3071
torch.Size([5000, 250])
Epochs: 779, AvgLoss: 22.3011
torch.Size([5000, 250])
Epochs: 780, AvgLoss: 22.2827
torch.Size([5000, 250])
Epochs: 781, AvgLoss: 22.2478
torch.Size([5000, 250])
Epochs: 782, AvgLoss: 22.2524
torch.Size([5000, 250])
Epochs: 783, AvgLoss: 22.2546
torch.Size([5000, 250])
Epochs: 784, AvgLoss: 22.2323
torch.Size([5000, 250])
Epochs: 785, AvgLoss: 22.2223
torch.Size([5000, 250])
Epochs: 786, AvgLoss: 22.2040
torch.Size([5000, 250])
Epochs: 787, AvgLoss: 22.1933
torch.Size([5000, 250])
Epochs: 788, AvgLoss: 22.1638
torch.Size([5000, 250])
Epochs: 789, AvgLoss: 22.1540
torch.Size([5000, 250])
Epochs: 790, AvgLoss: 22.1449
torch.Size([5000, 250])
Epochs: 791, AvgLoss: 22.1547
torch.Size([5000, 250])
Epochs: 792, AvgLoss: 22.0999
torch.Size([5000, 250])
Epochs: 793, AvgLoss: 22.1011
torch.Size([5000, 250])
Epochs: 794, AvgLoss: 22.1036
torch.Size([5000, 250])
Epochs: 795, AvgLoss: 22.0848
torch.Size([5000, 250])
Epochs: 796, AvgLoss: 22.0891
torch.Size([5000, 250])
Epochs: 797, AvgLoss: 22.0735
torch.Size([5000, 250])
Epochs: 798, AvgLoss: 22.0546
torch.Size([5000, 250])
Epochs: 799, AvgLoss: 22.0217
torch.Size([5000, 250])
Epochs: 800, AvgLoss: 22.0262
torch.Size([5000, 250])
Epochs: 801, AvgLoss: 22.0193
torch.Size([5000, 250])
Epochs: 802, AvgLoss: 21.9902
torch.Size([5000, 250])
Epochs: 803, AvgLoss: 21.9808
torch.Size([5000, 250])
Epochs: 804, AvgLoss: 22.0002
torch.Size([5000, 250])
Epochs: 805, AvgLoss: 21.9659
torch.Size([5000, 250])
Epochs: 806, AvgLoss: 21.9543
torch.Size([5000, 250])
Epochs: 807, AvgLoss: 21.9294
torch.Size([5000, 250])
Epochs: 808, AvgLoss: 21.9236
torch.Size([5000, 250])
Epochs: 809, AvgLoss: 21.8994
torch.Size([5000, 250])
Epochs: 810, AvgLoss: 21.8923
torch.Size([5000, 250])
Epochs: 811, AvgLoss: 21.8756
torch.Size([5000, 250])
Epochs: 812, AvgLoss: 21.8661
torch.Size([5000, 250])
Epochs: 813, AvgLoss: 21.8359
torch.Size([5000, 250])
Epochs: 814, AvgLoss: 21.8332
torch.Size([5000, 250])
Epochs: 815, AvgLoss: 21.8072
torch.Size([5000, 250])
Epochs: 816, AvgLoss: 21.8171
torch.Size([5000, 250])
Epochs: 817, AvgLoss: 21.7861
torch.Size([5000, 250])
Epochs: 818, AvgLoss: 21.7559
torch.Size([5000, 250])
Epochs: 819, AvgLoss: 21.7346
torch.Size([5000, 250])
Epochs: 820, AvgLoss: 21.7291
torch.Size([5000, 250])
Epochs: 821, AvgLoss: 21.7294
torch.Size([5000, 250])
Epochs: 822, AvgLoss: 21.7174
torch.Size([5000, 250])
Epochs: 823, AvgLoss: 21.7038
torch.Size([5000, 250])
Epochs: 824, AvgLoss: 21.7046
torch.Size([5000, 250])
Epochs: 825, AvgLoss: 21.6624
torch.Size([5000, 250])
Epochs: 826, AvgLoss: 21.6265
torch.Size([5000, 250])
Epochs: 827, AvgLoss: 21.6393
torch.Size([5000, 250])
Epochs: 828, AvgLoss: 21.6341
torch.Size([5000, 250])
Epochs: 829, AvgLoss: 21.6089
torch.Size([5000, 250])
Epochs: 830, AvgLoss: 21.5975
torch.Size([5000, 250])
Epochs: 831, AvgLoss: 21.5916
torch.Size([5000, 250])
Epochs: 832, AvgLoss: 21.5227
torch.Size([5000, 250])
Epochs: 833, AvgLoss: 21.5691
torch.Size([5000, 250])
Epochs: 834, AvgLoss: 21.5369
torch.Size([5000, 250])
Epochs: 835, AvgLoss: 21.5178
torch.Size([5000, 250])
Epochs: 836, AvgLoss: 21.5055
torch.Size([5000, 250])
Epochs: 837, AvgLoss: 21.4951
torch.Size([5000, 250])
Epochs: 838, AvgLoss: 21.4936
torch.Size([5000, 250])
Epochs: 839, AvgLoss: 21.4614
torch.Size([5000, 250])
Epochs: 840, AvgLoss: 21.4311
torch.Size([5000, 250])
Epochs: 841, AvgLoss: 21.4203
torch.Size([5000, 250])
Epochs: 842, AvgLoss: 21.4069
torch.Size([5000, 250])
Epochs: 843, AvgLoss: 21.4195
torch.Size([5000, 250])
Epochs: 844, AvgLoss: 21.3591
torch.Size([5000, 250])
Epochs: 845, AvgLoss: 21.3779
torch.Size([5000, 250])
Epochs: 846, AvgLoss: 21.3337
torch.Size([5000, 250])
Epochs: 847, AvgLoss: 21.3291
torch.Size([5000, 250])
Epochs: 848, AvgLoss: 21.3294
torch.Size([5000, 250])
Epochs: 849, AvgLoss: 21.3125
torch.Size([5000, 250])
Epochs: 850, AvgLoss: 21.2665
torch.Size([5000, 250])
Epochs: 851, AvgLoss: 21.2630
torch.Size([5000, 250])
Epochs: 852, AvgLoss: 21.2447
torch.Size([5000, 250])
Epochs: 853, AvgLoss: 21.2296
torch.Size([5000, 250])
Epochs: 854, AvgLoss: 21.2325
torch.Size([5000, 250])
Epochs: 855, AvgLoss: 21.1974
torch.Size([5000, 250])
Epochs: 856, AvgLoss: 21.2131
torch.Size([5000, 250])
Epochs: 857, AvgLoss: 21.1850
torch.Size([5000, 250])
Epochs: 858, AvgLoss: 21.1414
torch.Size([5000, 250])
Epochs: 859, AvgLoss: 21.1310
torch.Size([5000, 250])
Epochs: 860, AvgLoss: 21.1455
torch.Size([5000, 250])
Epochs: 861, AvgLoss: 21.1285
torch.Size([5000, 250])
Epochs: 862, AvgLoss: 21.0641
torch.Size([5000, 250])
Epochs: 863, AvgLoss: 21.0851
torch.Size([5000, 250])
Epochs: 864, AvgLoss: 21.0441
torch.Size([5000, 250])
Epochs: 865, AvgLoss: 21.0718
torch.Size([5000, 250])
Epochs: 866, AvgLoss: 20.9955
torch.Size([5000, 250])
Epochs: 867, AvgLoss: 21.0051
torch.Size([5000, 250])
Epochs: 868, AvgLoss: 20.9987
torch.Size([5000, 250])
Epochs: 869, AvgLoss: 20.9973
torch.Size([5000, 250])
Epochs: 870, AvgLoss: 20.9339
torch.Size([5000, 250])
Epochs: 871, AvgLoss: 20.9480
torch.Size([5000, 250])
Epochs: 872, AvgLoss: 20.9132
torch.Size([5000, 250])
Epochs: 873, AvgLoss: 20.9232
torch.Size([5000, 250])
Epochs: 874, AvgLoss: 20.8803
torch.Size([5000, 250])
Epochs: 875, AvgLoss: 20.8930
torch.Size([5000, 250])
Epochs: 876, AvgLoss: 20.8264
torch.Size([5000, 250])
Epochs: 877, AvgLoss: 20.8318
torch.Size([5000, 250])
Epochs: 878, AvgLoss: 20.8244
torch.Size([5000, 250])
Epochs: 879, AvgLoss: 20.8112
torch.Size([5000, 250])
Epochs: 880, AvgLoss: 20.7795
torch.Size([5000, 250])
Epochs: 881, AvgLoss: 20.7650
torch.Size([5000, 250])
Epochs: 882, AvgLoss: 20.7371
torch.Size([5000, 250])
Epochs: 883, AvgLoss: 20.7336
torch.Size([5000, 250])
Epochs: 884, AvgLoss: 20.7016
torch.Size([5000, 250])
Epochs: 885, AvgLoss: 20.6913
torch.Size([5000, 250])
Epochs: 886, AvgLoss: 20.6725
torch.Size([5000, 250])
Epochs: 887, AvgLoss: 20.6758
torch.Size([5000, 250])
Epochs: 888, AvgLoss: 20.6314
torch.Size([5000, 250])
Epochs: 889, AvgLoss: 20.6257
torch.Size([5000, 250])
Epochs: 890, AvgLoss: 20.6409
torch.Size([5000, 250])
Epochs: 891, AvgLoss: 20.5777
torch.Size([5000, 250])
Epochs: 892, AvgLoss: 20.5496
torch.Size([5000, 250])
Epochs: 893, AvgLoss: 20.5354
torch.Size([5000, 250])
Epochs: 894, AvgLoss: 20.5133
torch.Size([5000, 250])
Epochs: 895, AvgLoss: 20.4991
torch.Size([5000, 250])
Epochs: 896, AvgLoss: 20.4790
torch.Size([5000, 250])
Epochs: 897, AvgLoss: 20.4761
torch.Size([5000, 250])
Epochs: 898, AvgLoss: 20.4795
torch.Size([5000, 250])
Epochs: 899, AvgLoss: 20.4632
torch.Size([5000, 250])
Epochs: 900, AvgLoss: 20.4245
torch.Size([5000, 250])
Epochs: 901, AvgLoss: 20.4243
torch.Size([5000, 250])
Epochs: 902, AvgLoss: 20.4044
torch.Size([5000, 250])
Epochs: 903, AvgLoss: 20.3888
torch.Size([5000, 250])
Epochs: 904, AvgLoss: 20.3631
torch.Size([5000, 250])
Epochs: 905, AvgLoss: 20.3497
torch.Size([5000, 250])
Epochs: 906, AvgLoss: 20.3312
torch.Size([5000, 250])
Epochs: 907, AvgLoss: 20.3072
torch.Size([5000, 250])
Epochs: 908, AvgLoss: 20.2628
torch.Size([5000, 250])
Epochs: 909, AvgLoss: 20.2564
torch.Size([5000, 250])
Epochs: 910, AvgLoss: 20.2321
torch.Size([5000, 250])
Epochs: 911, AvgLoss: 20.2225
torch.Size([5000, 250])
Epochs: 912, AvgLoss: 20.1979
torch.Size([5000, 250])
Epochs: 913, AvgLoss: 20.2070
torch.Size([5000, 250])
Epochs: 914, AvgLoss: 20.2052
torch.Size([5000, 250])
Epochs: 915, AvgLoss: 20.1470
torch.Size([5000, 250])
Epochs: 916, AvgLoss: 20.1161
torch.Size([5000, 250])
Epochs: 917, AvgLoss: 20.1193
torch.Size([5000, 250])
Epochs: 918, AvgLoss: 20.1376
torch.Size([5000, 250])
Epochs: 919, AvgLoss: 20.0842
torch.Size([5000, 250])
Epochs: 920, AvgLoss: 20.0867
torch.Size([5000, 250])
Epochs: 921, AvgLoss: 20.0516
torch.Size([5000, 250])
Epochs: 922, AvgLoss: 20.0610
torch.Size([5000, 250])
Epochs: 923, AvgLoss: 20.0225
torch.Size([5000, 250])
Epochs: 924, AvgLoss: 20.0037
torch.Size([5000, 250])
Epochs: 925, AvgLoss: 19.9951
torch.Size([5000, 250])
Epochs: 926, AvgLoss: 19.9811
torch.Size([5000, 250])
Epochs: 927, AvgLoss: 19.9551
torch.Size([5000, 250])
Epochs: 928, AvgLoss: 19.9428
torch.Size([5000, 250])
Epochs: 929, AvgLoss: 19.9018
torch.Size([5000, 250])
Epochs: 930, AvgLoss: 19.8766
torch.Size([5000, 250])
Epochs: 931, AvgLoss: 19.8642
torch.Size([5000, 250])
Epochs: 932, AvgLoss: 19.8562
torch.Size([5000, 250])
Epochs: 933, AvgLoss: 19.8842
torch.Size([5000, 250])
Epochs: 934, AvgLoss: 19.8266
torch.Size([5000, 250])
Epochs: 935, AvgLoss: 19.7685
torch.Size([5000, 250])
Epochs: 936, AvgLoss: 19.7999
torch.Size([5000, 250])
Epochs: 937, AvgLoss: 19.7713
torch.Size([5000, 250])
Epochs: 938, AvgLoss: 19.7735
torch.Size([5000, 250])
Epochs: 939, AvgLoss: 19.7317
torch.Size([5000, 250])
Epochs: 940, AvgLoss: 19.7207
torch.Size([5000, 250])
Epochs: 941, AvgLoss: 19.7006
torch.Size([5000, 250])
Epochs: 942, AvgLoss: 19.6856
torch.Size([5000, 250])
Epochs: 943, AvgLoss: 19.6652
torch.Size([5000, 250])
Epochs: 944, AvgLoss: 19.6715
torch.Size([5000, 250])
Epochs: 945, AvgLoss: 19.6223
torch.Size([5000, 250])
Epochs: 946, AvgLoss: 19.6029
torch.Size([5000, 250])
Epochs: 947, AvgLoss: 19.6240
torch.Size([5000, 250])
Epochs: 948, AvgLoss: 19.5864
torch.Size([5000, 250])
Epochs: 949, AvgLoss: 19.5674
torch.Size([5000, 250])
Epochs: 950, AvgLoss: 19.5500
torch.Size([5000, 250])
Epochs: 951, AvgLoss: 19.5469
torch.Size([5000, 250])
Epochs: 952, AvgLoss: 19.5099
torch.Size([5000, 250])
Epochs: 953, AvgLoss: 19.4537
torch.Size([5000, 250])
Epochs: 954, AvgLoss: 19.4776
torch.Size([5000, 250])
Epochs: 955, AvgLoss: 19.4981
torch.Size([5000, 250])
Epochs: 956, AvgLoss: 19.4407
torch.Size([5000, 250])
Epochs: 957, AvgLoss: 19.4005
torch.Size([5000, 250])
Epochs: 958, AvgLoss: 19.4041
torch.Size([5000, 250])
Epochs: 959, AvgLoss: 19.3884
torch.Size([5000, 250])
Epochs: 960, AvgLoss: 19.4116
torch.Size([5000, 250])
Epochs: 961, AvgLoss: 19.3520
torch.Size([5000, 250])
Epochs: 962, AvgLoss: 19.3097
torch.Size([5000, 250])
Epochs: 963, AvgLoss: 19.3346
torch.Size([5000, 250])
Epochs: 964, AvgLoss: 19.3062
torch.Size([5000, 250])
Epochs: 965, AvgLoss: 19.2979
torch.Size([5000, 250])
Epochs: 966, AvgLoss: 19.3022
torch.Size([5000, 250])
Epochs: 967, AvgLoss: 19.2442
torch.Size([5000, 250])
Epochs: 968, AvgLoss: 19.2343
torch.Size([5000, 250])
Epochs: 969, AvgLoss: 19.2358
torch.Size([5000, 250])
Epochs: 970, AvgLoss: 19.1965
torch.Size([5000, 250])
Epochs: 971, AvgLoss: 19.1579
torch.Size([5000, 250])
Epochs: 972, AvgLoss: 19.1998
torch.Size([5000, 250])
Epochs: 973, AvgLoss: 19.1595
torch.Size([5000, 250])
Epochs: 974, AvgLoss: 19.1166
torch.Size([5000, 250])
Epochs: 975, AvgLoss: 19.1527
torch.Size([5000, 250])
Epochs: 976, AvgLoss: 19.1138
torch.Size([5000, 250])
Epochs: 977, AvgLoss: 19.1293
torch.Size([5000, 250])
Epochs: 978, AvgLoss: 19.0997
torch.Size([5000, 250])
Epochs: 979, AvgLoss: 19.0403
torch.Size([5000, 250])
Epochs: 980, AvgLoss: 19.0425
torch.Size([5000, 250])
Epochs: 981, AvgLoss: 19.0246
torch.Size([5000, 250])
Epochs: 982, AvgLoss: 19.0042
torch.Size([5000, 250])
Epochs: 983, AvgLoss: 18.9919
torch.Size([5000, 250])
Epochs: 984, AvgLoss: 19.0073
torch.Size([5000, 250])
Epochs: 985, AvgLoss: 18.9878
torch.Size([5000, 250])
Epochs: 986, AvgLoss: 18.9724
torch.Size([5000, 250])
Epochs: 987, AvgLoss: 18.8995
torch.Size([5000, 250])
Epochs: 988, AvgLoss: 18.9445
torch.Size([5000, 250])
Epochs: 989, AvgLoss: 18.9203
torch.Size([5000, 250])
Epochs: 990, AvgLoss: 18.8776
torch.Size([5000, 250])
Epochs: 991, AvgLoss: 18.8922
torch.Size([5000, 250])
Epochs: 992, AvgLoss: 18.8524
torch.Size([5000, 250])
Epochs: 993, AvgLoss: 18.8758
torch.Size([5000, 250])
Epochs: 994, AvgLoss: 18.8395
torch.Size([5000, 250])
Epochs: 995, AvgLoss: 18.8307
torch.Size([5000, 250])
Epochs: 996, AvgLoss: 18.8254
torch.Size([5000, 250])
Epochs: 997, AvgLoss: 18.8196
torch.Size([5000, 250])
Epochs: 998, AvgLoss: 18.7301
torch.Size([5000, 250])
Epochs: 999, AvgLoss: 18.7485
torch.Size([5000, 250])
Epochs: 1000, AvgLoss: 18.7420
Training for VAE has been done.

Part 3: Showing result

In this phase, we visualize the outcomes of our analysis by displaying both the location trajectory and frequency information for each identified gene cluster. These visualizations help in interpreting the complex dynamics captured by the model and provide insights into the temporal progression and rhythmicity of gene expression within each cluster.

[4]:
show_result_spatial(adata, start, end)
../_images/tutorial_Spatial_LIBD_human_dorsolateral_prefrontal_cortex_9_0.png
../_images/tutorial_Spatial_LIBD_human_dorsolateral_prefrontal_cortex_9_1.png
../_images/tutorial_Spatial_LIBD_human_dorsolateral_prefrontal_cortex_9_2.png

Only the first eligible cluster’s plots are ploted out. Other clusters’s plots are saved to pdf files.

Part 4: Differential frequency peaks

In this step, we perform a comparative analysis to identify peaks that show significant differences in frequency between directions. By statistically evaluating these differences, we can uncover frequency-specific regulatory elements or patterns that are condition-dependent. This analysis provides deeper biological insights into how rhythmicity may vary across different genes in Spatial data, thereby highlighting potential functional elements involved in dynamic processes.

[5]:
adata2 = adata.copy()
sc.pp.normalize_total(adata2)
sc.pp.log1p(adata2)
sc.pp.highly_variable_genes(adata2, flavor="seurat", n_top_genes=5000)

adata = adata[:, adata2.var.highly_variable]

# Extract spatial coordinates
spatial_coords = adata.obsm["spatial"]

# Locate the right boundary of WM cells
wm_indices = adata.obs['layer'] == 'WM'
wm_coords = spatial_coords[wm_indices]
wm_right_boundary = wm_coords[:, 0].max()  # Maximum x-coordinate for WM

# Define Direction 2: Bottom to WM right boundary
margin = 0.1  # 10% margin
x_start = spatial_coords[:, 0].min() + margin * (spatial_coords[:, 0].max() - spatial_coords[:, 0].min())
y_min, y_max = spatial_coords[:, 1].min(), spatial_coords[:, 1].max()

start1 = np.array([x_start, y_min + margin * (y_max - y_min)])  # Bottom with margin
end1 = np.array([wm_right_boundary, y_max - margin * (y_max - y_min)])  # WM right boundary with margin


# Define a single line from bottom-left to top-right
margin = 0.1  # 10% margin
x_min, x_max = spatial_coords[:, 0].min(), spatial_coords[:, 0].max()
y_min, y_max = spatial_coords[:, 1].min(), spatial_coords[:, 1].max()

# Add margin to the coordinates
# Add margin to the coordinates for Direction 3
y_start = y_min + margin * (y_max - y_min)  # Y coordinate with 10% margin
start2 = np.array([x_min + margin * (x_max - x_min), y_start])  # Left with margin
end2 = np.array([x_max - margin * (x_max - x_min), y_start])  # Right with margin

differential_frequency_spatial(adata, start1, end1, start2, end2, 'direction1', 'direction2')
../_images/tutorial_Spatial_LIBD_human_dorsolateral_prefrontal_cortex_12_0.png