"""Local fictional learning reference. No website/database/cloud connection.""" import csv,json,sqlite3,hashlib,math,re,statistics,collections from pathlib import Path def dl_arrays(): import numpy as np rng=np.random.default_rng(8);x=rng.normal(size=(40,2));y=(x[:,0]+.6*x[:,1]>0).astype(float) return x,y def dl_torch(source,out): import numpy as np import torch torch.set_num_threads(1);torch.manual_seed(7);x,y=dl_arrays();x=torch.tensor(x,dtype=torch.float32);y=torch.tensor(y[:,None],dtype=torch.float32) model=torch.nn.Sequential(torch.nn.Linear(2,4),torch.nn.Tanh(),torch.nn.Linear(4,1));optim=torch.optim.SGD(model.parameters(),lr=.1);loss_fn=torch.nn.BCEWithLogitsLoss() for _ in range(100): model.train();optim.zero_grad();loss=loss_fn(model(x[:24]),y[:24]);loss.backward();optim.step() model.eval() with torch.no_grad():validation=float(((model(x[24:32])>=0)==(y[24:32]>=.5)).float().mean());final_loss=float(loss_fn(model(x[:24]),y[:24])) return {'torch_version':torch.__version__,'train_rows':24,'validation_rows':8,'test_rows_reserved':8,'training_loss':final_loss,'validation_accuracy':validation,'test_scored':False,'warning':'Tiny synthetic exercise, not evidence of real-world generalisation.'} if __name__=='__main__': import argparse,platform parser=argparse.ArgumentParser();parser.add_argument('--source',default='.');parser.add_argument('--output',required=True);args=parser.parse_args() source=Path(args.source).resolve();out=Path(args.output).resolve() if source==out:raise ValueError('Source and output must differ') out.mkdir(parents=False,exist_ok=False) # Partial folders after an error are NOT successful; result.json is written last. result=dl_torch(source,out) with (out/'result.json').open('x',encoding='utf-8') as handle:json.dump(result,handle,indent=2,allow_nan=False);handle.write(chr(10)) print(json.dumps(result,indent=2,allow_nan=False))