33from collections .abc import Callable , Iterable , Mapping , Sequence
44from typing import TYPE_CHECKING , Any
55
6+ import rtdl_revisiting_models
67import torch
78from monai .losses .dice import DiceFocalLoss
89from torch import nn
@@ -70,7 +71,7 @@ def run_ml(self):
7071 # # ndim = 132,611
7172 # # 22s. ~ 7m. 20s.
7273 # # 9+3=12 ~ 4m. 20s.
73- # bench = tasks.WavePINN(tasks.WavePINN.FLS(2, 1, hidden_size=256, n_hidden=3)).to(CUDA_IF_AVAILABLE)
74+ # bench = tasks.WavePINN(tasks.WavePINN.FLS(2, 1, hidden_size=256, n_hidden=3), n_pde=512, n_ic=256, n_bc=256 ).to(CUDA_IF_AVAILABLE)
7475 # self.run_bench(bench, 'ML - Wave PDE - FLS', passes=10_000, sec=600, metrics='train loss', vid_scale=4)
7576
7677 def run_mls (self ):
@@ -81,7 +82,7 @@ def run_mls(self):
8182 # 5s. ~ 1m. 40s.
8283 bench = tasks .Collinear (models .MLP ([32 , 10 ]), batch_size = 1 ).to (CUDA_IF_AVAILABLE )
8384 bench_name = 'MLS - Ill-conditioned logistic regression BS-1'
84- self .run_bench (bench , bench_name , passes = 10_000 , sec = 600 , test_every = 50 , metrics = 'test loss' , vid_scale = None )
85+ self .run_bench (bench , bench_name , passes = 20_000 , sec = 1_000 , test_every = 50 , metrics = 'test loss' , vid_scale = None )
8586
8687 # --------------------------- Matrix factorization --------------------------- #
8788 # ...
@@ -90,32 +91,46 @@ def run_mls(self):
9091 path = "MovieLens-100k/ml-100k"
9192 if not os .path .exists (path ):
9293 path = load_movie_lens ()
93- bench = tasks .MFMovieLens (path , batch_size = 32 , device = 'cuda' ).cuda ( )
94+ bench = tasks .MFMovieLens (path , batch_size = 32 , device = 'cuda' ).to ( CUDA_IF_AVAILABLE )
9495 bench_name = 'MLS - MovieLens BS-32 - Matrix Factorization'
95- self .run_bench (bench , bench_name , passes = 10_000 , sec = 600 , test_every = 50 , metrics = 'test loss' , vid_scale = None )
96+ self .run_bench (bench , bench_name , passes = 20_000 , sec = 1_000 , test_every = 50 , metrics = 'test loss' , vid_scale = None )
9697
9798 # ------------------------------ MLP (Colinear) ------------------------------ #
9899 model = models .MLP ([32 , 64 , 96 , 128 , 256 , 10 ])
99- bench = tasks .Collinear (model , batch_size = 64 , test_batch_size = 4096 ).cuda ( )
100+ bench = tasks .Collinear (model , batch_size = 64 , test_batch_size = 4096 ).to ( CUDA_IF_AVAILABLE )
100101 bench_name = 'MLS - Colinear BS-64 - MLP(32-64-96-128-256-10)'
101- self .run_bench (bench , bench_name , passes = 10_000 , sec = 600 , test_every = 100 , metrics = 'test loss' , vid_scale = None )
102+ self .run_bench (bench , bench_name , passes = 20_000 , sec = 1_000 , test_every = 100 , metrics = 'test loss' , vid_scale = None )
102103
103104 # ------------------------------- RNN (MNIST-1D) ------------------------------ #
104105 # ndim = 20,410
105106 # 11s. ~ 3m. 30s.
106- bench = tasks .datasets . Mnist1d (
107+ bench = tasks .Mnist1d (
107108 models .RNN (1 , 10 , hidden_size = 40 , num_layers = 2 , rnn = torch .nn .RNN ),
108109 batch_size = 128 ,
109110 ).to (CUDA_IF_AVAILABLE )
110- bench_name = 'MLS - MNIST-1D BS-128 - RNN(2x40)'
111- self .run_bench (bench , bench_name , passes = 10_000 , sec = 600 , test_every = 20 , metrics = 'test loss' , vid_scale = None , binary_mul = 0.5 )
111+ bench_name = 'MLS - Mnist1d-5_000 BS-128 - RNN(2x40)'
112+ self .run_bench (bench , bench_name , passes = 20_000 , sec = 1_000 , test_every = 20 , metrics = 'test loss' , vid_scale = None )
113+
114+ # ------------------------- FTTransformer (MNIST-1D) ------------------------- #
115+ class NoCat (torch .nn .Module ):
116+ def __init__ (self ):
117+ super ().__init__ ()
118+ self .model = rtdl_revisiting_models .FTTransformer (n_cont_features = 40 , cat_cardinalities = [], d_out = 10 ,
119+ ** rtdl_revisiting_models .FTTransformer .get_default_kwargs (1 ))
120+
121+ def forward (self , x ):
122+ return self .model .forward (x , None )
123+
124+ bench = tasks .Mnist1d (NoCat (), batch_size = 32 , test_batch_size = 1024 , num_samples = 20_000 ).to (CUDA_IF_AVAILABLE )
125+ bench_name = 'MLS - Mnist1d-20_000 BS-32 - FTTransformer'
126+ self .run_bench (bench , bench_name , passes = 20_000 , sec = 1_000 , test_every = 200 , metrics = 'test loss' , vid_scale = None )
112127
113128 # ---------------------------- ConvNet (MNIST-1D) ---------------------------- #
114129 # ndim = 134,410
115- bench = tasks .datasets . Mnist1d (
130+ bench = tasks .Mnist1d (
116131 models .vision .ConvNet (40 , 1 , 10 , widths = (64 , 128 , 256 ), dropout = 0.7 ),
117132 batch_size = 32 , test_batch_size = 256
118133 ).to (CUDA_IF_AVAILABLE )
119- bench_name = "MLS - MNIST-1D BS-32 - ConvNet"
120- self .run_bench (bench , bench_name , passes = 20_000 , sec = 1000 , test_every = 50 , metrics = "test loss" , vid_scale = None )
134+ bench_name = "MLS - Mnist1d-5_000 BS-32 - ConvNet"
135+ self .run_bench (bench , bench_name , passes = 20_000 , sec = 1_000 , test_every = 50 , metrics = "test loss" , vid_scale = None )
121136
0 commit comments