add some functions to convert input char to dimension and tensor

This commit is contained in:
2024-02-25 00:53:57 +01:00
parent ef107c11db
commit c1409546ef
18 changed files with 688 additions and 128 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ NEURODIR=$(PWD)/..
DIMDIR=$(PWD)/../../dimension_t
INCLUDE_DIR=$(PWD)/../src
CFLAGS=-I$(INCLUDE_DIR) -I$(YPERMDIR)/src -I$(YTESTDIR)/include_ytest/include -I$(DIMDIR)/src -I$(TENSDIR)/src #"-D DEBUG=1"
LDFLAGS=-L$(YTESTDIR) -lytest -lOpenCL
LDFLAGS=-L$(YTESTDIR) -lytest -lOpenCL -lm
#SRC_DIR=$(ROOT_DIR)/src
#SRC=$(wildcard */*/*.c)
+55 -4
View File
@@ -2,6 +2,8 @@
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
// for sleep !
#ifdef __linux__
#include <unistd.h>
@@ -19,16 +21,65 @@
#define VALGRIND_ 1
TEST(init_One){
float L(float t, float o){
return (o - t) * (o - t)/2;
}
float DL(float t, float o){
return (o - t);
}
neurons_TYPE_FLOAT *bn=NULL;
setup_networks_OneD_TYPE_FLOAT(&bn, (size_t[]){3,4,2},3);
print_neurons_msg_TYPE_FLOAT(bn,"bn");
float f(float x){
return 1/(1+exp((double)(-x)));
}
float df(float x){
return exp(-x)/ ((1+exp(-x)) * (1+exp(-x)));
}
TEST(init_One){
//endian=false;
neurons_TYPE_FLOAT *bn=NULL, *tmp=NULL, *ttmp=NULL;
setup_networks_OneD_TYPE_FLOAT(&bn, (size_t[]){3,5,2},3);
init_in_out_all_networks_OneD_TYPE_FLOAT(bn,(float[]){1.2,0.5,1.3},3,(float[]){0.1,0.8},2);
setup_all_layers_functions_TYPE_FLOAT(bn,
tensorContractnProdThread_TYPE_FLOAT,
tensorProdThread_TYPE_FLOAT,
DL,
L,
f,
df);
setup_all_layers_params_TYPE_FLOAT(bn, 2, 0.7);
//print_neurons_msg_TYPE_FLOAT(bn,"bn");
tmp=bn->next_layer;
while(tmp){
calc_out_neurons_TYPE_FLOAT(tmp);
ttmp = tmp;
tmp = tmp->next_layer;
}
while(ttmp != bn){
calc_delta_neurons_TYPE_FLOAT(ttmp);
update_weight_neurons_TYPE_FLOAT(ttmp);
ttmp = ttmp->prev_layer;
}
print_neurons_msg_TYPE_FLOAT(bn,"bn");
LOG(" error : %f\n", error_out_TYPE_FLOAT(bn));
free_neurons_TYPE_FLOAT(bn);
}
int main(int argc, char **argv){