Commit e90acf27 authored by Yuxin Wu's avatar Yuxin Wu

better log & h5py

parent d6d06389
......@@ -18,6 +18,7 @@ from tensorpack.tfutils.summary import *
from tensorpack.tfutils import *
from tensorpack.callbacks import *
from tensorpack.dataflow import *
from IPython import embed; embed()
"""
MNIST ConvNet example.
......
......@@ -16,6 +16,11 @@ __all__ = ['ILSVRCMeta', 'ILSVRC12']
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.
......@@ -119,7 +124,7 @@ class ILSVRC12(DataFlow):
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')
......
......@@ -11,15 +11,16 @@ from six.moves import range
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.
......
......@@ -27,23 +27,30 @@ def layer_register(summary_activation=False, log_shape=True):
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)))
_layer_logged.add(scope.name)
if do_summary:
if isinstance(outputs, list):
......@@ -51,7 +58,6 @@ def layer_register(summary_activation=False, log_shape=True):
add_activation_summary(x, scope.name)
else:
add_activation_summary(outputs, scope.name)
_layer_logged.add(scope.name)
return outputs
wrapped_func.f = func # attribute to access the underlining function object
return wrapped_func
......
#!/usr/bin/env python2
# -*- coding: UTF-8 -*-
# File: usercustomize.py
# Author: Yuxin Wu <ppwwyyxx@gmail.com>
# use user-space protobuf
#import sys, os
#if not sys.version_info >= (3, 0):
#site = os.path.join(os.environ['HOME'],
#'.local/lib/python2.7/site-packages')
#sys.path.insert(0, site)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment