| 1400 | _DEAD_HANDLES_THRESHOLD = 10 |
| 1401 | |
| 1402 | def _register_dead_handle(self, handle): |
| 1403 | # Register a dead handle in the session. Delete the dead tensors when |
| 1404 | # the number of dead tensors exceeds certain threshold. |
| 1405 | tensors_to_delete = None |
| 1406 | with self._delete_lock: |
| 1407 | self._dead_handles.append(handle) |
| 1408 | if len(self._dead_handles) == BaseSession._DEAD_HANDLES_THRESHOLD: |
| 1409 | tensors_to_delete = self._dead_handles |
| 1410 | self._dead_handles = [] |
| 1411 | # Delete the dead tensors. |
| 1412 | if tensors_to_delete: |
| 1413 | feeds = {} |
| 1414 | fetches = [] |
| 1415 | for deleter_key, tensor_handle in enumerate(tensors_to_delete): |
| 1416 | holder, deleter = session_ops._get_handle_deleter( |
| 1417 | self.graph, deleter_key, tensor_handle) |
| 1418 | feeds[holder] = tensor_handle |
| 1419 | fetches.append(deleter) |
| 1420 | self.run(fetches, feed_dict=feeds) |
| 1421 | |
| 1422 | def _update_with_movers(self, feed_dict, feed_map): |
| 1423 | # If a tensor handle that is fed to a device incompatible placeholder, |