MCPcopy Index your code
hub / github.com/pytorch/pytorch / testAdaptiveWeight

Method testAdaptiveWeight

caffe2/python/layers_test.py:2125–2163  ·  view source on GitHub ↗
(
        self, num, feed_weight, use_inv_var_parameterization, use_log_barrier,
        enable_diagnose, gc, dc
    )

Source from the content-addressed store, hash-verified

2123 )
2124 @settings(deadline=1000)
2125 def testAdaptiveWeight(
2126 self, num, feed_weight, use_inv_var_parameterization, use_log_barrier,
2127 enable_diagnose, gc, dc
2128 ):
2129 input_record = self.new_record(schema.RawTuple(num))
2130 data = np.random.random(num)
2131 schema.FeedRecord(
2132 input_record, [np.array(x).astype(np.float32) for x in data]
2133 )
2134 weights = np.random.random(num) if feed_weight else None
2135 result = self.model.AdaptiveWeight(
2136 input_record,
2137 weights=weights,
2138 estimation_method=(
2139 'inv_var' if use_inv_var_parameterization else 'log_std'
2140 ),
2141 pos_optim_method=(
2142 'log_barrier' if use_log_barrier else 'pos_grad_proj'
2143 ),
2144 enable_diagnose=enable_diagnose
2145 )
2146 train_init_net, train_net = self.get_training_nets(True)
2147 workspace.RunNetOnce(train_init_net)
2148 workspace.RunNetOnce(train_net)
2149 result = workspace.FetchBlob(result())
2150 if not feed_weight:
2151 weights = np.array([1. / num for _ in range(num)])
2152 expected = np.sum(weights * data + 0.5 * np.log(1. / 2. / weights))
2153 npt.assert_allclose(expected, result, atol=1e-4, rtol=1e-4)
2154 if enable_diagnose:
2155 assert len(self.model.ad_hoc_plot_blobs) == num
2156 reconst_weights_from_ad_hoc = np.array(
2157 [workspace.FetchBlob(b) for b in self.model.ad_hoc_plot_blobs]
2158 ).flatten()
2159 npt.assert_allclose(
2160 reconst_weights_from_ad_hoc, weights, atol=1e-4, rtol=1e-4
2161 )
2162 else:
2163 assert len(self.model.ad_hoc_plot_blobs) == 0
2164
2165 @given(num=st.integers(min_value=10, max_value=100), **hu.gcs)
2166 def testConstantWeight(self, num, gc, dc):

Callers

nothing calls this directly

Calls 7

new_recordMethod · 0.80
astypeMethod · 0.80
get_training_netsMethod · 0.80
rangeFunction · 0.50
sumMethod · 0.45
logMethod · 0.45
flattenMethod · 0.45

Tested by

no test coverage detected