MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / apply_weight_norm

Function apply_weight_norm

src/models/ace_step/vae_decoder.cpp:36–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34}
35
36std::vector<float> apply_weight_norm(
37 const std::vector<float> & g,
38 const std::vector<float> & v,
39 int64_t leading,
40 int64_t inner_size) {
41 std::vector<float> weight(v.size(), 0.0F);
42 for (int64_t i = 0; i < leading; ++i) {
43 double norm = 0.0;
44 for (int64_t j = 0; j < inner_size; ++j) {
45 const float value = v[static_cast<size_t>(i * inner_size + j)];
46 norm += static_cast<double>(value) * static_cast<double>(value);
47 }
48 const float scale = g[static_cast<size_t>(i)] / std::sqrt(static_cast<float>(norm) + 1.0e-12F);
49 for (int64_t j = 0; j < inner_size; ++j) {
50 weight[static_cast<size_t>(i * inner_size + j)] = v[static_cast<size_t>(i * inner_size + j)] * scale;
51 }
52 }
53 return weight;
54}
55
56std::vector<float> snake_exp_transform(const std::vector<float> & values) {
57 std::vector<float> out(values.size(), 0.0F);

Callers 2

load_weight_norm_conv1dFunction · 0.70

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected