(self)
| 206 | |
| 207 | # define optimizer and generate train_op |
| 208 | def _create_optimizer(self): |
| 209 | self.global_step = tf.train.get_or_create_global_step() |
| 210 | if self.tf or self._optimizer_type == 'adam': |
| 211 | optimizer = tf.train.AdamOptimizer( |
| 212 | learning_rate=self._learning_rate, |
| 213 | beta1=0.9, |
| 214 | beta2=0.999, |
| 215 | epsilon=1e-8) |
| 216 | elif self._optimizer_type == 'adagrad': |
| 217 | optimizer = tf.train.AdagradOptimizer( |
| 218 | learning_rate=self._learning_rate, |
| 219 | initial_accumulator_value=1e-8) |
| 220 | elif self._optimizer_type == 'adamasync': |
| 221 | optimizer = tf.train.AdamAsyncOptimizer( |
| 222 | learning_rate=self._learning_rate, |
| 223 | beta1=0.9, |
| 224 | beta2=0.999, |
| 225 | epsilon=1e-8) |
| 226 | elif self._optimizer_type == 'adagraddecay': |
| 227 | optimizer = tf.train.AdagradDecayOptimizer( |
| 228 | learning_rate=self._learning_rate, |
| 229 | global_step=self.global_step) |
| 230 | else: |
| 231 | raise ValueError('Optimizer type error.') |
| 232 | |
| 233 | update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) |
| 234 | with tf.control_dependencies(update_ops): |
| 235 | self.train_op = optimizer.minimize( |
| 236 | self.loss, global_step=self.global_step) |
| 237 | |
| 238 | # compute acc & auc |
| 239 | def _create_metrics(self): |
no test coverage detected