Skip to content

Numerical processing methods with classical numerical integrators as kernels and SympNets as prepocessing and postprocessing steps

Notifications You must be signed in to change notification settings

DavisKalvans/SympNetsProcessing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SympNetsProcessing

Iekļauti visi nepieciešamie kodi, lai pēc maģistra darba "Simplektiskas skaitliskās metodes ar struktūru saglabājošu neirona tīkla apstrādi" aprakstītās metodes, varētu trenēt un veikt skaitlisku kļūdu analīzi apstrādes metodēm, kas veiktas balstoties uz simplektisku gradientu neironu tīklu apstrādi.

Pirms skriptu failu lietošanas

Lejupielāde

Šos failus iespējams lejupielādēt kā .zip failu, uzspiežot uz zaļās koda pogas. Alternatīvi, ja ir ieinstalēta GitHub pakotne, tad to iespējams izradīt lietojot termināli ar komandu git clone https://github.com/DavisKalvans/SympNetsProcessing.

Python vides uzstādīšana

Darbs tika izstrādāts ar Python versiju 3.8.8. Iespējams arī jaunākas versijas strādās, ja pārējo pakotņu konkrētās versijas būs saderīgas. Ar failu requirements.txt nepieciešams izveidot Python virtuālo vidi, piemēram, ar Conda un Spyder, Visual Studio Code vai caur termināli (ja ir ieinstalēta virtualenv pakotne).

Mapju struktūras izmantošana

Nepieciešams palaist scripta failus /OneTrajectory/folderStructure.py un /RandomPoints/folderStructure.py, lai tiktu izveidota mapju struktūra uztrenēto neirona tīklu un ģenerēto grafiku saglabāšanai.

Īsa pamācība

Mapē OneTrajectory atrodami visi skripti modeļiem, kuri tiek trenēti un validēti ar randomizētiem Hamiltona sistēmas punktiem kādā apgabalā. Mapē RandomPoints atrodami visi skripti modeļiem, kuri tiek trenēti un validēti ar vienu Hamiltona sistēmas trajektoriju. Sekojošās instrukcijas ir identiskas abos gadījumos.

Trenēšanas un validācijas datu kopu ģenerēšana

Visas darbā izmantotās datu kopas jau ir iekļautas. Lai ģenerētu jaunas ar citu trenēšanas punktu skaitu $M$, validācijas punktu skaitu $N$ vai laika soli $h$, tad nepieciešams izmantot attiecīgās problēmas _ dataRand.py scriptus, kuri atrodas TrainingData mapē.

Modeļu trenēšana un to prognožu kļūdu un konverģences grafiku iegūšana

Nesimetrisku modeļu gadījumā ($k=1$) imantot training.py un simetrisku modeļu gadījumā ($k=2$) izmantot trainingSym.py. Iespējams nomainīt visas parametru vērtības (slāņu skaita, biezuma, izmantoto trenēšanas un validācijas datu kopu, prognožu ilgumu utt.), kā arī trenēt vairākus modeļus pēc kārtas, lietojot sarakstus (lists) ar vērtībām, un iegūt

  • modeli;
  • tā trenēšanas kļūdu grafiku;
  • progonožu kļūdu grafikus konkrētai trajektorijai ar specifizētu sākumpunktu $x_0$;
  • prognožu kļūdu konverģences grafikus konkŗetai trajektorijai ar specifizētu sākumpunktu $x_0$;
  • progonožu vidējo kļūdu grafikus vairākām trajektorijām skaitā nr_trajects;
  • progonožu vidējās konverģences grafikus vairākām trajektorijām skaitā nr_trajects.

Trenētu modeļu prognožu vidējās kļūdas, konverģence un VPT

Lai analizētu vairākus jau uztrenētus modeļus attiecībā pret slāņu skaita $L$, biezuma $n$ un dažādām svaru inicializācijām $nM$, lieto skriptu analysis.py. Tas automātiski veiks nepieciešamos aprēķinu un prognozes, rezultātā dodot tabulas, kuras arī tiek saglabātas $LaTeX$ formātā

  • modeļu trenēšanas un validācijas kļūdām un to standartnovirzēm;
  • kodola un apstrādes metožu (kas iegūtas ar šiem modeļiem) prognožu kļūdas un standartnovirzes līdz laikam Tend un trajektorijām skaitā nr_trajects;
  • kodola un konnkrētas apstrādes metodes (kas iegūta ar šiem modeļiem) VPT (valid prediction time) līdz laikam Tend un trajektorijām skaitā nr_trajects.

About

Numerical processing methods with classical numerical integrators as kernels and SympNets as prepocessing and postprocessing steps

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages