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
a8cb7e33
Commit
a8cb7e33
authored
Jul 13, 2017
by
Yuxin Wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move related stuff to graph_builder.
parent
3f5b9d51
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
214 additions
and
170 deletions
+214
-170
tensorpack/__init__.py
tensorpack/__init__.py
+7
-3
tensorpack/callbacks/inference_runner.py
tensorpack/callbacks/inference_runner.py
+3
-3
tensorpack/graph_builder/__init__.py
tensorpack/graph_builder/__init__.py
+31
-0
tensorpack/graph_builder/_utils.py
tensorpack/graph_builder/_utils.py
+0
-0
tensorpack/graph_builder/input_source.py
tensorpack/graph_builder/input_source.py
+4
-146
tensorpack/graph_builder/input_source_base.py
tensorpack/graph_builder/input_source_base.py
+149
-0
tensorpack/graph_builder/model_desc.py
tensorpack/graph_builder/model_desc.py
+3
-4
tensorpack/predict/config.py
tensorpack/predict/config.py
+1
-1
tensorpack/tfutils/export.py
tensorpack/tfutils/export.py
+5
-5
tensorpack/tfutils/tower.py
tensorpack/tfutils/tower.py
+6
-3
tensorpack/train/config.py
tensorpack/train/config.py
+2
-2
tensorpack/train/feedfree.py
tensorpack/train/feedfree.py
+1
-1
tensorpack/train/multigpu.py
tensorpack/train/multigpu.py
+1
-1
tensorpack/train/simple.py
tensorpack/train/simple.py
+1
-1
No files found.
tensorpack/__init__.py
View file @
a8cb7e33
...
@@ -4,10 +4,14 @@
...
@@ -4,10 +4,14 @@
from
tensorpack.libinfo
import
__version__
from
tensorpack.libinfo
import
__version__
from
tensorpack.train
import
*
from
tensorpack.models
import
*
from
tensorpack.models
import
*
from
tensorpack.dataflow
import
*
from
tensorpack.utils
import
*
from
tensorpack.utils
import
*
from
tensorpack.tfutils
import
*
from
tensorpack.callbacks
import
*
from
tensorpack.callbacks
import
*
from
tensorpack.dataflow
import
*
from
tensorpack.tfutils
import
*
from
tensorpack.train
import
*
from
tensorpack.graph_builder
import
*
from
tensorpack.predict
import
*
from
tensorpack.predict
import
*
tensorpack/callbacks/inference_runner.py
View file @
a8cb7e33
...
@@ -16,8 +16,8 @@ from ..utils import logger, get_tqdm_kwargs
...
@@ -16,8 +16,8 @@ from ..utils import logger, get_tqdm_kwargs
from
..dataflow
import
DataFlow
from
..dataflow
import
DataFlow
from
..tfutils.common
import
get_tensors_by_names
from
..tfutils.common
import
get_tensors_by_names
from
..tfutils.tower
import
TowerContext
from
..tfutils.tower
import
TowerContext
from
..
train
.input_source
import
(
from
..
graph_builder
.input_source
import
(
FeedInput
,
DataParallelFeedInput
,
FeedfreeInput
,
InputSource
)
FeedInput
,
DataParallelFeedInput
,
FeedfreeInput
)
from
..predict
import
PredictorTowerBuilder
from
..predict
import
PredictorTowerBuilder
from
.base
import
Callback
from
.base
import
Callback
...
@@ -190,7 +190,7 @@ class DataParallelInferenceRunner(InferenceRunnerBase):
...
@@ -190,7 +190,7 @@ class DataParallelInferenceRunner(InferenceRunnerBase):
if
isinstance
(
input
,
DataFlow
):
if
isinstance
(
input
,
DataFlow
):
tower_names
=
[
TowerContext
.
get_predict_tower_name
(
k
)
for
k
in
range
(
len
(
gpus
))]
tower_names
=
[
TowerContext
.
get_predict_tower_name
(
k
)
for
k
in
range
(
len
(
gpus
))]
input
=
DataParallelFeedInput
(
input
,
tower_names
)
input
=
DataParallelFeedInput
(
input
,
tower_names
)
assert
isinstance
(
input
,
InputSource
),
input
assert
isinstance
(
input
,
DataParallelFeedInput
),
input
super
(
DataParallelInferenceRunner
,
self
)
.
__init__
(
input
,
infs
)
super
(
DataParallelInferenceRunner
,
self
)
.
__init__
(
input
,
infs
)
self
.
_gpus
=
gpus
self
.
_gpus
=
gpus
...
...
tensorpack/graph_builder/__init__.py
0 → 100644
View file @
a8cb7e33
# -*- coding: UTF-8 -*-
# File: __init__.py
# Author: Yuxin Wu <ppwwyyxx@gmail.com>
from
pkgutil
import
iter_modules
import
os
import
os.path
__all__
=
[]
def
global_import
(
name
):
p
=
__import__
(
name
,
globals
(),
locals
(),
level
=
1
)
lst
=
p
.
__all__
if
'__all__'
in
dir
(
p
)
else
[]
del
globals
()[
name
]
for
k
in
lst
:
globals
()[
k
]
=
p
.
__dict__
[
k
]
__all__
.
append
(
k
)
_CURR_DIR
=
os
.
path
.
dirname
(
__file__
)
_SKIP
=
[]
for
_
,
module_name
,
_
in
iter_modules
(
[
_CURR_DIR
]):
srcpath
=
os
.
path
.
join
(
_CURR_DIR
,
module_name
+
'.py'
)
if
not
os
.
path
.
isfile
(
srcpath
):
continue
if
module_name
.
startswith
(
'_'
):
continue
if
module_name
not
in
_SKIP
:
global_import
(
module_name
)
tensorpack/
train/
utils.py
→
tensorpack/
graph_builder/_
utils.py
View file @
a8cb7e33
File moved
tensorpack/
train
/input_source.py
→
tensorpack/
graph_builder
/input_source.py
View file @
a8cb7e33
...
@@ -10,109 +10,22 @@ except ImportError:
...
@@ -10,109 +10,22 @@ except ImportError:
pass
pass
from
itertools
import
chain
from
itertools
import
chain
from
abc
import
ABCMeta
,
abstractmethod
import
six
from
six.moves
import
range
,
zip
from
six.moves
import
range
,
zip
from
.
utils
import
get_sublist_by_names
,
get_tensors_inputs
from
.
input_source_base
import
InputSource
from
..dataflow
import
DataFlow
,
RepeatedData
from
..dataflow
import
DataFlow
,
RepeatedData
from
..tfutils.summary
import
add_moving_summary
from
..tfutils.summary
import
add_moving_summary
from
..tfutils
import
get_op_tensor_name
from
..tfutils
import
get_op_tensor_name
from
..tfutils.tower
import
get_current_tower_context
from
..tfutils.tower
import
get_current_tower_context
from
..utils
import
logger
from
..utils
import
logger
from
..utils.concurrency
import
ShareSessionThread
from
..utils.concurrency
import
ShareSessionThread
from
..callbacks.concurrency
import
StartProcOrThread
from
..callbacks.base
import
Callback
from
..callbacks.base
import
Callback
__all__
=
[
'InputSource'
,
__all__
=
[
'FeedInput'
,
'DataParallelFeedInput'
,
'FeedInput'
,
'DataParallelFeedInput'
,
'FeedfreeInput'
,
'FeedfreeInput'
,
'QueueInput'
,
'BatchQueueInput'
,
'QueueInput'
,
'BatchQueueInput'
,
'ZMQInput'
,
'DummyConstantInput'
,
'TensorInput'
,
'ZMQInput'
,
'DummyConstantInput'
,
'TensorInput'
,
'StagingInputWrapper'
,
'remap_input_source'
]
'StagingInputWrapper'
]
@
six
.
add_metaclass
(
ABCMeta
)
class
InputSource
(
object
):
""" Base class for the abstract InputSource. """
def
get_input_tensors
(
self
):
"""
Returns:
list: A list of tensors corresponding to the inputs of the model,
used as input of :func:`build_graph`.
For non-placeholder tensors, should always create and return new tensors when called.
"""
return
self
.
_get_input_tensors
()
@
abstractmethod
def
_get_input_tensors
(
self
):
pass
def
setup
(
self
,
inputs_desc
):
"""
Args:
inputs_desc (list[InputDesc]): list of input desc
"""
self
.
_setup
(
inputs_desc
)
def
_setup
(
self
,
inputs_desc
):
pass
def
get_callbacks
(
self
):
"""
Returns:
list[Callback]: extra callbacks required by this InputSource.
"""
return
self
.
_get_callbacks
()
def
_get_callbacks
(
self
):
return
[]
def
reset_state
(
self
):
"""
Semantics of this method has not been well defined.
"""
# TODO
self
.
_reset_state
()
@
abstractmethod
def
_reset_state
(
self
):
pass
def
size
(
self
):
"""
Returns:
int: epoch size of the InputSource
"""
return
self
.
_size
()
def
_size
(
self
):
raise
NotImplementedError
()
class
ProxyInputSource
(
InputSource
):
"""
An InputSource which proxy every method to ``self._input``.
"""
def
__init__
(
self
,
input
):
assert
isinstance
(
input
,
InputSource
),
input
self
.
_input
=
input
def
_get_input_tensors
(
self
):
return
self
.
_input
.
get_input_tensors
()
def
_setup
(
self
,
inputs_desc
):
self
.
_input
.
setup
(
inputs_desc
)
def
_get_callbacks
(
self
):
return
self
.
_input
.
get_callbacks
()
def
_size
(
self
):
return
self
.
_input
.
size
()
def
_reset_state
(
self
):
self
.
_input
.
reset_state
()
class
FeedInput
(
InputSource
):
class
FeedInput
(
InputSource
):
...
@@ -299,6 +212,7 @@ class QueueInput(FeedfreeInput):
...
@@ -299,6 +212,7 @@ class QueueInput(FeedfreeInput):
self
.
thread
=
EnqueueThread
(
self
.
queue
,
self
.
ds
,
self
.
_input_placehdrs
)
self
.
thread
=
EnqueueThread
(
self
.
queue
,
self
.
ds
,
self
.
_input_placehdrs
)
def
_get_callbacks
(
self
):
def
_get_callbacks
(
self
):
from
..callbacks.concurrency
import
StartProcOrThread
cb
=
StartProcOrThread
(
self
.
thread
)
cb
=
StartProcOrThread
(
self
.
thread
)
cb
.
chief_only
=
False
cb
.
chief_only
=
False
return
[
cb
]
return
[
cb
]
...
@@ -542,59 +456,3 @@ class StagingInputWrapper(FeedfreeInput):
...
@@ -542,59 +456,3 @@ class StagingInputWrapper(FeedfreeInput):
def
_get_unstage_op
(
self
):
def
_get_unstage_op
(
self
):
all_outputs
=
list
(
chain
.
from_iterable
(
self
.
_unstage_ops
))
all_outputs
=
list
(
chain
.
from_iterable
(
self
.
_unstage_ops
))
return
tf
.
group
(
*
all_outputs
)
return
tf
.
group
(
*
all_outputs
)
def
remap_input_source
(
input
,
names
):
"""
When you have some :class:`InputSource` which doesn't match the inputs in
your :class:`ModelDesc`, use `RemapInputSource`.
It produces placeholders for all the inputs in your model,
except that the corresponding ones are replaced with the tensor produced
by the given :class:`InputSource`.
Args:
input(InputSource): a :class:`InputSource`, whose tensors will get mapped.
names(list[str]): list of input names corresponding to the tensors
produced by ``input``.
Returns:
InputSource:
Examples:
.. code-block:: python
input1 = QueueInput(ds)
# assume ds produces 'image' and 'label', but the graph takes more
# inputs for some reasons, or takes inputs of a different order:
inputs_desc = [InputDesc(tf.float32, (None,10), 'score'),
InputDesc(tf.float32, (None,20,20,3), 'label'),
InputDesc(tf.int32, (None,), 'image') ]
input2 = remap_input_source(input1, ['image', 'label'])
input2.setup(inputs_desc)
# now, input2.get_input_tensors() will return a placeholder for 'score',
# plus the tensors returned by input1.get_input_tensors()
"""
def
__init__
(
self
,
input
,
names
):
ProxyInputSource
.
__init__
(
self
,
input
)
assert
isinstance
(
names
,
(
list
,
tuple
)),
names
self
.
_names
=
tuple
(
names
)
def
_setup
(
self
,
inputs
):
self
.
_all_placehdrs
=
[
v
.
build_placeholder_reuse
()
for
v
in
inputs
]
inputs_subset
=
get_sublist_by_names
(
inputs
,
self
.
_names
)
self
.
_input
.
setup
(
inputs_subset
)
def
_get_input_tensors
(
self
):
ret
=
self
.
_input
.
get_input_tensors
()
assert
len
(
ret
)
==
len
(
self
.
_names
)
return
get_tensors_inputs
(
self
.
_all_placehdrs
,
ret
,
self
.
_names
)
oldcls
=
type
(
input
)
# inherit oldcls so that type check in various places would work
cls
=
type
(
'Remapped'
+
oldcls
.
__name__
,
(
ProxyInputSource
,
oldcls
),
{
'__init__'
:
__init__
,
'_setup'
:
_setup
,
'_get_input_tensors'
:
_get_input_tensors
})
return
cls
(
input
,
names
)
tensorpack/graph_builder/input_source_base.py
0 → 100644
View file @
a8cb7e33
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File: input_source_base.py
from
abc
import
ABCMeta
,
abstractmethod
import
six
from
._utils
import
get_sublist_by_names
,
get_tensors_inputs
__all__
=
[
'InputSource'
,
'remap_input_source'
]
@
six
.
add_metaclass
(
ABCMeta
)
class
InputSource
(
object
):
""" Base class for the abstract InputSource. """
def
get_input_tensors
(
self
):
"""
Returns:
list: A list of tensors corresponding to the inputs of the model,
used as input of :func:`build_graph`.
For non-placeholder tensors, should always create and return new tensors when called.
"""
return
self
.
_get_input_tensors
()
@
abstractmethod
def
_get_input_tensors
(
self
):
pass
def
setup
(
self
,
inputs_desc
):
"""
Args:
inputs_desc (list[InputDesc]): list of input desc
"""
self
.
_setup
(
inputs_desc
)
def
_setup
(
self
,
inputs_desc
):
pass
def
get_callbacks
(
self
):
"""
Returns:
list[Callback]: extra callbacks required by this InputSource.
"""
return
self
.
_get_callbacks
()
def
_get_callbacks
(
self
):
return
[]
def
reset_state
(
self
):
"""
Semantics of this method has not been well defined.
"""
# TODO
self
.
_reset_state
()
@
abstractmethod
def
_reset_state
(
self
):
pass
def
size
(
self
):
"""
Returns:
int: epoch size of the InputSource
"""
return
self
.
_size
()
def
_size
(
self
):
raise
NotImplementedError
()
class
ProxyInputSource
(
InputSource
):
"""
An InputSource which proxy every method to ``self._input``.
"""
def
__init__
(
self
,
input
):
assert
isinstance
(
input
,
InputSource
),
input
self
.
_input
=
input
def
_get_input_tensors
(
self
):
return
self
.
_input
.
get_input_tensors
()
def
_setup
(
self
,
inputs_desc
):
self
.
_input
.
setup
(
inputs_desc
)
def
_get_callbacks
(
self
):
return
self
.
_input
.
get_callbacks
()
def
_size
(
self
):
return
self
.
_input
.
size
()
def
_reset_state
(
self
):
self
.
_input
.
reset_state
()
def
remap_input_source
(
input
,
names
):
"""
When you have some :class:`InputSource` which doesn't match the inputs in
your :class:`ModelDesc`, use `RemapInputSource`.
It produces placeholders for all the inputs in your model,
except that the corresponding ones are replaced with the tensor produced
by the given :class:`InputSource`.
Args:
input(InputSource): a :class:`InputSource`, whose tensors will get mapped.
names(list[str]): list of input names corresponding to the tensors
produced by ``input``.
Returns:
InputSource:
Examples:
.. code-block:: python
input1 = QueueInput(ds)
# assume ds produces 'image' and 'label', but the graph takes more
# inputs for some reasons, or takes inputs of a different order:
inputs_desc = [InputDesc(tf.float32, (None,10), 'score'),
InputDesc(tf.float32, (None,20,20,3), 'label'),
InputDesc(tf.int32, (None,), 'image') ]
input2 = remap_input_source(input1, ['image', 'label'])
input2.setup(inputs_desc)
# now, input2.get_input_tensors() will return a placeholder for 'score',
# plus the tensors returned by input1.get_input_tensors()
"""
def
__init__
(
self
,
input
,
names
):
ProxyInputSource
.
__init__
(
self
,
input
)
assert
isinstance
(
names
,
(
list
,
tuple
)),
names
self
.
_names
=
tuple
(
names
)
def
_setup
(
self
,
inputs
):
self
.
_all_placehdrs
=
[
v
.
build_placeholder_reuse
()
for
v
in
inputs
]
inputs_subset
=
get_sublist_by_names
(
inputs
,
self
.
_names
)
self
.
_input
.
setup
(
inputs_subset
)
def
_get_input_tensors
(
self
):
ret
=
self
.
_input
.
get_input_tensors
()
assert
len
(
ret
)
==
len
(
self
.
_names
)
return
get_tensors_inputs
(
self
.
_all_placehdrs
,
ret
,
self
.
_names
)
oldcls
=
type
(
input
)
# inherit oldcls so that type check in various places would work
cls
=
type
(
'Remapped'
+
oldcls
.
__name__
,
(
ProxyInputSource
,
oldcls
),
{
'__init__'
:
__init__
,
'_setup'
:
_setup
,
'_get_input_tensors'
:
_get_input_tensors
})
return
cls
(
input
,
names
)
tensorpack/
models
/model_desc.py
→
tensorpack/
graph_builder
/model_desc.py
View file @
a8cb7e33
...
@@ -9,9 +9,8 @@ import tensorflow as tf
...
@@ -9,9 +9,8 @@ import tensorflow as tf
import
six
import
six
from
..utils.argtools
import
memoized
from
..utils.argtools
import
memoized
# TODO sort out import issues
from
.input_source_base
import
InputSource
# from ..train.input_source import InputSource
from
..models.regularize
import
regularize_cost_from_collection
from
.regularize
import
regularize_cost_from_collection
__all__
=
[
'InputDesc'
,
'ModelDesc'
]
__all__
=
[
'InputDesc'
,
'ModelDesc'
]
...
@@ -141,7 +140,7 @@ class ModelDesc(object):
...
@@ -141,7 +140,7 @@ class ModelDesc(object):
inputs (list[tf.Tensor] or InputSource): a list of tensors, or an :class:`InputSource`,
inputs (list[tf.Tensor] or InputSource): a list of tensors, or an :class:`InputSource`,
that match the list of :class:`InputDesc` defined by ``_get_inputs``.
that match the list of :class:`InputDesc` defined by ``_get_inputs``.
"""
"""
if
not
isinstance
(
inputs
,
(
list
,
tuple
)
):
if
isinstance
(
inputs
,
InputSource
):
inputs
=
inputs
.
get_input_tensors
()
inputs
=
inputs
.
get_input_tensors
()
assert
len
(
inputs
)
==
len
(
self
.
get_inputs_desc
()),
\
assert
len
(
inputs
)
==
len
(
self
.
get_inputs_desc
()),
\
"Number of inputs passed to the graph != number of inputs defined "
\
"Number of inputs passed to the graph != number of inputs defined "
\
...
...
tensorpack/predict/config.py
View file @
a8cb7e33
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
import
tensorflow
as
tf
import
tensorflow
as
tf
import
six
import
six
from
..
models
import
ModelDesc
from
..
graph_builder
import
ModelDesc
from
..utils.develop
import
log_deprecated
from
..utils.develop
import
log_deprecated
from
..tfutils
import
get_default_sess_config
from
..tfutils
import
get_default_sess_config
from
..tfutils.sessinit
import
SessionInit
,
JustCurrentSession
from
..tfutils.sessinit
import
SessionInit
,
JustCurrentSession
...
...
tensorpack/tfutils/export.py
View file @
a8cb7e33
# -*- coding: UTF-8 -*-
# -*- coding: UTF-8 -*-
# File: export
er
.py
# File: export.py
# Author: Patrick Wieschollek <mail@patwie.com>
# Author: Patrick Wieschollek <mail@patwie.com>
"""
"""
...
@@ -8,9 +8,9 @@ This simplifies the process of exporting a model for TensorFlow serving.
...
@@ -8,9 +8,9 @@ This simplifies the process of exporting a model for TensorFlow serving.
"""
"""
import
tensorflow
as
tf
import
tensorflow
as
tf
from
tensorpack
.utils
import
logger
from
.
.utils
import
logger
from
tensorpack.models
import
ModelDesc
from
..graph_builder.model_desc
import
ModelDesc
from
tensorpack
.tfutils
import
TowerContext
,
sessinit
from
.
.tfutils
import
TowerContext
,
sessinit
__all__
=
[
'ModelExport'
]
__all__
=
[
'ModelExport'
]
...
@@ -49,7 +49,7 @@ class ModelExport(object):
...
@@ -49,7 +49,7 @@ class ModelExport(object):
prediction = sess.run(prediction, {lowres: ...})[0]
prediction = sess.run(prediction, {lowres: ...})[0]
Args:
Args:
model (ModelDesc
r
): the model description which should be exported
model (ModelDesc): the model description which should be exported
input_names (list(str)): names of input tensors
input_names (list(str)): names of input tensors
output_names (list(str)): names of output tensors
output_names (list(str)): names of output tensors
"""
"""
...
...
tensorpack/tfutils/tower.py
View file @
a8cb7e33
...
@@ -31,8 +31,10 @@ class TowerContext(object):
...
@@ -31,8 +31,10 @@ class TowerContext(object):
self
.
_is_training
=
bool
(
is_training
)
self
.
_is_training
=
bool
(
is_training
)
self
.
_index
=
int
(
index
)
self
.
_index
=
int
(
index
)
self
.
_vs_name
=
str
(
vs_name
)
self
.
_vs_name
=
vs_name
if
self
.
has_own_variables
:
assert
not
tf
.
get_variable_scope
()
.
reuse
,
"reuse=True in tower {}!"
.
format
(
tower_name
)
@
property
@
property
def
is_main_training_tower
(
self
):
def
is_main_training_tower
(
self
):
...
@@ -48,14 +50,15 @@ class TowerContext(object):
...
@@ -48,14 +50,15 @@ class TowerContext(object):
@
property
@
property
def
has_own_variables
(
self
):
def
has_own_variables
(
self
):
"""
Whether this tower is supposed to have its own variables.
"""
return
self
.
is_main_training_tower
or
len
(
self
.
_vs_name
)
>
0
return
self
.
is_main_training_tower
or
len
(
self
.
_vs_name
)
>
0
@
property
@
property
def
name
(
self
):
def
name
(
self
):
return
self
.
_name
return
self
.
_name
# TODO remove this and add something like `tower.variables`
# variable_scope name
@
property
@
property
def
vs_name
(
self
):
def
vs_name
(
self
):
return
self
.
_vs_name
return
self
.
_vs_name
...
...
tensorpack/train/config.py
View file @
a8cb7e33
...
@@ -7,13 +7,13 @@ from ..callbacks import (
...
@@ -7,13 +7,13 @@ from ..callbacks import (
ProgressBar
,
MergeAllSummaries
,
ProgressBar
,
MergeAllSummaries
,
TFEventWriter
,
JSONWriter
,
ScalarPrinter
,
RunUpdateOps
)
TFEventWriter
,
JSONWriter
,
ScalarPrinter
,
RunUpdateOps
)
from
..dataflow.base
import
DataFlow
from
..dataflow.base
import
DataFlow
from
..
models
import
ModelDesc
from
..
graph_builder.model_desc
import
ModelDesc
from
..utils
import
logger
from
..utils
import
logger
from
..utils.develop
import
log_deprecated
from
..utils.develop
import
log_deprecated
from
..tfutils
import
(
JustCurrentSession
,
from
..tfutils
import
(
JustCurrentSession
,
get_default_sess_config
,
SessionInit
)
get_default_sess_config
,
SessionInit
)
from
..tfutils.sesscreate
import
NewSessionCreator
from
..tfutils.sesscreate
import
NewSessionCreator
from
.
input_sourc
e
import
InputSource
from
.
.graph_builder.input_source_bas
e
import
InputSource
__all__
=
[
'TrainConfig'
]
__all__
=
[
'TrainConfig'
]
...
...
tensorpack/train/feedfree.py
View file @
a8cb7e33
...
@@ -9,7 +9,7 @@ from six.moves import zip
...
@@ -9,7 +9,7 @@ from six.moves import zip
from
..utils
import
logger
from
..utils
import
logger
from
..tfutils.gradproc
import
FilterNoneGrad
from
..tfutils.gradproc
import
FilterNoneGrad
from
..tfutils.tower
import
TowerContext
,
get_current_tower_context
from
..tfutils.tower
import
TowerContext
,
get_current_tower_context
from
.input_source
import
QueueInput
,
FeedfreeInput
from
.
.graph_builder.
input_source
import
QueueInput
,
FeedfreeInput
from
.base
import
Trainer
from
.base
import
Trainer
...
...
tensorpack/train/multigpu.py
View file @
a8cb7e33
...
@@ -17,7 +17,7 @@ from ..callbacks.graph import RunOp
...
@@ -17,7 +17,7 @@ from ..callbacks.graph import RunOp
from
.base
import
Trainer
from
.base
import
Trainer
from
.feedfree
import
SingleCostFeedfreeTrainer
from
.feedfree
import
SingleCostFeedfreeTrainer
from
.input_source
import
QueueInput
,
StagingInputWrapper
,
DummyConstantInput
from
.
.graph_builder.
input_source
import
QueueInput
,
StagingInputWrapper
,
DummyConstantInput
__all__
=
[
'MultiGPUTrainerBase'
,
'SyncMultiGPUTrainer'
,
__all__
=
[
'MultiGPUTrainerBase'
,
'SyncMultiGPUTrainer'
,
'AsyncMultiGPUTrainer'
,
'LeastLoadedDeviceSetter'
,
'AsyncMultiGPUTrainer'
,
'LeastLoadedDeviceSetter'
,
...
...
tensorpack/train/simple.py
View file @
a8cb7e33
...
@@ -7,7 +7,7 @@ from .base import Trainer
...
@@ -7,7 +7,7 @@ from .base import Trainer
from
..utils
import
logger
from
..utils
import
logger
from
..tfutils
import
TowerContext
from
..tfutils
import
TowerContext
from
.input_source
import
FeedInput
from
.
.graph_builder.
input_source
import
FeedInput
__all__
=
[
'SimpleTrainer'
]
__all__
=
[
'SimpleTrainer'
]
...
...
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