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

Class DCN

modelzoo/dcn/train.py:97–356  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95
96
97class DCN():
98 def __init__(self,
99 emb_stacking_columns=None,
100 dnn_hidden_units=[1024, 512, 256],
101 optimizer_type='adam',
102 cross_learning_rate=0.001,
103 deep_learning_rate=0.001,
104 inputs=None,
105 bf16=False,
106 stock_tf=None,
107 adaptive_emb=False,
108 input_layer_partitioner=None,
109 dense_layer_partitioner=None):
110 if not inputs:
111 raise ValueError("Dataset is not defined.")
112 self._feature = inputs[0]
113 self._label = inputs[1]
114
115 self._emb_stacking_columns = emb_stacking_columns
116 if not emb_stacking_columns:
117 raise ValueError("Embedding and stacking column is not defined.")
118
119 self.tf = stock_tf
120 self.bf16 = False if self.tf else bf16
121 self.is_training = True
122 self._adaptive_emb = adaptive_emb
123
124 self._dnn_hidden_units = dnn_hidden_units
125 self._deep_learning_rate = deep_learning_rate
126 self._cross_learning_rate = cross_learning_rate
127 self._optimizer_type = optimizer_type
128 self._input_layer_partitioner = input_layer_partitioner
129 self._dense_layer_partitioner = dense_layer_partitioner
130
131 self._create_model()
132 with tf.name_scope('head'):
133 self._create_loss()
134 self._create_optimizer()
135 self._create_metrics()
136
137 # used to add summary in tensorboard
138 def _add_layer_summary(self, value, tag):
139 tf.summary.scalar('%s/fraction_of_zero_values' % tag,
140 tf.nn.zero_fraction(value))
141 tf.summary.histogram('%s/activation' % tag, value)
142
143 def _dnn(self, dnn_input, dnn_hidden_units=None, layer_name=''):
144 for layer_id, num_hidden_units in enumerate(dnn_hidden_units):
145 with tf.variable_scope(layer_name + '_%d' % layer_id,
146 partitioner=self._dense_layer_partitioner,
147 reuse=tf.AUTO_REUSE) as dnn_layer_scope:
148 dnn_input = tf.layers.dense(
149 dnn_input,
150 units=num_hidden_units,
151 activation=tf.nn.relu,
152 kernel_initializer=tf.glorot_uniform_initializer(),
153 name=dnn_layer_scope)
154

Callers 1

mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected