docstr: msg emb init
docstr_tok: ["msg","emb","init"]
code: def edge_init(self, edges):
      """msg emb init"""
      # m init
      rbf = self.dense_rbf(edges.data["rbf"])
      if self.activation is not None:
          rbf = self.activation(rbf)
  
      m = torch.cat([edges.src["h"], edges.dst["h"], rbf], dim=-1)
      m = self.dense(m)
      if self.activation is not None:
          m = self.activation(m)
  
      # rbf_env init
      d_scaled = edges.data["d"] / self.cutoff
      rbf_env = [f(d_scaled) for f in self.bessel_funcs]
      rbf_env = torch.stack(rbf_env, dim=1)
  
      d_cutoff = self.envelope(d_scaled)
      rbf_env = d_cutoff[:, None] * rbf_env
  
      return {"m": m, "rbf_env": rbf_env}
  
file_path: dgl/examples/pytorch/dimenet/modules/embedding_block.py
imports: import numpy
  import torch
  import torch.nn
  from modules.envelope import Envelope
  from modules.initializers import GlorotOrthogonal
label_desc: Use image node_id 3 for calling the EmbeddingBlock obj's underlying member method code with example usage: obj.edge_init(edges) and returns: dict