Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
seminar-breakout
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shashank Suhas
seminar-breakout
Commits
000b2ea3
Commit
000b2ea3
authored
Feb 26, 2017
by
Yuxin Wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
monitor becomes no-op when logger is not set
parent
0f4eda16
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
5 deletions
+32
-5
tensorpack/callbacks/saver.py
tensorpack/callbacks/saver.py
+1
-0
tensorpack/train/base.py
tensorpack/train/base.py
+5
-5
tensorpack/train/monitor.py
tensorpack/train/monitor.py
+26
-0
No files found.
tensorpack/callbacks/saver.py
View file @
000b2ea3
...
@@ -34,6 +34,7 @@ class ModelSaver(Triggerable):
...
@@ -34,6 +34,7 @@ class ModelSaver(Triggerable):
self
.
var_collections
=
var_collections
self
.
var_collections
=
var_collections
if
checkpoint_dir
is
None
:
if
checkpoint_dir
is
None
:
checkpoint_dir
=
logger
.
LOG_DIR
checkpoint_dir
=
logger
.
LOG_DIR
assert
os
.
path
.
isdir
(
checkpoint_dir
),
checkpoint_dir
self
.
checkpoint_dir
=
checkpoint_dir
self
.
checkpoint_dir
=
checkpoint_dir
def
_setup_graph
(
self
):
def
_setup_graph
(
self
):
...
...
tensorpack/train/base.py
View file @
000b2ea3
...
@@ -43,6 +43,7 @@ class Trainer(object):
...
@@ -43,6 +43,7 @@ class Trainer(object):
epoch_num (int): the number of epochs that have finished.
epoch_num (int): the number of epochs that have finished.
local_step (int): the number of steps that have finished in the current epoch.
local_step (int): the number of steps that have finished in the current epoch.
global_step (int): the number of steps that have finished.
"""
"""
def
__init__
(
self
,
config
):
def
__init__
(
self
,
config
):
...
@@ -59,10 +60,12 @@ class Trainer(object):
...
@@ -59,10 +60,12 @@ class Trainer(object):
self
.
_callbacks
=
[]
self
.
_callbacks
=
[]
self
.
register_callback
(
MaintainStepCounter
())
self
.
register_callback
(
MaintainStepCounter
())
for
cb
in
self
.
config
.
callbacks
:
for
cb
in
config
.
callbacks
:
self
.
register_callback
(
cb
)
self
.
register_callback
(
cb
)
self
.
monitors
=
config
.
monitors
self
.
monitors
=
[]
for
m
in
config
.
monitors
:
self
.
register_monitor
(
m
)
def
register_callback
(
self
,
cb
):
def
register_callback
(
self
,
cb
):
"""
"""
...
@@ -100,9 +103,6 @@ class Trainer(object):
...
@@ -100,9 +103,6 @@ class Trainer(object):
"""
"""
Setup the trainer and be ready for the main loop.
Setup the trainer and be ready for the main loop.
"""
"""
if
not
hasattr
(
logger
,
'LOG_DIR'
):
raise
RuntimeError
(
"logger directory wasn't set!"
)
self
.
_setup
()
# subclass will setup the graph
self
.
_setup
()
# subclass will setup the graph
describe_model
()
describe_model
()
...
...
tensorpack/train/monitor.py
View file @
000b2ea3
...
@@ -18,8 +18,16 @@ __all__ = ['TrainingMonitor', 'Monitors',
...
@@ -18,8 +18,16 @@ __all__ = ['TrainingMonitor', 'Monitors',
class
TrainingMonitor
(
object
):
class
TrainingMonitor
(
object
):
"""
Monitor a training progress, by processing different types of
summary/statistics from trainer.
"""
def
setup
(
self
,
trainer
):
def
setup
(
self
,
trainer
):
self
.
_trainer
=
trainer
self
.
_trainer
=
trainer
self
.
_setup
()
def
_setup
(
self
):
pass
def
put_summary
(
self
,
summary
):
def
put_summary
(
self
,
summary
):
pass
pass
...
@@ -34,6 +42,10 @@ class TrainingMonitor(object):
...
@@ -34,6 +42,10 @@ class TrainingMonitor(object):
pass
pass
class
NoOpMonitor
(
TrainingMonitor
):
pass
class
Monitors
(
TrainingMonitor
):
class
Monitors
(
TrainingMonitor
):
def
__init__
(
self
,
monitors
):
def
__init__
(
self
,
monitors
):
# TODO filter by names
# TODO filter by names
...
@@ -92,6 +104,13 @@ class Monitors(TrainingMonitor):
...
@@ -92,6 +104,13 @@ class Monitors(TrainingMonitor):
class
TFSummaryWriter
(
TrainingMonitor
):
class
TFSummaryWriter
(
TrainingMonitor
):
def
__new__
(
cls
):
if
logger
.
LOG_DIR
:
return
super
(
TFSummaryWriter
,
cls
)
.
__new__
(
cls
)
else
:
logger
.
warn
(
"logger directory was not set. Ignore TFSummaryWriter."
)
return
NoOpMonitor
()
def
setup
(
self
,
trainer
):
def
setup
(
self
,
trainer
):
super
(
TFSummaryWriter
,
self
)
.
setup
(
trainer
)
super
(
TFSummaryWriter
,
self
)
.
setup
(
trainer
)
self
.
_writer
=
tf
.
summary
.
FileWriter
(
logger
.
LOG_DIR
,
graph
=
tf
.
get_default_graph
())
self
.
_writer
=
tf
.
summary
.
FileWriter
(
logger
.
LOG_DIR
,
graph
=
tf
.
get_default_graph
())
...
@@ -107,6 +126,13 @@ class TFSummaryWriter(TrainingMonitor):
...
@@ -107,6 +126,13 @@ class TFSummaryWriter(TrainingMonitor):
class
JSONWriter
(
TrainingMonitor
):
class
JSONWriter
(
TrainingMonitor
):
def
__new__
(
cls
):
if
logger
.
LOG_DIR
:
return
super
(
JSONWriter
,
cls
)
.
__new__
(
cls
)
else
:
logger
.
warn
(
"logger directory was not set. Ignore JSONWriter."
)
return
NoOpMonitor
()
def
setup
(
self
,
trainer
):
def
setup
(
self
,
trainer
):
super
(
JSONWriter
,
self
)
.
setup
(
trainer
)
super
(
JSONWriter
,
self
)
.
setup
(
trainer
)
self
.
_dir
=
logger
.
LOG_DIR
self
.
_dir
=
logger
.
LOG_DIR
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment