コード例 #1
0
 def rewrite_callback(
         prim: core.Primitive, vals: Sequence[core.Tracer],
         params: Dict[str,
                      Any]) -> Union[core.Tracer, Sequence[core.Tracer]]:
     if prim in rules:
         return rules[prim](*vals, **params)
     return prim.bind(*vals, **params)
コード例 #2
0
 def find_callback(
         prim: core.Primitive, vals: Sequence[core.Tracer],
         params: Dict[str,
                      Any]) -> Union[core.Tracer, Sequence[core.Tracer]]:
     vals = prim.bind(*vals, **params)
     _contains_query(vals, queries)
     return vals
コード例 #3
0
ファイル: core.py プロジェクト: juliuskunze/jaxnet
    def _process_primitive(self, primitive: Primitive, flat_inputs, kwargs):
        if primitive in InitTrace._rules:
            return InitTrace._rules[primitive](self)(flat_inputs, kwargs)

        if isinstance(primitive, parametrized):
            return self.process_parametrized(primitive, *flat_inputs, **kwargs)

        return primitive.bind(*flat_inputs, **kwargs)
コード例 #4
0
 def default_process_primitive(
     self, primitive: jax_core.Primitive, tracers: List['HarvestTracer'],
     params: Dict[str, Any]) -> Union['HarvestTracer', List['HarvestTracer']]:
   context = trace_util.get_dynamic_context(self)
   vals = [t.val for t in tracers]
   if primitive is sow_p:
     outvals = context.process_sow(*vals, **params)
     return jax_util.safe_map(self.pure, outvals)
   outvals = primitive.bind(*vals, **params)
   if not primitive.multiple_results:
     outvals = [outvals]
   out_tracers = jax_util.safe_map(self.pure, outvals)
   if primitive.multiple_results:
     return out_tracers
   return out_tracers[0]