MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / DSSM

Class DSSM

modelzoo/dssm/train.py:75–263  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

73
74
75class DSSM():
76 def __init__(self,
77 user_column=None,
78 item_column=None,
79 dnn_hidden_units=[256, 128, 64, 32],
80 optimizer_type='adam',
81 batch_size=0,
82 learning_rate=0.001,
83 use_bn=True,
84 inputs=None,
85 bf16=False,
86 stock_tf=None,
87 adaptive_emb=False,
88 input_layer_partitioner=None,
89 dense_layer_partitioner=None):
90 if not inputs:
91 raise ValueError("Dataset is not defined.")
92 self._feature = inputs[0]
93 self._label = inputs[1]
94
95 self._user_column = user_column
96 self._item_column = item_column
97 if not user_column or not item_column:
98 raise ValueError('User column or item column is not defined.')
99
100 self.tf = stock_tf
101 self.bf16 = False if self.tf else bf16
102 self.is_training = True
103 self._adaptive_emb = adaptive_emb
104
105 self._dnn_hidden_units = dnn_hidden_units
106 self._dnn_last_hidden_units = self._dnn_hidden_units.pop()
107 self._batch_size = batch_size
108 self._learning_rate = learning_rate
109 self._use_bn = use_bn
110 self._optimizer_type = optimizer_type
111 self._input_layer_partitioner = input_layer_partitioner
112 self._dense_layer_partitioner = dense_layer_partitioner
113
114 self._create_model()
115 with tf.name_scope('head'):
116 self._create_loss()
117 self._create_optimizer()
118 self._create_metrics()
119
120 # used to add summary in tensorboard
121 def _add_layer_summary(self, value, tag):
122 tf.summary.scalar('%s/fraction_of_zero_values' % tag,
123 tf.nn.zero_fraction(value))
124 tf.summary.histogram('%s/activation' % tag, value)
125
126 def _dnn_tower(self, net, name):
127 with tf.variable_scope(name + '_layer',
128 partitioner=self._dense_layer_partitioner,
129 reuse=tf.AUTO_REUSE):
130 for layer_id, num_hidden_units in enumerate(
131 self._dnn_hidden_units):
132 with tf.variable_scope(name + '_%d' % layer_id,

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected