Making '*' support the multiplication between a scalar and LayerOutput
Also changing '+' to support adding between a vector and a scalar.
Change-Id: I7daf35590dc2b2f855a29d9ef43ac57979442e0f
* Add elementwise math operations
This allows use to use expressions like: y=log(1+exp(x))
Also added unittests for ActivationFunction
* Enforce keyword arguments for non-positional arguments
* Add LogActivation to doc
* Add benchmark for PaddlePaddle, tensorflow and caffe
* ConvProjection to reduce memory for goolenet
* Add unit test for ConvProjection.
1. unit test in test_LayerGrad.
2. compare the ConvPorjection and CudnnConvLayer, also compare the concat_layer+img_conv_layer and concat_layer_conv_projection.
* Reduce cudnn_conv memory and add benchmark document.
1. Use TmpMatrix as the workspace in cudnn_conv to reduce gpu memory. It reduce lots of memory.
2. Add benchmark document.
3. fix smallnet_mnist_cifar.py in paddle.
* Add job=time and refine cudnn_conv to reduce gpu memroy and speed up
* Refine cudnn_conv and shared biases operation in concat_layer and mixed_layer.
* follow comments
* follow comments
* Use unique_ptr to prevent memory leaks in CudnnConvLayer.
* support rectangle padding, stride, window and input for PoolProjection
* Follow comments.
1. Remove start
2. refine img_pool_a/b.conf for test_NetworkCompare
3. Split unit test
* Modify the test in img_layers.py
* min_pool_size would be infinite by default.
* add unittest for min_pool_size
* Fix bug in can_over_batch_size
* add unittest for can_over_batch_size
* Add DEFINE_PROVIDER_EX
* Add default value of should_shuffle
* When training, the default value of should_shuffle is True.
* When testing, the default value of should_shuffle is False.
* User a set a provider should_shuffle or not by pass it to `@provider`
* should_shuffle can handle a list of value, not just boolean
* Add input order mapping by using name
* Add unittest
* Add check to check input format.
* Default is close for speed reason.
* User could stop train when check error, or continue train without
this train sample.
* use deque instead of vector in generators pool, make erase
generator faster.
* Add chinese/english documentation
* Make should shuffle = false in unittest
* Add python files to depends.
* modify RecurrentGradientMachine to support hasSubSeq sequence inlinks with the same number of sentence but different number of tokens for each sentence
Change-Id: Ic71f00a4bb346b4fa93e650dfb4b1a0d8d2338b0