(self)
| 233 | |
| 234 | # define optimizer and generate train_op |
| 235 | def _create_optimizer(self): |
| 236 | self.global_step = tf.train.get_or_create_global_step() |
| 237 | if self.tf or self._optimizer_type == 'adam': |
| 238 | optimizer = tf.train.AdamOptimizer( |
| 239 | learning_rate=self._learning_rate) |
| 240 | elif self._optimizer_type == 'adamasync': |
| 241 | optimizer = tf.train.AdamAsyncOptimizer( |
| 242 | learning_rate=self._learning_rate) |
| 243 | elif self._optimizer_type == 'adagraddecay': |
| 244 | optimizer = tf.train.AdagradDecayOptimizer( |
| 245 | learning_rate=self._learning_rate, |
| 246 | global_step=self.global_step) |
| 247 | else: |
| 248 | raise ValueError("Optimizer type error.") |
| 249 | |
| 250 | update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) |
| 251 | with tf.control_dependencies(update_ops): |
| 252 | self.train_op = optimizer.minimize(self.loss, |
| 253 | global_step=self.global_step) |
| 254 | |
| 255 | # compute acc & auc |
| 256 | def _create_metrics(self): |
no test coverage detected