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
b4085f77
Commit
b4085f77
authored
Oct 30, 2017
by
Yuxin Wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update docs. remove _register_monitor
parent
a21eb14f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
18 deletions
+11
-18
tensorpack/graph_builder/model_desc.py
tensorpack/graph_builder/model_desc.py
+5
-0
tensorpack/train/base.py
tensorpack/train/base.py
+5
-17
tensorpack/train/tower.py
tensorpack/train/tower.py
+1
-1
No files found.
tensorpack/graph_builder/model_desc.py
View file @
b4085f77
...
...
@@ -67,6 +67,11 @@ class InputDesc(
return
self
.
_cached_placeholder
return
self
.
build_placeholder
()
@
staticmethod
def
from_tensor
(
t
):
return
InputDesc
(
t
.
dtype
,
t
.
shape
.
as_list
(),
t
.
name
[:
-
2
])
@
six
.
add_metaclass
(
ABCMeta
)
class
ModelDescBase
(
object
):
...
...
tensorpack/train/base.py
View file @
b4085f77
...
...
@@ -76,13 +76,13 @@ class Trainer(object):
"""
self
.
_callbacks
=
[]
self
.
loop
=
TrainLoop
()
self
.
_monitors
=
[]
# Clarify the type. Don't change from list to monitors.
# Hacks!
if
config
is
not
None
:
logger
.
warn
(
"You're initializing new trainer with old trainer API!"
)
logger
.
warn
(
"This could happen if you wrote a custom trainer before."
)
logger
.
warn
(
"It may work now through some hacks, but please switch to the new API!"
)
logger
.
warn
(
"See https://github.com/ppwwyyxx/tensorpack/issues/458 for more information."
)
self
.
_config
=
config
self
.
inputs_desc
=
config
.
model
.
get_inputs_desc
()
self
.
tower_func
=
TowerFuncWrapper
(
...
...
@@ -117,19 +117,6 @@ class Trainer(object):
else
:
self
.
_callbacks
.
append
(
cb
)
def
_register_monitor
(
self
,
mon
):
"""
Register a monitor to the trainer.
It can only be called before :meth:`Trainer.train` gets called.
"""
assert
isinstance
(
mon
,
TrainingMonitor
),
mon
assert
not
isinstance
(
self
.
_monitors
,
Monitors
),
\
"Cannot register more monitors after trainer was setup!"
if
not
self
.
is_chief
and
mon
.
chief_only
:
logger
.
warn
(
"Monitor {} is chief-only, skipped."
.
format
(
str
(
mon
)))
else
:
self
.
_register_callback
(
mon
)
def
run_step
(
self
):
"""
Defines what to do in one iteration. The default is:
...
...
@@ -154,8 +141,10 @@ class Trainer(object):
self
.
_register_callback
(
MaintainStepCounter
())
for
cb
in
callbacks
:
self
.
_register_callback
(
cb
)
for
cb
in
self
.
_callbacks
:
assert
not
isinstance
(
cb
,
TrainingMonitor
),
"Monitor cannot be pre-registered for now!"
for
m
in
monitors
:
self
.
_register_
monitor
(
m
)
self
.
_register_
callback
(
m
)
self
.
monitors
=
Monitors
(
monitors
)
self
.
_register_callback
(
self
.
monitors
)
# monitors is also a callback
...
...
@@ -283,8 +272,7 @@ class Trainer(object):
else
:
logger
.
warn
(
"You're calling new trainers with old trainer API!"
)
logger
.
warn
(
"Now it returns the old trainer for you, please switch to use new trainers soon!"
)
logger
.
warn
(
"'SomeTrainer(config, ...).train()' should be equivalent to "
"'launch_train_with_config(config, SomeTrainer(...))' in the new API."
)
logger
.
warn
(
"See https://github.com/ppwwyyxx/tensorpack/issues/458 for more information."
)
return
old_trainer
(
*
args
,
**
kwargs
)
else
:
return
super
(
Trainer
,
cls
)
.
__new__
(
cls
)
...
...
tensorpack/train/tower.py
View file @
b4085f77
...
...
@@ -123,13 +123,13 @@ class SingleCostTrainer(TowerTrainer):
get_opt_fn
=
memoized
(
get_opt_fn
)
self
.
set_tower_func
(
get_cost_fn
)
# TODO setup may want to register monitor as well??
input_callbacks
=
self
.
_setup_input
(
inputs_desc
,
input
)
train_callbacks
=
self
.
_setup_graph
(
input
,
get_cost_fn
,
get_opt_fn
)
internal_callbacks
=
input_callbacks
+
train_callbacks
for
cb
in
internal_callbacks
:
self
.
_register_callback
(
cb
)
# TODO register directly instead of return?
@
abstractmethod
def
_setup_graph
(
self
,
input
,
get_cost_fn
,
get_opt_fn
):
"""
...
...
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