Commit 2325f7ac authored by Yuxin Wu's avatar Yuxin Wu

Docs update

parent 65d0f0b9
...@@ -24,7 +24,7 @@ See some [examples](examples) to learn about the framework: ...@@ -24,7 +24,7 @@ See some [examples](examples) to learn about the framework:
+ [char-rnn for fun](examples/Char-RNN) + [char-rnn for fun](examples/Char-RNN)
+ [LSTM language model on PennTreebank](examples/PennTreebank) + [LSTM language model on PennTreebank](examples/PennTreebank)
The examples are not only for demonstration of the framework -- you can train them and reproduce the results in papers. Examples are not only for demonstration of the framework -- you can train them and reproduce the results in papers.
## Features: ## Features:
......
...@@ -15,10 +15,11 @@ A High Level Glance ...@@ -15,10 +15,11 @@ A High Level Glance
* You can use any TF-based symbolic function library to define a model, including * You can use any TF-based symbolic function library to define a model, including
a small set of models within tensorpack. ``ModelDesc`` is an interface to connect symbolic graph to tensorpack trainers. a small set of models within tensorpack. ``ModelDesc`` is an interface to connect symbolic graph to tensorpack trainers.
* tensorpack trainers manage the training loops for you. At the same time, you own the power of customization * tensorpack trainers manage the training loops for you.
through callbacks. They also include data parallel logic for multi-GPU or distributed training. They also include data parallel logic for multi-GPU or distributed training.
At the same time, you have the power of customization through callbacks.
* Callbacks are like ``tf.train.SessionRunHook``, or plugins, or extensions. During training, * Callbacks are like ``tf.train.SessionRunHook``, or plugins. During training,
everything you want to do other than the main iterations can be defined through callbacks and easily reused. everything you want to do other than the main iterations can be defined through callbacks and easily reused.
User Tutorials User Tutorials
......
...@@ -10,11 +10,10 @@ Training examples with __reproducible__ and meaningful performance. ...@@ -10,11 +10,10 @@ Training examples with __reproducible__ and meaningful performance.
## Vision: ## Vision:
+ [A tiny SVHN ConvNet with 97.8% accuracy](svhn-digit-convnet.py) + [A tiny SVHN ConvNet with 97.8% accuracy](svhn-digit-convnet.py)
+ [Multi-GPU training of ResNet on ImageNet](ResNet)
+ [DoReFa-Net: training binary / low-bitwidth CNN on ImageNet](DoReFa-Net) + [DoReFa-Net: training binary / low-bitwidth CNN on ImageNet](DoReFa-Net)
+ [Train ResNet for ImageNet/Cifar10/SVHN](ResNet)
+ [Generative Adversarial Network(GAN) variants](GAN), including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN. + [Generative Adversarial Network(GAN) variants](GAN), including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN.
+ [Inception-BN with 71% accuracy](Inception/inception-bn.py) + [Inception-BN and InceptionV3](Inception)
+ [InceptionV3 with 74% accuracy (similar to the official code)](Inception/inceptionv3.py)
+ [Fully-convolutional Network for Holistically-Nested Edge Detection(HED)](HED) + [Fully-convolutional Network for Holistically-Nested Edge Detection(HED)](HED)
+ [Spatial Transformer Networks on MNIST addition](SpatialTransformer) + [Spatial Transformer Networks on MNIST addition](SpatialTransformer)
+ [Visualize CNN saliency maps](Saliency) + [Visualize CNN saliency maps](Saliency)
......
...@@ -133,8 +133,8 @@ class Canvas(object): ...@@ -133,8 +133,8 @@ class Canvas(object):
self.channel), dtype='uint8') self.channel), dtype='uint8')
def draw_patches(self, plist): def draw_patches(self, plist):
assert self.nr_row * self.nr_col == len(plist), \ assert self.nr_row * self.nr_col >= len(plist), \
"{}*{} != {}".format(self.nr_row, self.nr_col, len(plist)) "{}*{} < {}".format(self.nr_row, self.nr_col, len(plist))
if self.channel == 3 and plist.shape[3] == 1: if self.channel == 3 and plist.shape[3] == 1:
plist = np.repeat(plist, 3, axis=3) plist = np.repeat(plist, 3, axis=3)
cur_row, cur_col = 0, 0 cur_row, cur_col = 0, 0
......
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