From 824396f901818a4a30e6dd695fa55edb569b5ae0 Mon Sep 17 00:00:00 2001 From: fanasina Date: Fri, 21 Jun 2024 11:36:28 +0200 Subject: [PATCH] second try, not yet working --- deepQlearn_0/src/deepQlearning/learn_to_drive.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/deepQlearn_0/src/deepQlearning/learn_to_drive.c b/deepQlearn_0/src/deepQlearning/learn_to_drive.c index c64f6c9..c0cdaec 100644 --- a/deepQlearn_0/src/deepQlearning/learn_to_drive.c +++ b/deepQlearn_0/src/deepQlearning/learn_to_drive.c @@ -205,6 +205,22 @@ void train_qlearning(struct RL_agent * rlAgent, }else { experimental_values->x[action] = car_status->reward + rlAgent->qlearnParams->gamma * MAX_ARRAY_TYPE_FLOAT(next_action_value->x, next_action_value->dim->rank) ; } +// *** + neurons_TYPE_FLOAT *tmp=NULL, *ttmp=NULL, *base = net_main; + init_copy_in_out_networks_from_tensors_TYPE_FLOAT(base,base->output , experimental_values );\ + tmp=net_main->next_layer;\ + while(tmp){\ + calc_out_neurons_TYPE_FLOAT(tmp);\ + ttmp = tmp;\ + tmp = tmp->next_layer;\ + }\ + while(ttmp != base){\ + calc_delta_neurons_TYPE_FLOAT(ttmp);\ + update_weight_neurons_TYPE_FLOAT(ttmp);\ + ttmp = ttmp->prev_layer;\ + }\ + +// *** float new_value = ( (net_main->learning_rate < qlParams->minimum_threshold_learning_rate /*0.0001*/) ? net_main->learning_rate :(net_main->learning_rate ) * qlParams->factor_update_learning_rate /*0.995*/ ); UPDATE_ATTRIBUTE_NEURONE_IN_ALL_LAYERS(TYPE_FLOAT, net_main, learning_rate, new_value);