MCPcopy Create free account
hub / github.com/pytorch/pytorch / spatial_bn

Function spatial_bn

caffe2/python/helpers/normalization.py:75–153  ·  view source on GitHub ↗
(model, blob_in, blob_out, dim_in,
               init_scale=1., init_bias=0.,
               ScaleInitializer=None, BiasInitializer=None,
               RunningMeanInitializer=None, RunningVarianceInitializer=None,
               order="NCHW", **kwargs)

Source from the content-addressed store, hash-verified

73
74
75def spatial_bn(model, blob_in, blob_out, dim_in,
76 init_scale=1., init_bias=0.,
77 ScaleInitializer=None, BiasInitializer=None,
78 RunningMeanInitializer=None, RunningVarianceInitializer=None,
79 order="NCHW", **kwargs):
80 blob_out = blob_out or model.net.NextName()
81 # Input: input, scale, bias, est_mean, est_inv_var
82 # Output: output, running_mean, running_inv_var, saved_mean,
83 # saved_inv_var
84 # scale: initialize with init_scale (default 1.)
85 # bias: initialize with init_bias (default 0.)
86 # est mean: zero
87 # est var: ones
88
89 if model.init_params:
90 scale_init = ("ConstantFill", {'value': init_scale})
91 bias_init = ("ConstantFill", {'value': init_bias})
92 rm_init = ("ConstantFill", {'value': 0.0})
93 riv_init = ("ConstantFill", {'value': 1.0})
94
95 ScaleInitializer = initializers.update_initializer(
96 ScaleInitializer, scale_init, ("ConstantFill", {})
97 )
98 BiasInitializer = initializers.update_initializer(
99 BiasInitializer, bias_init, ("ConstantFill", {})
100 )
101 RunningMeanInitializer = initializers.update_initializer(
102 RunningMeanInitializer, rm_init, ("ConstantFill", {})
103 )
104 RunningVarianceInitializer = initializers.update_initializer(
105 RunningVarianceInitializer, riv_init, ("ConstantFill", {})
106 )
107 else:
108 ScaleInitializer = initializers.ExternalInitializer()
109 BiasInitializer = initializers.ExternalInitializer()
110 RunningMeanInitializer = initializers.ExternalInitializer()
111 RunningVarianceInitializer = initializers.ExternalInitializer()
112
113 scale = model.create_param(
114 param_name=blob_out + '_s',
115 shape=[dim_in],
116 initializer=ScaleInitializer,
117 tags=ParameterTags.WEIGHT
118 )
119
120 bias = model.create_param(
121 param_name=blob_out + '_b',
122 shape=[dim_in],
123 initializer=BiasInitializer,
124 tags=ParameterTags.BIAS
125 )
126
127 running_mean = model.create_param(
128 param_name=blob_out + '_rm',
129 shape=[dim_in],
130 initializer=RunningMeanInitializer,
131 tags=ParameterTags.COMPUTED_PARAM
132 )

Callers

nothing calls this directly

Calls 3

NextNameMethod · 0.80
SpatialBNMethod · 0.80
create_paramMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…