/
usr
/
local
/
lib64
/
python3.6
/
site-packages
/
caffe2
/
python
/
layers
/
/usr/local/lib64/python3.6/site-packages/caffe2/python/layers
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
adaptive_weight.py
5687
0644
edit
dl
rm
add_bias.py
1396
0644
edit
dl
rm
arc_cosine_feature_map.py
7345
0644
edit
dl
rm
batch_huber_loss.py
3523
0644
edit
dl
rm
batch_lr_loss.py
11577
0644
edit
dl
rm
batch_mse_loss.py
2333
0644
edit
dl
rm
batch_normalization.py
3823
0644
edit
dl
rm
batch_sigmoid_cross_entropy_loss.py
1483
0644
edit
dl
rm
batch_softmax_loss.py
4580
0644
edit
dl
rm
blob_weighted_sum.py
2219
0644
edit
dl
rm
bpr_loss.py
1499
0644
edit
dl
rm
bucket_weighted.py
2355
0644
edit
dl
rm
build_index.py
1937
0644
edit
dl
rm
concat.py
4849
0644
edit
dl
rm
constant_weight.py
1208
0644
edit
dl
rm
conv.py
5050
0644
edit
dl
rm
dropout.py
1410
0644
edit
dl
rm
fc.py
9296
0644
edit
dl
rm
fc_without_bias.py
1954
0644
edit
dl
rm
fc_with_bootstrap.py
12788
0644
edit
dl
rm
feature_sparse_to_dense.py
14361
0644
edit
dl
rm
functional.py
4875
0644
edit
dl
rm
gather_record.py
3260
0644
edit
dl
rm
homotopy_weight.py
4306
0644
edit
dl
rm
label_smooth.py
3507
0644
edit
dl
rm
last_n_window_collector.py
2392
0644
edit
dl
rm
layers.py
17412
0644
edit
dl
rm
layer_normalization.py
4291
0644
edit
dl
rm
margin_rank_loss.py
1951
0644
edit
dl
rm
merge_id_lists.py
1500
0644
edit
dl
rm
pairwise_similarity.py
3549
0644
edit
dl
rm
position_weighted.py
2066
0644
edit
dl
rm
random_fourier_features.py
3187
0644
edit
dl
rm
reservoir_sampling.py
3013
0644
edit
dl
rm
sampling_train.py
2210
0644
edit
dl
rm
sampling_trainable_mixin.py
1366
0644
edit
dl
rm
select_record_by_context.py
2381
0644
edit
dl
rm
semi_random_features.py
5809
0644
edit
dl
rm
sparse_dropout_with_replacement.py
3943
0644
edit
dl
rm
sparse_feature_hash.py
4618
0644
edit
dl
rm
sparse_itemwise_dropout_with_replacement.py
3944
0644
edit
dl
rm
sparse_lookup.py
22170
0644
edit
dl
rm
split.py
2257
0644
edit
dl
rm
tags.py
4114
0644
edit
dl
rm
uniform_sampling.py
2779
0644
edit
dl
rm
__init__.py
943
0644
edit
dl
rm
Edit:
/usr/local/lib64/python3.6/site-packages/caffe2/python/layers/label_smooth.py
(3507B)
# Copyright (c) 2016-present, Facebook, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################## # @package label_smooth # Module caffe2.python.layers.label_smooth from caffe2.python import core, schema from caffe2.python.layers.layers import ModelLayer import numpy as np class LabelSmooth(ModelLayer): def __init__( self, model, label, smooth_matrix, name='label_smooth', **kwargs ): super(LabelSmooth, self).__init__(model, name, label, **kwargs) self.label = label # shape as a list smooth_matrix = np.array(smooth_matrix).astype(np.float32).flatten() self.set_dim(smooth_matrix) self.set_smooth_matrix(smooth_matrix) self.output_schema = schema.Scalar( (np.float32, (self.dim, )), self.get_next_blob_reference('smoothed_label') ) def set_dim(self, smooth_matrix): num_elements = smooth_matrix.size self.binary_prob_label = (num_elements == 2) if self.binary_prob_label: self.dim = 1 else: assert np.sqrt(num_elements)**2 == num_elements self.dim = int(np.sqrt(num_elements)) def set_smooth_matrix(self, smooth_matrix): if not self.binary_prob_label: self.smooth_matrix = self.model.add_global_constant( '%s_label_smooth_matrix' % self.name, array=smooth_matrix.reshape((self.dim, self.dim)), dtype=np.dtype(np.float32), ) self.len = self.model.add_global_constant( '%s_label_dim' % self.name, array=self.dim, dtype=np.dtype(np.int64), ) else: self.smooth_matrix = smooth_matrix def add_ops_for_binary_prob_label(self, net): if self.label.field_type().base != np.float32: float32_label = net.NextScopedBlob('float32_label') net.Cast([self.label()], [float32_label], to=core.DataType.FLOAT) else: float32_label = self.label() net.StumpFunc( float32_label, self.output_schema(), threshold=0.5, low_value=self.smooth_matrix[0], high_value=self.smooth_matrix[1], ) def add_ops_for_categorical_label(self, net): if self.label.field_type().base != np.int64: int64_label = net.NextScopedBlob('int64_label') net.Cast([self.label()], [int64_label], to=core.DataType.INT64) else: int64_label = self.label() one_hot_label = net.NextScopedBlob('one_hot_label') net.OneHot([int64_label, self.len], [one_hot_label]) net.MatMul([one_hot_label, self.smooth_matrix], self.output_schema()) def add_ops(self, net): if self.binary_prob_label: self.add_ops_for_binary_prob_label(net) else: self.add_ops_for_categorical_label(net)
Save
cmd:
run