wuxuedaifu / ConvolutionBox

ConvolutionBox is a convenient tool for convolution visualization, whicn can help you with experiments!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ConvolutionBox


ConvolutionBox is a convenient tool for convolution visualization, whicn can help you design the architecture of the CNN.
License Passing Contributions welcome


Introduction

Different tasks, different data, of course, different models.In orader to establish the best CNN architecture, we can use the NAS to find it, but it takes much time and the result is instable.Most of the time, we just need to try different moudle like 'Inception', 'Continuous convolution' and so on.Tensorboard is best visualization API that I've ever used, but it always need a complete network and generate log, which is convenient for training but not for designing, because sometimes we just need to know the capability of the module.So I build the ConvolutionBox, which can figuratively described as a 'Convolution calculator', and it will help you rapidly get the behavior of moudle.Hope you will enjoy that!

Language & Frame & Browser

Language:

Python3 + HTML + JavaScript

Frame:

Flask 1.0.2 + Echarts 4.x

Browser

Gooogle Chrome is recommended

Usage

Convolution

The "Convlution" moudle will accept an image, then perform four consecutive convolution operations and display the feature maps obtained from each operation.At last, it will generate the gray histograms of the first three convolution features.Before you click the "Go", just make sure all the parameters are filled in or you'll get 'Internel server error'.

Arg

  • Filter Size: An reasonable positive integer.

  • Filter Strides: An reasonable positive integer.

  • Padding: Just make a descion, and 'SAME' is recommended.

Attention:

All the feature maps you generated will be saved in the 'static/images/conv'

In future versions, we will add more types of convolution operations like 'Pointwise convolution', 'Deepwise separable convolution' and so on.

Pooling

The "Pooling" moudle will accept a feature image, then perform two kinds of operations——"MaxPooling" and "AveragePooling",and display the feature maps obtained from each operation.At last, it will generate the gray histograms of the features.Before you click the "Go", just make sure all the parameters are filled in or you'll get 'Internel server error'.

Arg

  • Pool Size: An reasonable positive integer.

  • Filter Strides: An reasonable positive integer.

  • Padding: Just make a descion, and 'SAME' is recommended.

Attention:

All the feature maps you generated will be saved in the 'static/images/pooling'

Extractor

The "Extractor" moudle contains lots of convolution networks such as 'LeNet5', 'AlexNet', 'ResNet'.The moudle will accept an image, then use the predefined CNN to extract the feature maps.And it will generate the gray histograms of the features.Before you click the "Go", just make sure all the parameters are filled in or you'll get 'Internel server error'.

Args:

  • Extractor: The type of extractor.And the supported extractor for current version is as below:
Type
LeNet5 AlexNet VGGNet16 VGGNet19 RestNet34 ResNet50

Attention:

All the feature maps you generated will be saved in the 'static/images/extractor'

Augmentation

The "Augmetation" moudle provides the function of images data augmetation, with this moudle, you can efficiently accomplish the data augmentation task.In the current version, 9 processing methods are supported:

Method
rotate zoom in zoom out
shear noise mirroring
saturation adjustment contrast ratio adjustment brightness adjustment

Before you click the "Go", just make sure all the parameters are filled in or you'll get 'Internel server error'.

Args:

  • Methods: The method to augment your data.

  • Input Path: The folder of the images to be processed.

  • Output Path: The foleder to save the processed images.

  • Amplification factor: An reasonable integer which indicts the amplification factor.

Attention:

You can do more elaborate operations by changing the source code.

Get it now

Clone it:

$ git clone https://github.com/Mingqi-Yuan/ConvolutionBox.git

or you can get the zip file,then make a Flask project with PyCharm.

$  wget https://codeload.github.com/Mingqi-Yuan/ConvolutionBox/zip/master

Packages required

The moudle below is required for the ConvolutionBox:

  • TensorFlow
  • Matplotlib
  • Flask
  • json
  • NumPy
  • OpenCV

The python environment of Anaconda3 is recommended.


License

MIT License

About

ConvolutionBox is a convenient tool for convolution visualization, whicn can help you with experiments!

License:MIT License


Languages

Language:JavaScript 74.0%Language:Python 13.7%Language:HTML 11.4%Language:CSS 0.9%