Comments (5)
On Fri, Oct 28, 2011 at 11:53 AM, James Bergstra
[email protected]
wrote:
It's nice to have constant folding as a local optimizer so that it can be done during stabilization and specialization.
For better performance - and to permit lowering the max_use_ratio back to a sane level, it would also be good to do Constant folding "passes" similar to what the MergeOptimizer does. Since constant folding is a kind of bottom-up transformation, a single pass could fold entire subgraphs all at once. This would be faster, because it would avoid running all of the equilibrium optimizers between every constant-folding substitution!
I would suggest making a single pass of the ConstantFoldingOptimizer, after stabilization, but before specialization. We don't do any constant folding before specialization right?
We do it... It is not trivial to move them after stabilize as this
disable some optimization done in the Canonicalize...
from theano.
On Fri, Oct 28, 2011 at 11:57 AM, nouiz
[email protected]
wrote:
I would suggest making a single pass of the ConstantFoldingOptimizer, after stabilization, but before specialization. We don't do any constant folding before specialization right?
We do it... It is not trivial to move them after stabilize as this
disable some optimization done in the Canonicalize...Ok, then maybe a preliminary greedy constant-folding pass could be
done before canonicalize? Maybe we can even recognize safe vs. unsafe
folding operations before canonicalize?
from theano.
I have no idea how to recognize safe vs unsafe folding operation. The real fix is to "port" the Canonicalizer optimizer to after the constant folding phase. But we must change the Canonicalizer to change the graph only when it do some optimization at the same time...
What about just rerunning the full Canonicalizer instead? In summary what about this:
- current canonicalization phase without constant folding
- current stabilize phase without constant folding
- constant folding phase
- new Canonizer class phase or the current canonicalization phase WITH constant folding
- we continue....
There is also the blas opt some where in there.
from theano.
We now have topo_constant_folding
running at a couple of places, which is simply defined as in2out(constant_folding)
.
from theano.
from theano.
Related Issues (20)
- matplotlib and keyring should be added to configuration files HOT 2
- deeplearning.net is DOWN
- Guided Backpropagation in Theano/Lasagne
- ImportError: cannot import name 'is_same_graph' HOT 2
- configparser.NoSectionError: No section: 'blas' (Theano does not run probably on Python 3.9 and Numpy 1.22.2) HOT 4
- Error while using pymc3 and Theano-PyMC package
- unexpected behaviour in dimension expansion
- theano error cannot convert 'cudnnConvolutionFwdAlgo_t*' to 'cudnnConvolutionFwdAlgoPerf_t
- TypeError: ufunc 'sin' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' HOT 1
- Project dependencies may have API risk issues HOT 1
- Incorrect Regular Expression Ranges
- HINT: Use the Theano flag 'exception_verbosity=high' for a debugprint and storage map footprint of this apply node.
- Use github.com/apssouza22/chatflow as a conversational layer. It would enable actual API requests to be carried out from natural language inputs. HOT 1
- theano.tensor.nnet.conv3d verify_grad fail when border_mode is "full"
- theano.gradient.verify_grad throws error if the rng parameter is not provided
- theano.tensor.nnet.bn.batch_normalization verify_grad fail
- theano.gradient.verify_grad lack of checking the validity of inputs HOT 1
- A Suspected Bug in `categorical_crossentropy`
- DepthwiseConv2D outputs normally when dilation_rate is 0
- AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from theano.