/
usr
/
local
/
lib64
/
python3.6
/
site-packages
/
caffe2
/
python
/
/usr/local/lib64/python3.6/site-packages/caffe2/python
mkdir
upload
Name
Size
Mode
Actions
docs/
-
0755
rm
examples/
-
0755
rm
fakelowp/
-
0755
rm
helpers/
-
0755
rm
ideep/
-
0755
rm
layers/
-
0755
rm
mint/
-
0755
rm
mkl/
-
0755
rm
modeling/
-
0755
rm
models/
-
0755
rm
onnx/
-
0755
rm
operator_test/
-
0755
rm
predictor/
-
0755
rm
rnn/
-
0755
rm
serialized_test/
-
0755
rm
test/
-
0755
rm
trt/
-
0755
rm
__pycache__/
-
0755
rm
allcompare_test.py
2255
0644
edit
dl
rm
attention.py
12359
0644
edit
dl
rm
benchmark_generator.py
4912
0644
edit
dl
rm
binarysize.py
5521
0644
edit
dl
rm
brew.py
4762
0644
edit
dl
rm
brew_test.py
11739
0644
edit
dl
rm
build.py
153
0644
edit
dl
rm
cached_reader.py
4394
0644
edit
dl
rm
caffe2_pybind11_state.cpython-36m-x86_64-linux-gnu.so
48299712
0755
edit
dl
rm
caffe2_pybind11_state_gpu.cpython-36m-x86_64-linux-gnu.so
49048144
0755
edit
dl
rm
caffe_translator.py
35227
0644
edit
dl
rm
caffe_translator_test.py
3553
0644
edit
dl
rm
checkpoint.py
32101
0644
edit
dl
rm
checkpoint_test.py
13405
0644
edit
dl
rm
cnn.py
7626
0644
edit
dl
rm
context.py
2841
0644
edit
dl
rm
context_test.py
1792
0644
edit
dl
rm
control.py
19309
0644
edit
dl
rm
control_ops_grad.py
28893
0644
edit
dl
rm
control_ops_grad_test.py
1752
0644
edit
dl
rm
control_ops_util.py
10863
0644
edit
dl
rm
control_test.py
12276
0644
edit
dl
rm
convert.py
55
0644
edit
dl
rm
convert_test.py
201
0644
edit
dl
rm
convnet_benchmarks.py
20533
0644
edit
dl
rm
convnet_benchmarks_test.py
839
0644
edit
dl
rm
core.py
119400
0644
edit
dl
rm
core_gradients_test.py
38022
0644
edit
dl
rm
core_test.py
47683
0644
edit
dl
rm
crf.py
13250
0644
edit
dl
rm
crf_predict.py
1159
0644
edit
dl
rm
crf_viterbi_test.py
1663
0644
edit
dl
rm
dataio.py
23532
0644
edit
dl
rm
dataio_test.py
17575
0644
edit
dl
rm
dataset.py
12886
0644
edit
dl
rm
data_parallel_model.py
83100
0644
edit
dl
rm
data_parallel_model_test.py
56145
0644
edit
dl
rm
data_workers.py
15941
0644
edit
dl
rm
data_workers_test.py
6561
0644
edit
dl
rm
db_file_reader.py
6608
0644
edit
dl
rm
db_test.py
1110
0644
edit
dl
rm
device_checker.py
5157
0644
edit
dl
rm
dyndep.py
1533
0644
edit
dl
rm
embedding_generation_benchmark.py
5256
0644
edit
dl
rm
experiment_util.py
3625
0644
edit
dl
rm
extension_loader.py
744
0644
edit
dl
rm
fakefp16_transform_lib.py
322
0644
edit
dl
rm
filler_test.py
748
0644
edit
dl
rm
functional.py
4415
0644
edit
dl
rm
functional_test.py
4204
0644
edit
dl
rm
fused_8bit_rowwise_conversion_ops_test.py
3945
0644
edit
dl
rm
gradient_checker.py
15377
0644
edit
dl
rm
gradient_check_test.py
20729
0644
edit
dl
rm
gru_cell.py
5129
0644
edit
dl
rm
hip_test_util.py
405
0644
edit
dl
rm
hsm_util.py
2259
0644
edit
dl
rm
hypothesis_test.py
105762
0644
edit
dl
rm
hypothesis_test_util.py
26853
0644
edit
dl
rm
ideep_test_util.py
998
0644
edit
dl
rm
layers_test.py
92931
0644
edit
dl
rm
layer_model_helper.py
29340
0644
edit
dl
rm
layer_model_instantiator.py
3935
0644
edit
dl
rm
layer_parameter_sharing_test.py
9148
0644
edit
dl
rm
layer_test_util.py
4875
0644
edit
dl
rm
lazy.py
277
0644
edit
dl
rm
lazy_dyndep.py
2562
0644
edit
dl
rm
lazy_dyndep_test.py
3914
0644
edit
dl
rm
lengths_reducer_fused_8bit_rowwise_ops_test.py
7575
0644
edit
dl
rm
lengths_reducer_rowwise_8bit_ops_test.py
5710
0644
edit
dl
rm
lstm_benchmark.py
10649
0644
edit
dl
rm
memonger.py
34041
0644
edit
dl
rm
memonger_test.py
36910
0644
edit
dl
rm
mkl_test_util.py
1142
0644
edit
dl
rm
model_device_test.py
4777
0644
edit
dl
rm
model_helper.py
23492
0644
edit
dl
rm
model_helper_test.py
2336
0644
edit
dl
rm
modifier_context.py
1772
0644
edit
dl
rm
muji.py
8131
0644
edit
dl
rm
muji_test.py
3058
0644
edit
dl
rm
net_builder.py
27679
0644
edit
dl
rm
net_builder_test.py
11382
0644
edit
dl
rm
net_drawer.py
14264
0644
edit
dl
rm
net_printer.py
12704
0644
edit
dl
rm
net_printer_test.py
3190
0644
edit
dl
rm
nomnigraph.py
4216
0644
edit
dl
rm
nomnigraph_test.py
15427
0644
edit
dl
rm
nomnigraph_transformations.py
3787
0644
edit
dl
rm
nomnigraph_transformations_test.py
5767
0644
edit
dl
rm
normalizer.py
1411
0644
edit
dl
rm
normalizer_context.py
1007
0644
edit
dl
rm
normalizer_test.py
487
0644
edit
dl
rm
numa_benchmark.py
2230
0644
edit
dl
rm
numa_test.py
1663
0644
edit
dl
rm
observer_test.py
5316
0644
edit
dl
rm
operator_fp_exceptions_test.py
1248
0644
edit
dl
rm
optimizer.py
78813
0644
edit
dl
rm
optimizer_context.py
1462
0644
edit
dl
rm
optimizer_test.py
30705
0644
edit
dl
rm
optimizer_test_util.py
9187
0644
edit
dl
rm
parallelize_bmuf_distributed_test.py
9908
0644
edit
dl
rm
parallel_workers.py
7682
0644
edit
dl
rm
parallel_workers_test.py
3501
0644
edit
dl
rm
pipeline.py
17283
0644
edit
dl
rm
pipeline_test.py
2542
0644
edit
dl
rm
predictor_constants.py
198
0644
edit
dl
rm
python_op_test.py
9169
0644
edit
dl
rm
queue_util.py
4459
0644
edit
dl
rm
record_queue.py
4453
0644
edit
dl
rm
recurrent.py
13297
0644
edit
dl
rm
regularizer.py
21120
0644
edit
dl
rm
regularizer_context.py
1013
0644
edit
dl
rm
regularizer_test.py
10266
0644
edit
dl
rm
rnn_cell.py
68233
0644
edit
dl
rm
schema.py
45621
0644
edit
dl
rm
schema_test.py
15754
0644
edit
dl
rm
scope.py
3623
0644
edit
dl
rm
scope_test.py
5249
0644
edit
dl
rm
session.py
7642
0644
edit
dl
rm
session_test.py
2078
0644
edit
dl
rm
sparse_to_dense_mask_test.py
6565
0644
edit
dl
rm
sparse_to_dense_test.py
3556
0644
edit
dl
rm
task.py
24274
0644
edit
dl
rm
task_test.py
870
0644
edit
dl
rm
test_util.py
3524
0644
edit
dl
rm
text_file_reader.py
1990
0644
edit
dl
rm
timeout_guard.py
4054
0644
edit
dl
rm
toy_regression_test.py
2822
0644
edit
dl
rm
transformations.py
1832
0644
edit
dl
rm
transformations_test.py
11960
0644
edit
dl
rm
tt_core.py
9349
0644
edit
dl
rm
tt_core_test.py
2518
0644
edit
dl
rm
utils.py
14181
0644
edit
dl
rm
utils_test.py
1399
0644
edit
dl
rm
visualize.py
6315
0644
edit
dl
rm
workspace.py
25263
0644
edit
dl
rm
workspace_test.py
34844
0644
edit
dl
rm
_import_c_extension.py
2250
0644
edit
dl
rm
__init__.py
3925
0644
edit
dl
rm
Edit:
/usr/local/lib64/python3.6/site-packages/caffe2/python/regularizer_test.py
(10266B)
import caffe2.python.hypothesis_test_util as hu import hypothesis.strategies as st import numpy as np import numpy.testing as npt from caffe2.python import core, layer_model_instantiator, regularizer, schema, workspace from caffe2.python.layer_test_util import LayersTestCase from caffe2.python.optimizer import SgdOptimizer from caffe2.python.regularizer import L1Norm, RegularizationBy from caffe2.python.regularizer_context import RegularizerContext, UseRegularizer from hypothesis import given class TestRegularizerContext(LayersTestCase): @given(X=hu.arrays(dims=[2, 5])) def test_regularizer_context(self, X): weight_reg_out = L1Norm(0.2) bias_reg_out = L1Norm(0) regularizers = {"WEIGHT": weight_reg_out, "BIAS": bias_reg_out} output_dims = 2 input_record = self.new_record(schema.Scalar((np.float32, (5,)))) schema.FeedRecord(input_record, [X]) with UseRegularizer(regularizers): weight_reg = RegularizerContext.current().get_regularizer("WEIGHT") bias_reg = RegularizerContext.current().get_regularizer("BIAS") optim = SgdOptimizer(0.15) assert ( weight_reg == weight_reg_out ), "fail to get correct weight reg from context" assert bias_reg == bias_reg_out, "fail to get correct bias reg from context" fc_output = self.model.FC( input_record, output_dims, weight_optim=optim, bias_optim=optim, weight_reg=weight_reg, bias_reg=bias_reg, ) # model.output_schema has to a struct self.model.output_schema = schema.Struct(("fc_output", fc_output)) self.assertEqual(schema.Scalar((np.float32, (output_dims,))), fc_output) _, train_net = layer_model_instantiator.generate_training_nets(self.model) ops = train_net.Proto().op ops_type_list = [ops[i].type for i in range(len(ops))] assert ops_type_list.count("LpNorm") == 2 assert ops_type_list.count("Scale") == 4 assert ops_type_list.count("LpNormGradient") == 2 class TestRegularizer(LayersTestCase): @given(X=hu.arrays(dims=[2, 5], elements=hu.floats(min_value=-1.0, max_value=1.0))) def test_log_barrier(self, X): param = core.BlobReference("X") workspace.FeedBlob(param, X) train_init_net, train_net = self.get_training_nets() reg = regularizer.LogBarrier(1.0) output = reg(train_net, train_init_net, param, by=RegularizationBy.ON_LOSS) reg( train_net, train_init_net, param, grad=None, by=RegularizationBy.AFTER_OPTIMIZER, ) workspace.RunNetOnce(train_init_net) workspace.RunNetOnce(train_net) def ref(X): return ( np.array(np.sum(-np.log(np.clip(X, 1e-9, None))) * 0.5).astype( np.float32 ), np.clip(X, 1e-9, None), ) for x, y in zip(workspace.FetchBlobs([output, param]), ref(X)): npt.assert_allclose(x, y, rtol=1e-3) @given( X=hu.arrays(dims=[2, 5], elements=hu.floats(min_value=-1.0, max_value=1.0)), left_open=st.booleans(), right_open=st.booleans(), eps=hu.floats(min_value=1e-6, max_value=1e-4), ub=hu.floats(min_value=-1.0, max_value=1.0), lb=hu.floats(min_value=-1.0, max_value=1.0), **hu.gcs_cpu_only ) def test_bounded_grad_proj(self, X, left_open, right_open, eps, ub, lb, gc, dc): if ub - (eps if right_open else 0.) < lb + (eps if left_open else 0.): return param = core.BlobReference("X") workspace.FeedBlob(param, X) train_init_net, train_net = self.get_training_nets() reg = regularizer.BoundedGradientProjection( lb=lb, ub=ub, left_open=left_open, right_open=right_open, epsilon=eps ) output = reg(train_net, train_init_net, param, by=RegularizationBy.ON_LOSS) reg( train_net, train_init_net, param, grad=None, by=RegularizationBy.AFTER_OPTIMIZER, ) workspace.RunNetOnce(train_init_net) workspace.RunNetOnce(train_net) def ref(X): return np.clip( X, lb + (eps if left_open else 0.), ub - (eps if right_open else 0.) ) assert output is None npt.assert_allclose(workspace.blobs[param], ref(X), atol=1e-7) @given( output_dim=st.integers(1, 10), input_num=st.integers(3, 30), reg_weight=st.integers(0, 10) ) def test_group_l1_norm(self, output_dim, input_num, reg_weight): """ 1. create a weight blob 2. create random group splits 3. run group_l1_nrom with the weight blob 4. run equivalent np operations to calculate group l1 norm 5. compare if the results from 3 and 4 are equal """ def compare_reference(weight, group_boundaries, reg_lambda, output): group_splits = np.hsplit(weight, group_boundaries[1:-1]) l2_reg = np.sqrt([np.sum(np.square(g)) for g in group_splits]) l2_normalized = np.multiply(l2_reg, np.array([np.sqrt(g.shape[1]) for g in group_splits])) result = np.multiply(np.sum(l2_normalized), reg_lambda) npt.assert_almost_equal(result, workspace.blobs[output], decimal=2) weight = np.random.rand(output_dim, input_num).astype(np.float32) feature_num = np.random.randint(low=1, high=input_num - 1) group_boundaries = [0] group_boundaries = np.append( group_boundaries, np.sort( np.random.choice(range(1, input_num - 1), feature_num, replace=False) ), ) group_boundaries = np.append(group_boundaries, [input_num]) split_info = np.diff(group_boundaries) weight_blob = core.BlobReference("weight_blob") workspace.FeedBlob(weight_blob, weight) train_init_net, train_net = self.get_training_nets() reg = regularizer.GroupL1Norm(reg_weight * 0.1, split_info.tolist()) output = reg( train_net, train_init_net, weight_blob, by=RegularizationBy.ON_LOSS ) workspace.RunNetOnce(train_init_net) workspace.RunNetOnce(train_net) compare_reference(weight, group_boundaries, reg_weight * 0.1, output) @given( param_dim=st.integers(10, 30), k=st.integers(5, 9), reg_weight=st.integers(0, 10) ) def test_l1_norm_trimmed(self, param_dim, k, reg_weight): weight = np.random.rand(param_dim).astype(np.float32) weight_blob = core.BlobReference("weight_blob") workspace.FeedBlob(weight_blob, weight) train_init_net, train_net = self.get_training_nets() reg = regularizer.L1NormTrimmed(reg_weight * 0.1, k) output = reg( train_net, train_init_net, weight_blob, by=RegularizationBy.ON_LOSS ) workspace.RunNetOnce(train_init_net) workspace.RunNetOnce(train_net) result = np.sum(np.sort(np.absolute(weight))[:(param_dim - k)]) * reg_weight * 0.1 npt.assert_almost_equal(result, workspace.blobs[output], decimal=2) @given( param_dim=st.integers(10, 30), k=st.integers(5, 9), l1=st.integers(0, 10), l2=st.integers(0, 10) ) def test_elastic_l1_norm_trimmed(self, param_dim, k, l1, l2): weight = np.random.rand(param_dim).astype(np.float32) weight_blob = core.BlobReference("weight_blob") workspace.FeedBlob(weight_blob, weight) train_init_net, train_net = self.get_training_nets() reg = regularizer.ElasticNetL1NormTrimmed(l1 * 0.1, l2 * 0.1, k) output = reg( train_net, train_init_net, weight_blob, by=RegularizationBy.ON_LOSS ) workspace.RunNetOnce(train_init_net) workspace.RunNetOnce(train_net) l1_norm = np.sum(np.sort(np.absolute(weight))[:(param_dim - k)]) l2_norm = np.sum(np.square(weight)) result = l1_norm * l1 * 0.1 + l2_norm * l2 * 0.1 npt.assert_almost_equal(result, workspace.blobs[output], decimal=2) @given( row_dim=st.integers(5, 10), norm=st.floats(min_value=1.0, max_value=4.0), data_strategy=st.data(), ) def test_fp16_max_norm(self, row_dim, norm, data_strategy): weight = np.random.rand(row_dim, 5).astype(np.float16) grad = np.random.rand(row_dim, 5).astype(np.float16) # generate indices that will be updated indices = data_strategy.draw( hu.tensor( dtype=np.int64, min_dim=1, max_dim=1, elements=st.sampled_from(np.arange(weight.shape[0])), ) ) indices = np.unique(indices) # compute expected result result = weight.copy() # prevent dived by zero eps = 1e-12 norms = np.sqrt(np.sum(result[indices, ] ** 2, axis=1, keepdims=True)) # if the norms are smaller than max_norm, then it doesn't need update desired = np.clip(norms, 0, norm) # apply max norm result[indices, ] *= desired / (eps + norms) weight_blob = core.BlobReference("weight_blob") workspace.FeedBlob(weight_blob, weight) grad_blob = core.BlobReference("grad_blob") workspace.FeedBlob(grad_blob, grad) indices_blob = core.BlobReference("indices") workspace.FeedBlob(indices_blob, indices) grad_blob_slice = core.GradientSlice(indices=indices_blob, values=grad_blob) train_init_net, train_net = self.get_training_nets() reg = regularizer.MaxNorm(norm, dtype='fp16') reg( train_net, train_init_net, weight_blob, grad_blob_slice, by=RegularizationBy.AFTER_OPTIMIZER ) workspace.RunNetOnce(train_init_net) workspace.RunNetOnce(train_net) npt.assert_almost_equal(result, workspace.FetchBlob('weight_blob'), decimal=2)
Save
cmd:
run