Skip to content

Commit

Permalink
better log & h5py
Browse files Browse the repository at this point in the history
  • Loading branch information
ppwwyyxx committed Apr 13, 2016
1 parent d6d0638 commit e90acf2
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 27 deletions.
1 change: 1 addition & 0 deletions examples/mnist_convnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from tensorpack.tfutils import *
from tensorpack.callbacks import *
from tensorpack.dataflow import *
from IPython import embed; embed()

"""
MNIST ConvNet example.
Expand Down
7 changes: 6 additions & 1 deletion tensorpack/dataflow/dataset/ilsvrc.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@
CAFFE_ILSVRC12_URL = "http://dl.caffe.berkeleyvision.org/caffe_ilsvrc12.tar.gz"
CAFFE_PROTO_URL = "https://github.com/BVLC/caffe/raw/master/src/caffe/proto/caffe.proto"

"""
cd train
for i in *.tar; do dir=${i%.tar}; echo $dir; mkdir -p $dir; tar xf $i -C $dir; done
"""

class ILSVRCMeta(object):
"""
Provide metadata for ILSVRC dataset.
Expand Down Expand Up @@ -119,7 +124,7 @@ def get_data(self):

if __name__ == '__main__':
meta = ILSVRCMeta()
print meta.get_per_pixel_mean()
print(meta.get_per_pixel_mean())
#print(meta.get_synset_words_1000())

#ds = ILSVRC12('/home/wyx/data/imagenet', 'val')
Expand Down
9 changes: 5 additions & 4 deletions tensorpack/dataflow/format.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@
try:
import h5py
except ImportError:
logger.error("Error in `import h5py`. HDF5Data cannot function.")
logger.error("Error in 'import h5py'. HDF5Data won't be imported.")
__all__ = []
else:
__all__ = ['HDF5Data']


"""
Adapter for different data format.
Adapters for different data format.
"""

__all__ = ['HDF5Data']

class HDF5Data(DataFlow):
"""
Zip data from different paths in an HDF5 file. Will load all data into memory.
Expand Down
28 changes: 17 additions & 11 deletions tensorpack/models/_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,37 @@ def wrapper(func):
def wrapped_func(*args, **kwargs):
name = args[0]
assert isinstance(name, six.string_types), \
'name must be the first argument. Args: {}'.format(str(args))
'name must be the first argument. Args: {}'.format(args)
args = args[1:]
do_summary = kwargs.pop(
'summary_activation', summary_activation)
inputs = args[0]

# update from current argument scope
actual_args = get_arg_scope()[func.__name__]
actual_args.update(kwargs)

with tf.variable_scope(name) as scope:
do_log_shape = log_shape and scope.name not in _layer_logged
do_summary = do_summary and scope.name not in _layer_logged
if do_log_shape:
logger.info("{} input: {}".format(scope.name, get_shape_str(inputs)))

# run the actual function
outputs = func(*args, **actual_args)
if log_shape and scope.name not in _layer_logged:

if do_log_shape:
# log shape info and add activation
logger.info("{} input: {}".format(
scope.name, get_shape_str(inputs)))
logger.info("{} output: {}".format(
scope.name, get_shape_str(outputs)))

if do_summary:
if isinstance(outputs, list):
for x in outputs:
add_activation_summary(x, scope.name)
else:
add_activation_summary(outputs, scope.name)
_layer_logged.add(scope.name)

if do_summary:
if isinstance(outputs, list):
for x in outputs:
add_activation_summary(x, scope.name)
else:
add_activation_summary(outputs, scope.name)
return outputs
wrapped_func.f = func # attribute to access the underlining function object
return wrapped_func
Expand Down
11 changes: 0 additions & 11 deletions usercustomize.py

This file was deleted.

0 comments on commit e90acf2

Please sign in to comment.