def register_linker(name, linker): """Add a `Linker` which can be referred to by `name` in `Mode`.""" if name in predefined_linkers: raise ValueError('Linker name already taken: %s' % name) predefined_linkers[name] = linker # If a string is passed as the optimizer argument in the constructor # for Mode, it will be used as the key to retrieve the real optimizer # in this dictionary exclude = [] if not theano.config.cxx: exclude = ['cxx_only'] OPT_NONE = gof.Query(include=[], exclude=exclude) # Even if multiple merge optimizer call will be there, this shouldn't # impact performance. OPT_MERGE = gof.Query(include=['merge'], exclude=exclude) OPT_FAST_RUN = gof.Query(include=['fast_run'], exclude=exclude) OPT_FAST_RUN_STABLE = OPT_FAST_RUN.requiring('stable') # We need fast_compile_gpu here. As on the GPU, we don't have all # operation that exist in fast_compile, but have some that get # introduced in fast_run, we want those optimization to also run in # fast_compile+gpu. We can't tag them just as 'gpu', as this would # exclude them if we exclude 'gpu'. OPT_FAST_COMPILE = gof.Query(include=['fast_compile', 'fast_compile_gpu'], exclude=exclude) OPT_STABILIZE = gof.Query(include=['fast_run'], exclude=exclude) OPT_STABILIZE.position_cutoff = 1.5000001 OPT_NONE.name = 'OPT_NONE'
def register_linker(name, linker): """Add a `Linker` which can be referred to by `name` in `Mode`.""" if name in predefined_linkers: raise ValueError(f"Linker name already taken: {name}") predefined_linkers[name] = linker # If a string is passed as the optimizer argument in the constructor # for Mode, it will be used as the key to retrieve the real optimizer # in this dictionary exclude = [] if not theano.config.cxx: exclude = ["cxx_only"] OPT_NONE = gof.Query(include=[], exclude=exclude) # Even if multiple merge optimizer call will be there, this shouldn't # impact performance. OPT_MERGE = gof.Query(include=["merge"], exclude=exclude) OPT_FAST_RUN = gof.Query(include=["fast_run"], exclude=exclude) OPT_FAST_RUN_STABLE = OPT_FAST_RUN.requiring("stable") # We need fast_compile_gpu here. As on the GPU, we don't have all # operation that exist in fast_compile, but have some that get # introduced in fast_run, we want those optimization to also run in # fast_compile+gpu. We can't tag them just as 'gpu', as this would # exclude them if we exclude 'gpu'. OPT_FAST_COMPILE = gof.Query( include=["fast_compile", "fast_compile_gpu"], exclude=exclude ) OPT_STABILIZE = gof.Query(include=["fast_run"], exclude=exclude) OPT_STABILIZE.position_cutoff = 1.5000001
def register_linker(name, linker): """Add a `Linker` which can be referred to by `name` in `Mode`.""" if name in predefined_linkers: raise ValueError('Linker name already taken: %s' % name) predefined_linkers[name] = linker # If a string is passed as the optimizer argument in the constructor # for Mode, it will be used as the key to retrieve the real optimizer # in this dictionary exclude = [] if not theano.config.cxx: exclude = ['cxx_only'] OPT_FAST_RUN = gof.Query(include=['fast_run'], exclude=exclude) OPT_FAST_RUN_STABLE = OPT_FAST_RUN.requiring('stable') OPT_FAST_COMPILE = gof.Query(include=['fast_compile'], exclude=exclude) OPT_STABILIZE = gof.Query(include=['fast_run'], exclude=exclude) OPT_STABILIZE.position_cutoff = 1.5000001 OPT_FAST_RUN.name = 'OPT_FAST_RUN' OPT_FAST_RUN_STABLE.name = 'OPT_FAST_RUN_STABLE' OPT_FAST_COMPILE.name = 'OPT_FAST_COMPILE' OPT_STABILIZE.name = 'OPT_STABILIZE' predefined_optimizers = { None: (lambda fgraph: None), 'None': (lambda fgraph: None), 'merge': gof.MergeOptimizer(), 'fast_run': OPT_FAST_RUN, 'fast_run_stable': OPT_FAST_RUN_STABLE,
def register_linker(name, linker): """Add a `Linker` which can be referred to by `name` in `Mode`.""" if name in predefined_linkers: raise ValueError("Linker name already taken: %s" % name) predefined_linkers[name] = linker # If a string is passed as the optimizer argument in the constructor # for Mode, it will be used as the key to retrieve the real optimizer # in this dictionary exclude = [] if not theano.config.cxx: exclude = ["cxx_only"] OPT_NONE = gof.Query(include=[], exclude=exclude) # Even if multiple merge optimizer call will be there, this shouldn't # impact performance. OPT_MERGE = gof.Query(include=["merge"], exclude=exclude) OPT_FAST_RUN = gof.Query(include=["fast_run"], exclude=exclude) OPT_FAST_RUN_STABLE = OPT_FAST_RUN.requiring("stable") # We need fast_compile_gpu here. As on the GPU, we don't have all # operation that exist in fast_compile, but have some that get # introduced in fast_run, we want those optimization to also run in # fast_compile+gpu. We can't tag them just as 'gpu', as this would # exclude them if we exclude 'gpu'. OPT_FAST_COMPILE = gof.Query( include=["fast_compile", "fast_compile_gpu"], exclude=exclude ) OPT_STABILIZE = gof.Query(include=["fast_run"], exclude=exclude) OPT_STABILIZE.position_cutoff = 1.5000001