提交 fa474bd0 authored 作者: Li's avatar Li 提交者: Frederic

cosmatic changes

上级 ca90a876
...@@ -1221,15 +1221,12 @@ class FunctionMaker(object): ...@@ -1221,15 +1221,12 @@ class FunctionMaker(object):
if fgraph is None: if fgraph is None:
need_opt = True need_opt = True
else:
need_opt = False
if fgraph is None:
# make the fgraph (copies the graph, creates NEW INPUT AND OUTPUT VARIABLES) # make the fgraph (copies the graph, creates NEW INPUT AND OUTPUT VARIABLES)
fgraph, additional_outputs = std_fgraph(inputs, outputs, accept_inplace) fgraph, additional_outputs = std_fgraph(inputs, outputs, accept_inplace)
fgraph.profile = profile fgraph.profile = profile
else: else:
# fgraph is already an optimized one # fgraph is already an optimized one
need_opt = False
_, additional_outputs = std_fgraph(inputs, outputs, accept_inplace) _, additional_outputs = std_fgraph(inputs, outputs, accept_inplace)
pass pass
...@@ -1239,33 +1236,27 @@ class FunctionMaker(object): ...@@ -1239,33 +1236,27 @@ class FunctionMaker(object):
optimizer, linker = mode.optimizer, copy.copy(mode.linker) optimizer, linker = mode.optimizer, copy.copy(mode.linker)
compute_test_value_orig = theano.config.compute_test_value compute_test_value_orig = theano.config.compute_test_value
add_stack_trace_on_call = gof.Op.add_stack_trace_on_call add_stack_trace_on_call_orig = gof.Op.add_stack_trace_on_call
if need_opt: if need_opt:
# optimize the fgraph # optimize the fgraph
try: theano.config.compute_test_value = theano.config.compute_test_value_opt
theano.config.compute_test_value = theano.config.compute_test_value_opt gof.Op.add_stack_trace_on_call = False
gof.Op.add_stack_trace_on_call = False start_optimizer = time.time()
start_optimizer = time.time() optimizer_profile = optimizer(fgraph)
optimizer_profile = optimizer(fgraph) end_optimizer = time.time()
end_optimizer = time.time() opt_time = end_optimizer - start_optimizer
opt_time = end_optimizer - start_optimizer if profile:
if profile: profile.optimizer_time += opt_time
profile.optimizer_time += opt_time if theano.config.profile_optimizer:
if theano.config.profile_optimizer: profile.optimizer_profile = (optimizer, optimizer_profile)
profile.optimizer_profile = (optimizer, optimizer_profile) _logger.debug('Optimizing took %f seconds', opt_time)
_logger.debug('Optimizing took %f seconds', opt_time)
#Add deep copy to respect the memory interface
#Add deep copy to respect the memory interface insert_deepcopy(fgraph, inputs, outputs + additional_outputs)
insert_deepcopy(fgraph, inputs, outputs + additional_outputs) # fgraph is already optimized
finally: theano.config.compute_test_value = compute_test_value_orig
theano.config.compute_test_value = compute_test_value_orig gof.Op.add_stack_trace_on_call = add_stack_trace_on_call_orig
gof.Op.add_stack_trace_on_call = add_stack_trace_on_call
else:
# fgraph is already optimized
theano.config.compute_test_value = compute_test_value_orig
gof.Op.add_stack_trace_on_call = add_stack_trace_on_call
# initialize the linker # initialize the linker
if not hasattr(linker, 'accept'): if not hasattr(linker, 'accept'):
......
...@@ -15,7 +15,7 @@ This note is written by Li Yao. ...@@ -15,7 +15,7 @@ This note is written by Li Yao.
import unittest import unittest
import numpy import numpy
import cPickle import cPickle
from collections import OrderedDict from theano.compat.python2x import DictMixin, OrderedDict
floatX = 'float32' floatX = 'float32'
import theano import theano
import theano.tensor as T import theano.tensor as T
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论