(
self, num_workers, workers,
works, num_epochs=1, shuffle=True,
restore_works_dir=None,
prefix=None)
| 295 | thread.join() |
| 296 | |
| 297 | def _get_workers( |
| 298 | self, num_workers, workers, |
| 299 | works, num_epochs=1, shuffle=True, |
| 300 | restore_works_dir=None, |
| 301 | prefix=None): |
| 302 | sessions = [] |
| 303 | graphs = [] |
| 304 | train_ops = [] |
| 305 | for worker_id in range(num_workers): |
| 306 | graph = ops.Graph() |
| 307 | is_chief = (worker_id == 0) |
| 308 | with graph.as_default(): |
| 309 | worker_device = "/job:worker/task:%d/cpu:0" % (worker_id) |
| 310 | with ops.device(device_setter.replica_device_setter( |
| 311 | worker_device=worker_device, |
| 312 | ps_device="/job:ps/task:0/cpu:0", |
| 313 | ps_tasks=1)): |
| 314 | |
| 315 | local_work_mgr = None |
| 316 | if restore_works_dir: |
| 317 | local_work_mgr = LocalWorkMgr( |
| 318 | 'worker', worker_id, restore_works_dir) |
| 319 | |
| 320 | work_queue = WorkQueue( |
| 321 | works, num_epochs=num_epochs, shuffle=shuffle, |
| 322 | name='global_queue', prefix=prefix, |
| 323 | local_work_mgr=local_work_mgr) |
| 324 | dataset = work_queue.input_dataset() |
| 325 | iterator = dataset.make_initializable_iterator() |
| 326 | ops.add_to_collection(ops.GraphKeys.TABLE_INITIALIZERS, |
| 327 | iterator.initializer) |
| 328 | data = iterator.get_next() |
| 329 | # Creates MonitoredSession |
| 330 | hooks = [] |
| 331 | if local_work_mgr: |
| 332 | hooks.append(local_work_mgr.hook()) |
| 333 | sess = monitored_session.MonitoredTrainingSession( |
| 334 | workers[worker_id].target, |
| 335 | is_chief=is_chief, |
| 336 | hooks=hooks) |
| 337 | |
| 338 | sessions.append(sess) |
| 339 | graphs.append(graph) |
| 340 | train_ops.append(data) |
| 341 | |
| 342 | return sessions, graphs, train_ops |
| 343 | |
| 344 | def test_multi_worker_dataset(self): |
| 345 | def _run(train_op, sess, result): |
no test coverage detected