-
Notifications
You must be signed in to change notification settings - Fork 0
/
nonautoUDEruns.jl
37 lines (33 loc) · 1.98 KB
/
nonautoUDEruns.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using FLoops
include("NODEUtils.jl")
include("dataGeneration.jl")
#Run conditions
communitySizes = [10,40]
observationErrors = [0,1e-2,1e-1]
numberofTimeSeries = 5
trainingSizes = [10, 30, 50]
initialWeightsNumber = 4
Tmax = 100
#Run NODEs
@floop for (communitySize,observationError,trainingSize) in Iterators.product(communitySizes,observationErrors,trainingSizes)
for i in 3:numberofTimeSeries
knownDynamics(x,m,q) = [-q*ones(communitySize);1]
timeSeries = (readdlm("Data/timeSeries_communitySize_"*string(communitySize)*"_observationError_"*
string(observationError)*"_rep_"*string(i)*".csv"))
for j in 1:initialWeightsNumber
#Check to prevent double work
isfile("Models/nonautonomous_UDE_communitySize_"*string(communitySize)*"_observationError_"*
string(observationError)*"_trainingSize_"*string(trainingSize)*"_rep_"*string(i)*"_"*string(j)*".jls") && continue
#Training of models
UDENonAutonomous = denseLayersLux(communitySize+1,communitySize*2)
trainedParamsUDENonAutonomous = trainUDEModel(UDENonAutonomous,knownDynamics,[timeSeries[:,1:trainingSize];collect(1:trainingSize)'],p_true=1)
saveNeuralNetwork(UDE(UDENonAutonomous,trainedParamsUDENonAutonomous,knownDynamics),
fileName="Models/nonautonomous_UDE_communitySize_"*string(communitySize)*"_observationError_"*
string(observationError)*"_trainingSize_"*string(trainingSize)*"_rep_"*string(i)*"_"*string(j))
#Testing of models
UDENonAutonomousTest = testUDEModel(trainedParamsUDENonAutonomous,UDENonAutonomous,knownDynamics,[timeSeries[:,(trainingSize)];trainingSize],50,p_true=1)
CUDA.@allowscalar writedlm("Results/test_nonautonomous_UDE_communitySize_"*string(communitySize)*"_observationError_"*
string(observationError)*"_trainingSize_"*string(trainingSize)*"_rep_"*string(i)*"_"*string(j)*".csv",UDENonAutonomousTest)
end
end
end