Commit 326f335e authored by Yuxin Wu's avatar Yuxin Wu

make dataflow.dataset a lazy module (#363)

parent b31dd61a
...@@ -9,6 +9,7 @@ import sys ...@@ -9,6 +9,7 @@ import sys
import argparse import argparse
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
import tensorflow as tf import tensorflow as tf
from disturb import DisturbLabel from disturb import DisturbLabel
......
...@@ -9,9 +9,7 @@ import os ...@@ -9,9 +9,7 @@ import os
import imp import imp
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.dataflow import dataset
from tensorpack.tfutils.summary import *
import tensorflow as tf
from disturb import DisturbLabel from disturb import DisturbLabel
......
...@@ -15,6 +15,7 @@ from tensorpack import * ...@@ -15,6 +15,7 @@ from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.tfutils.varreplace import remap_variables from tensorpack.tfutils.varreplace import remap_variables
from tensorpack.dataflow import dataset
from dorefa import get_dorefa from dorefa import get_dorefa
""" """
......
...@@ -10,8 +10,8 @@ import os ...@@ -10,8 +10,8 @@ import os
import sys import sys
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import *
from tensorpack.utils.stats import RatioCounter from tensorpack.utils.stats import RatioCounter
from tensorpack.tfutils.varreplace import remap_variables from tensorpack.tfutils.varreplace import remap_variables
from dorefa import get_dorefa from dorefa import get_dorefa
......
...@@ -10,6 +10,7 @@ import os ...@@ -10,6 +10,7 @@ import os
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
from tensorpack.tfutils.varreplace import remap_variables from tensorpack.tfutils.varreplace import remap_variables
import tensorflow as tf import tensorflow as tf
......
...@@ -14,6 +14,7 @@ from tensorpack import * ...@@ -14,6 +14,7 @@ from tensorpack import *
from tensorpack.utils import logger from tensorpack.utils import logger
from tensorpack.utils.viz import * from tensorpack.utils.viz import *
from tensorpack.utils.argtools import shape2d, shape4d from tensorpack.utils.argtools import shape2d, shape4d
from tensorpack.dataflow import dataset
BATCH = 32 BATCH = 32
SHAPE = 64 SHAPE = 64
......
...@@ -14,6 +14,7 @@ from tensorpack import * ...@@ -14,6 +14,7 @@ from tensorpack import *
from tensorpack.utils.viz import * from tensorpack.utils.viz import *
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope
from tensorpack.dataflow import dataset
from GAN import GANTrainer, RandomZData, GANModelDesc from GAN import GANTrainer, RandomZData, GANModelDesc
""" """
......
...@@ -17,6 +17,7 @@ from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope ...@@ -17,6 +17,7 @@ from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope
from tensorpack.tfutils import optimizer, summary from tensorpack.tfutils import optimizer, summary
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
from tensorpack.tfutils.gradproc import ScaleGradient, CheckGradient from tensorpack.tfutils.gradproc import ScaleGradient, CheckGradient
from tensorpack.dataflow import dataset
from GAN import GANTrainer, GANModelDesc from GAN import GANTrainer, GANModelDesc
""" """
......
...@@ -13,6 +13,7 @@ import sys ...@@ -13,6 +13,7 @@ import sys
from tensorpack import * from tensorpack import *
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
from tensorpack.dataflow import dataset
from tensorpack.tfutils import optimizer from tensorpack.tfutils import optimizer
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
......
...@@ -12,6 +12,7 @@ import tensorflow as tf ...@@ -12,6 +12,7 @@ import tensorflow as tf
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
TOTAL_BATCH_SIZE = 64 * 6 TOTAL_BATCH_SIZE = 64 * 6
......
...@@ -13,6 +13,7 @@ import multiprocessing ...@@ -13,6 +13,7 @@ import multiprocessing
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
""" """
InceptionV3 on ILSVRC12. InceptionV3 on ILSVRC12.
......
...@@ -10,6 +10,7 @@ import os ...@@ -10,6 +10,7 @@ import os
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
import tensorflow as tf import tensorflow as tf
from tensorflow.contrib.layers import variance_scaling_initializer from tensorflow.contrib.layers import variance_scaling_initializer
......
...@@ -11,6 +11,7 @@ import multiprocessing ...@@ -11,6 +11,7 @@ import multiprocessing
import tensorflow as tf import tensorflow as tf
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
......
...@@ -13,6 +13,7 @@ import tensorflow as tf ...@@ -13,6 +13,7 @@ import tensorflow as tf
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
from imagenet_resnet_utils import ( from imagenet_resnet_utils import (
fbresnet_augmentor, resnet_basicblock, resnet_bottleneck, resnet_backbone, fbresnet_augmentor, resnet_basicblock, resnet_bottleneck, resnet_backbone,
......
...@@ -19,7 +19,7 @@ from tensorpack.utils import logger ...@@ -19,7 +19,7 @@ from tensorpack.utils import logger
from tensorpack.utils.stats import RatioCounter from tensorpack.utils.stats import RatioCounter
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow.dataset import ILSVRCMeta from tensorpack.dataflow.dataset import ILSVRCMeta, ILSVRC12
MODEL_DEPTH = None MODEL_DEPTH = None
...@@ -134,7 +134,7 @@ def run_test(params, input): ...@@ -134,7 +134,7 @@ def run_test(params, input):
def eval_on_ILSVRC12(params, data_dir): def eval_on_ILSVRC12(params, data_dir):
ds = dataset.ILSVRC12(data_dir, 'val', shuffle=False, dir_structure='train') ds = ILSVRC12(data_dir, 'val', shuffle=False, dir_structure='train')
ds = AugmentImageComponent(ds, get_inference_augmentor()) ds = AugmentImageComponent(ds, get_inference_augmentor())
ds = BatchData(ds, 128, remainder=True) ds = BatchData(ds, 128, remainder=True)
pred_config = PredictConfig( pred_config = PredictConfig(
......
...@@ -10,6 +10,7 @@ import os ...@@ -10,6 +10,7 @@ import os
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import * from tensorpack.tfutils.symbolic_functions import *
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
import tensorflow as tf import tensorflow as tf
""" """
......
...@@ -36,14 +36,14 @@ Left to right: ...@@ -36,14 +36,14 @@ Left to right:
Usage: Usage:
1. Fine tune or retrain the ResNet: 1. Fine tune or retrain the ResNet:
```bash ```bash
./CAM-resnet.py --data /path/to/imagenet [--load ImageNet-ResNet18.npy] [--gpu 0,1,2,3] ./CAM-resnet.py --data /path/to/imagenet [--load ImageNet-ResNet18.npz] [--gpu 0,1,2,3]
``` ```
Pretrained and fine-tuned ResNet can be downloaded Pretrained and fine-tuned ResNet can be downloaded
[here](https://drive.google.com/open?id=0B9IPQTvr2BBkTXBlZmh1cmlnQ0k) and [here](https://drive.google.com/open?id=0B9IPQTvr2BBkQk9qcmtGSERlNUk). [here](https://drive.google.com/open?id=0B9IPQTvr2BBkTXBlZmh1cmlnQ0k) and [here](https://drive.google.com/open?id=0B9IPQTvr2BBkQk9qcmtGSERlNUk).
2. Generate CAM on ImageNet validation set: 2. Generate CAM on ImageNet validation set:
```bash ```bash
./CAM-resnet.py --data /path/to/imagenet --load ImageNet-ResNet18-2xGAP.npy --cam ./CAM-resnet.py --data /path/to/imagenet --load ImageNet-ResNet18-2xGAP.npz --cam
``` ```
<p align="center"> <img src="./CAM-demo.jpg" width="900"> </p> <p align="center"> <img src="./CAM-demo.jpg" width="900"> </p>
...@@ -11,6 +11,7 @@ import sys ...@@ -11,6 +11,7 @@ import sys
import argparse import argparse
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
from tensorpack.tfutils import sesscreate, optimizer, summary from tensorpack.tfutils import sesscreate, optimizer, summary
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
......
...@@ -10,6 +10,7 @@ import os ...@@ -10,6 +10,7 @@ import os
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
from tensorpack.dataflow import dataset
from tensorpack.utils.gpu import get_nr_gpu from tensorpack.utils.gpu import get_nr_gpu
""" """
......
...@@ -6,6 +6,7 @@ import numpy as np ...@@ -6,6 +6,7 @@ import numpy as np
import os import os
import sys import sys
import argparse import argparse
import tensorflow as tf
""" """
MNIST ConvNet example. MNIST ConvNet example.
about 0.6% validation error after 30 epochs. about 0.6% validation error after 30 epochs.
...@@ -14,7 +15,7 @@ about 0.6% validation error after 30 epochs. ...@@ -14,7 +15,7 @@ about 0.6% validation error after 30 epochs.
# Just import everything into current namespace # Just import everything into current namespace
from tensorpack import * from tensorpack import *
from tensorpack.tfutils import summary from tensorpack.tfutils import summary
import tensorflow as tf from tensorpack.dataflow import dataset
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
IMAGE_SIZE = 28 IMAGE_SIZE = 28
......
...@@ -21,6 +21,7 @@ This way you can define models in Keras-style, and benefit from the more efficei ...@@ -21,6 +21,7 @@ This way you can define models in Keras-style, and benefit from the more efficei
""" """
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
from tensorpack.utils.argtools import memoized from tensorpack.utils.argtools import memoized
IMAGE_SIZE = 28 IMAGE_SIZE = 28
......
...@@ -15,6 +15,7 @@ the only differences are: ...@@ -15,6 +15,7 @@ the only differences are:
""" """
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
import tensorflow as tf import tensorflow as tf
import tensorflow.contrib.slim as slim import tensorflow.contrib.slim as slim
......
...@@ -12,6 +12,7 @@ MNIST ConvNet example with weights/activations visualization. ...@@ -12,6 +12,7 @@ MNIST ConvNet example with weights/activations visualization.
""" """
from tensorpack import * from tensorpack import *
from tensorpack.dataflow import dataset
import tensorflow as tf import tensorflow as tf
import tensorpack.tfutils.symbolic_functions as symbf import tensorpack.tfutils.symbolic_functions as symbf
......
...@@ -9,6 +9,7 @@ import os ...@@ -9,6 +9,7 @@ import os
from tensorpack import * from tensorpack import *
from tensorpack.tfutils.symbolic_functions import prediction_incorrect from tensorpack.tfutils.symbolic_functions import prediction_incorrect
from tensorpack.dataflow import dataset
from tensorpack.tfutils.summary import * from tensorpack.tfutils.summary import *
import tensorflow as tf import tensorflow as tf
......
...@@ -6,10 +6,7 @@ from pkgutil import iter_modules ...@@ -6,10 +6,7 @@ from pkgutil import iter_modules
import os import os
import os.path import os.path
from . import dataset __all__ = []
from . import imgaug
__all__ = ['dataset', 'imgaug', 'dftools']
def _global_import(name): def _global_import(name):
...@@ -21,9 +18,22 @@ def _global_import(name): ...@@ -21,9 +18,22 @@ def _global_import(name):
__all__.append(k) __all__.append(k)
__SKIP = ['dftools', 'dataset', 'imgaug'] __SKIP = set(['dftools', 'dataset', 'imgaug'])
for _, module_name, __ in iter_modules( for _, module_name, __ in iter_modules(
[os.path.dirname(__file__)]): [os.path.dirname(__file__)]):
if not module_name.startswith('_') and \ if not module_name.startswith('_') and \
module_name not in __SKIP: module_name not in __SKIP:
_global_import(module_name) _global_import(module_name)
class _LazyModule(object):
def __init__(self, modname):
self._modname = modname
def __getattr__(self, name):
dataset = __import__(self._modname, globals(), locals(), [name], 1)
return getattr(dataset, name)
dataset = _LazyModule('dataset')
__all__.extend(['imgaug', 'dftools', 'dataset'])
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