MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / randomize_tensor_normal

Function randomize_tensor_normal

common/train.cpp:72–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72struct ggml_tensor * randomize_tensor_normal(struct ggml_tensor * tensor, struct random_normal_distribution * rnd) {
73 float scale = 1.0f; // xavier
74 switch (tensor->n_dims) {
75 case 1:
76 scale /= sqrtf((float) tensor->ne[0]);
77 for (int i0 = 0; i0 < tensor->ne[0]; i0++) {
78 float * dst = (float *) ((char *) tensor->data + i0*tensor->nb[0]);
79 *dst = scale * frand_normal(rnd);
80 }
81 break;
82 case 2:
83 scale /= sqrtf((float) tensor->ne[0]+tensor->ne[1]);
84 for (int i1 = 0; i1 < tensor->ne[1]; i1++) {
85 for (int i0 = 0; i0 < tensor->ne[0]; i0++) {
86 float * dst = (float *) ((char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1]);
87 *dst = scale * frand_normal(rnd);
88 }
89 }
90 break;
91 case 3:
92 scale /= sqrtf((float) tensor->ne[0]+tensor->ne[1]);
93 for (int i2 = 0; i2 < tensor->ne[2]; i2++) {
94 for (int i1 = 0; i1 < tensor->ne[1]; i1++) {
95 for (int i0 = 0; i0 < tensor->ne[0]; i0++) {
96 float * dst = (float *) ((char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2]);
97 *dst = scale * frand_normal(rnd);
98 }
99 }
100 }
101 break;
102 case 4:
103 scale /= sqrtf((float) tensor->ne[0]+tensor->ne[1]);
104 for (int i3 = 0; i3 < tensor->ne[3]; i3++) {
105 for (int i2 = 0; i2 < tensor->ne[2]; i2++) {
106 for (int i1 = 0; i1 < tensor->ne[1]; i1++) {
107 for (int i0 = 0; i0 < tensor->ne[0]; i0++) {
108 float * dst = (float *) ((char *) tensor->data + i0*tensor->nb[0] + i1*tensor->nb[1] + i2*tensor->nb[2] + i3*tensor->nb[3]);
109 *dst = scale * frand_normal(rnd);
110 }
111 }
112 }
113 }
114 break;
115 default:
116 die("Unsupported tensor->n_dims");
117 };
118 return tensor;
119}
120
121struct ggml_tensor * randomize_tensor_uniform(struct ggml_tensor * tensor, struct random_uniform_distribution * rnd) {
122 switch (tensor->n_dims) {

Callers 4

randomize_modelFunction · 0.85
randomize_model_loraFunction · 0.85
randomize_modelFunction · 0.85
randomize_loraFunction · 0.85

Calls 1

frand_normalFunction · 0.85

Tested by

no test coverage detected