(self, sess)
| 213 | self._ignore_mismatch = ignore_mismatch |
| 214 | |
| 215 | def _run_init(self, sess): |
| 216 | variables = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES) |
| 217 | variable_names_list = [k.name for k in variables] |
| 218 | |
| 219 | variable_names = set(variable_names_list) |
| 220 | param_names = set(six.iterkeys(self._prms)) |
| 221 | |
| 222 | # intersect has the original ordering of variables |
| 223 | intersect = [v for v in variable_names_list if v in param_names] |
| 224 | |
| 225 | # use opname (without :0) for clarity in logging |
| 226 | logger.info("Variables to restore from dict: {}".format( |
| 227 | ', '.join(get_op_tensor_name(x)[0] for x in intersect))) |
| 228 | |
| 229 | mismatch = MismatchLogger('graph', 'dict') |
| 230 | for k in sorted(variable_names - param_names): |
| 231 | if not is_training_name(k): |
| 232 | mismatch.add(k) |
| 233 | mismatch.log() |
| 234 | mismatch = MismatchLogger('dict', 'graph') |
| 235 | for k in sorted(param_names - variable_names): |
| 236 | mismatch.add(k) |
| 237 | mismatch.log() |
| 238 | |
| 239 | upd = SessionUpdate(sess, [v for v in variables if v.name in intersect], ignore_mismatch=self._ignore_mismatch) |
| 240 | logger.info("Restoring {} variables from dict ...".format(len(intersect))) |
| 241 | upd.update({name: value for name, value in six.iteritems(self._prms) if name in intersect}) |
| 242 | |
| 243 | |
| 244 | class ChainInit(SessionInit): |
nothing calls this directly
no test coverage detected