add macro MIN MAX in toom_t, and add copy tensor and weight_in neurons
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include "neuron_t/neuron_t.h"
|
||||
|
||||
#define MAX(X, Y) (((X) > (Y)) ? (X) : (Y))
|
||||
//#define MAX(X, Y) (((X) > (Y)) ? (X) : (Y))
|
||||
|
||||
#define ABSMAX(X, Y) ((((X) > (Y)) || ((-X) > (Y)) ) ? (X) : (Y))
|
||||
|
||||
@@ -828,6 +828,16 @@ void update_cloneuronesets_weight_in_base_##type(cloneuronset_##type * clnrnst){
|
||||
free(tmp_c);\
|
||||
}\
|
||||
\
|
||||
void copy_weight_in_neurons_##type(neurons_##type *dst_nrns, neurons_##type *src_nrns){\
|
||||
neurons_##type *tmp_src = src_nrns;\
|
||||
neurons_##type *tmp_dst = dst_nrns;\
|
||||
while(tmp_src){\
|
||||
copy_tensor_##type(tmp_dst->weight_in,tmp_src->weight_in);\
|
||||
tmp_src = tmp_src->next_layer;\
|
||||
tmp_dst = tmp_dst->next_layer;\
|
||||
}\
|
||||
}\
|
||||
\
|
||||
type clon_error_batch_##type(cloneuronset_##type * clnrnst){\
|
||||
\
|
||||
type err=0;\
|
||||
|
||||
@@ -65,6 +65,7 @@ void setup_learning_rate_params_neurons_##type(neurons_##type *base,type initial
|
||||
void calc_out_neurons_##type(neurons_##type *nr);\
|
||||
void calc_delta_neurons_##type(neurons_##type *nr);\
|
||||
void update_weight_neurons_##type(neurons_##type *nr);\
|
||||
void copy_weight_in_neurons_##type(neurons_##type *dst_nrns, neurons_##type *src_nrns);\
|
||||
/*void setup_networks_##type(neurons_##type **base_nr, size_t **array_dim_in_layers, size_t *tab_sz_layers, size_t nb_layers);*/\
|
||||
void init_copy_in_out_networks_from_tensors_##type(neurons_##type *nr, tensor_##type *input, tensor_##type *target);\
|
||||
void init_in_out_networks_from_tensors_##type(neurons_##type *nr, tensor_##type *input, tensor_##type *target, neurons_##type *base);\
|
||||
|
||||
@@ -330,6 +330,52 @@ TEST(learning_cloneuroneset_LEARN_RATE){
|
||||
|
||||
}
|
||||
|
||||
TEST(copy_weight_in_neurons){
|
||||
bool rec_randomizeInitWeight = randomizeInitWeight;
|
||||
randomizeInitWeight =false;
|
||||
|
||||
data_set_TYPE_FLOAT *ds= fill_data_set_from_file_TYPE_FLOAT("xor.txt",1);
|
||||
// print_data_set_msg_TYPE_FLOAT(ds,"data");
|
||||
config_layers *pconf = create_config_layers_from_OneD(3,(size_t[]){2,4,1}); /* 2 input , 1 target; 1 hidden layer with 5 neurons */
|
||||
neurons_TYPE_FLOAT *bn=NULL, *tmp ;
|
||||
neurons_TYPE_FLOAT *cpyn=NULL;
|
||||
//setup_networks_alloutputs_config_GLOBAL_rdm01_TYPE_FLOAT(setup_networks_alloutputs_config_TYPE_FLOAT(&bn,pconf);bn,pconf);
|
||||
setup_networks_alloutputs_config_TYPE_FLOAT(&bn,pconf,false,0,1,5000);
|
||||
setup_networks_alloutputs_config_TYPE_FLOAT(&cpyn, pconf,false,0,1,5000);
|
||||
|
||||
setup_all_layers_functions_TYPE_FLOAT(bn,
|
||||
tensorContractnProdThread_TYPE_FLOAT,
|
||||
tensorProdThread_TYPE_FLOAT,
|
||||
DL,
|
||||
L,
|
||||
f,
|
||||
df);
|
||||
|
||||
setup_all_layers_params_TYPE_FLOAT(bn, 5, 1 , 0.1);
|
||||
|
||||
|
||||
size_t reps = learning_online2_neurons_TYPE_FLOAT(bn,ds,cond);
|
||||
|
||||
copy_weight_in_neurons_TYPE_FLOAT(cpyn, bn);
|
||||
|
||||
char msg[256];
|
||||
for(size_t i=0; i<ds->size; ++i){
|
||||
print_predict_by_network_with_error_neurons_TYPE_FLOAT(bn,ds->input[i],ds->target[i]);
|
||||
print_predict_by_network_with_error_neurons_TYPE_FLOAT(cpyn,ds->input[i],ds->target[i]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
free_data_set_TYPE_FLOAT(ds);
|
||||
free_neurons_TYPE_FLOAT(bn);
|
||||
free_neurons_TYPE_FLOAT(cpyn);
|
||||
|
||||
LOG("reps = %ld\n",reps);
|
||||
randomizeInitWeight = rec_randomizeInitWeight;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user