From 2dfa5d4e58a2e5ef9256bc3c1b3c2b0073923a7d Mon Sep 17 00:00:00 2001 From: "ngo-nghi-truyen.huynh" Date: Mon, 9 Sep 2024 12:25:08 +0200 Subject: [PATCH] Re-generate adjoint: make tap --- smash/fcore/forward/forward_db.f90 | 19 +++++++++++++------ smash/fcore/forward/forward_openmp_db.f90 | 19 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/smash/fcore/forward/forward_db.f90 b/smash/fcore/forward/forward_db.f90 index 422c0e36..5d849ff9 100644 --- a/smash/fcore/forward/forward_db.f90 +++ b/smash/fcore/forward/forward_db.f90 @@ -6377,12 +6377,15 @@ SUBROUTINE NN_PARAMETERS_GET_CONTROL_SIZE(setup, options, n) TYPE(SETUPDT), INTENT(IN) :: setup TYPE(OPTIONSDT), INTENT(IN) :: options INTEGER, INTENT(INOUT) :: n - n = options%optimize%nn_parameters(1)*setup%neurons(2)*setup%neurons& -& (1) + options%optimize%nn_parameters(2)*setup%neurons(2) + options& -& %optimize%nn_parameters(3)*setup%neurons(3)*setup%neurons(2) + & -& options%optimize%nn_parameters(4)*setup%neurons(3) + options%& -& optimize%nn_parameters(5)*setup%neurons(4)*setup%neurons(3) + & -& options%optimize%nn_parameters(6)*setup%neurons(4) + INTEGER :: i, n_w, n_b + INTRINSIC SIZE + n = 0 + DO i=0,SIZE(setup%hidden_neuron) + n_w = options%optimize%nn_parameters(2*i+1)*setup%neurons(i+2)*& +& setup%neurons(i+1) + n_b = options%optimize%nn_parameters(2*i+2)*setup%neurons(i+2) + n = n + n_w + n_b + END DO END SUBROUTINE NN_PARAMETERS_GET_CONTROL_SIZE SUBROUTINE GET_CONTROL_SIZES(setup, mesh, options, nbk) @@ -6793,6 +6796,7 @@ SUBROUTINE NN_PARAMETERS_FILL_CONTROL(setup, options, parameters) CHARACTER(len=lchar) :: name INTEGER :: j, k, l INTRINSIC SUM +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN DO k=1,setup%neurons(1) @@ -8248,6 +8252,7 @@ SUBROUTINE NN_PARAMETERS_FILL_PARAMETERS_D(setup, options, parameters& TYPE(PARAMETERSDT), INTENT(INOUT) :: parameters_d INTEGER :: j, k, l INTRINSIC SUM +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN parameters_d%nn_parameters%weight_1 = 0.0_4 @@ -8343,6 +8348,7 @@ SUBROUTINE NN_PARAMETERS_FILL_PARAMETERS_B(setup, options, parameters& INTEGER :: j, k, l INTRINSIC SUM INTEGER :: branch +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN DO k=1,setup%neurons(1) @@ -8467,6 +8473,7 @@ SUBROUTINE NN_PARAMETERS_FILL_PARAMETERS(setup, options, parameters) TYPE(PARAMETERSDT), INTENT(INOUT) :: parameters INTEGER :: j, k, l INTRINSIC SUM +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN DO k=1,setup%neurons(1) diff --git a/smash/fcore/forward/forward_openmp_db.f90 b/smash/fcore/forward/forward_openmp_db.f90 index e97fdb2b..0c0d206c 100644 --- a/smash/fcore/forward/forward_openmp_db.f90 +++ b/smash/fcore/forward/forward_openmp_db.f90 @@ -6377,12 +6377,15 @@ SUBROUTINE NN_PARAMETERS_GET_CONTROL_SIZE(setup, options, n) TYPE(SETUPDT), INTENT(IN) :: setup TYPE(OPTIONSDT), INTENT(IN) :: options INTEGER, INTENT(INOUT) :: n - n = options%optimize%nn_parameters(1)*setup%neurons(2)*setup%neurons& -& (1) + options%optimize%nn_parameters(2)*setup%neurons(2) + options& -& %optimize%nn_parameters(3)*setup%neurons(3)*setup%neurons(2) + & -& options%optimize%nn_parameters(4)*setup%neurons(3) + options%& -& optimize%nn_parameters(5)*setup%neurons(4)*setup%neurons(3) + & -& options%optimize%nn_parameters(6)*setup%neurons(4) + INTEGER :: i, n_w, n_b + INTRINSIC SIZE + n = 0 + DO i=0,SIZE(setup%hidden_neuron) + n_w = options%optimize%nn_parameters(2*i+1)*setup%neurons(i+2)*& +& setup%neurons(i+1) + n_b = options%optimize%nn_parameters(2*i+2)*setup%neurons(i+2) + n = n + n_w + n_b + END DO END SUBROUTINE NN_PARAMETERS_GET_CONTROL_SIZE SUBROUTINE GET_CONTROL_SIZES(setup, mesh, options, nbk) @@ -6793,6 +6796,7 @@ SUBROUTINE NN_PARAMETERS_FILL_CONTROL(setup, options, parameters) CHARACTER(len=lchar) :: name INTEGER :: j, k, l INTRINSIC SUM +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN DO k=1,setup%neurons(1) @@ -8250,6 +8254,7 @@ SUBROUTINE NN_PARAMETERS_FILL_PARAMETERS_D(setup, options, parameters& TYPE(PARAMETERSDT), INTENT(INOUT) :: parameters_d INTEGER :: j, k, l INTRINSIC SUM +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN parameters_d%nn_parameters%weight_1 = 0.0_4 @@ -8345,6 +8350,7 @@ SUBROUTINE NN_PARAMETERS_FILL_PARAMETERS_B(setup, options, parameters& INTEGER :: j, k, l INTRINSIC SUM INTEGER :: branch +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN DO k=1,setup%neurons(1) @@ -8469,6 +8475,7 @@ SUBROUTINE NN_PARAMETERS_FILL_PARAMETERS(setup, options, parameters) TYPE(PARAMETERSDT), INTENT(INOUT) :: parameters INTEGER :: j, k, l INTRINSIC SUM +! NN parameters is fifth control kind j = SUM(parameters%control%nbk(1:4)) IF (options%optimize%nn_parameters(1) .EQ. 1) THEN DO k=1,setup%neurons(1)