提交 425125ab authored 作者: affan's avatar affan 提交者: affanv14

add all ops for metaoptimizing

上级 867e5ea5
......@@ -1134,17 +1134,19 @@ class LocalMetaOptimizer(LocalOptimizer):
def __init__(self, optimizers=()):
self._tracks = [x for o in optimizers for x in o.tracks()]
self.optimizers = list(optimizers)
self.verbose = config.metaopt.verbose
self.verbose = True
self.track_dict = defaultdict(lambda: [])
for o in optimizers:
for c in o.tracks():
self.track_dict[c].append(o)
def register(self, optimizer):
self.optimizers.append(optimizer)
for c in optimizer.tracks():
self.track_dict[c].append(optimizer)
def register(self, optimizers):
self.optimizers.extend(optimizers)
for o in optimizers:
for c in o.tracks():
self.track_dict[c].append(o)
self._tracks.append(c)
def tracks(self):
return self._tracks
......
......@@ -1788,7 +1788,7 @@ class LocalCudaMetaOptimizer(LocalMetaOptimizer):
class ConvMetaOptimizer(LocalCudaMetaOptimizer):
def __init__(self, optimizers):
def __init__(self, optimizers=()):
super(ConvMetaOptimizer, self).__init__(optimizers)
def provide_inputs(self, node, inputs):
......@@ -2419,8 +2419,7 @@ register_opt('fast_compile')(abstractconv_groupopt)
from .dnn import (local_abstractconv_cudnn, local_abstractconv_gw_cudnn,
local_abstractconv_gi_cudnn) # noqa: 402
conv_metaopt = ConvMetaOptimizer((local_abstractconv_gemm,
local_abstractconv_cudnn))
conv_metaopt = ConvMetaOptimizer()
abstractconv_groupopt.register('conv_metaopt', conv_metaopt, 0, 'conv_meta')
......@@ -2461,7 +2460,7 @@ abstractconv_groupopt.register('local_abstractconv3d_gradinputs',
'conv_gemm',
'gpuarray', 'fast_compile', 'fast_run')
conv_metaopt.register(abstractconv_groupopt.query(*['+' + name for name in abstractconv_groupopt._names]).opts)
# Register cuDNN batch normalization implementation
# We import these opts here instead of at the top of this file
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论