MCPcopy Create free account
hub / github.com/Meshcapade/difflocks / scale_for_cosine_sim

Function scale_for_cosine_sim

k_diffusion/models/modules.py:111–118  ·  view source on GitHub ↗
(q, k, scale, eps)

Source from the content-addressed store, hash-verified

109
110@flags.compile_wrap
111def scale_for_cosine_sim(q, k, scale, eps):
112 dtype = reduce(torch.promote_types, (q.dtype, k.dtype, scale.dtype, torch.float32))
113 sum_sq_q = torch.sum(q.to(dtype)**2, dim=-1, keepdim=True)
114 sum_sq_k = torch.sum(k.to(dtype)**2, dim=-1, keepdim=True)
115 sqrt_scale = torch.sqrt(scale.to(dtype))
116 scale_q = sqrt_scale * torch.rsqrt(sum_sq_q + eps)
117 scale_k = sqrt_scale * torch.rsqrt(sum_sq_k + eps)
118 return q * scale_q.to(q.dtype), k * scale_k.to(k.dtype)
119
120
121@flags.compile_wrap

Callers 4

scale_for_cosine_sim_qkvFunction · 0.70
forwardMethod · 0.70
forwardMethod · 0.70
forwardMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected