提交 6d3c2193 authored 作者: carriepl's avatar carriepl

Remove calls to hasattr() in python backend

上级 ff4c9050
...@@ -1287,12 +1287,12 @@ class Scan(PureOp): ...@@ -1287,12 +1287,12 @@ class Scan(PureOp):
var = output_storage[idx].storage[0] var = output_storage[idx].storage[0]
old_output_storage[idx] = var old_output_storage[idx] = var
if hasattr(var, 'gpudata'): if var is None:
old_output_data[idx] = None
elif self.outs_on_gpu[idx]:
old_output_data[idx] = var.gpudata old_output_data[idx] = var.gpudata
elif hasattr(var, 'data'):
old_output_data[idx] = var.data
else: else:
old_output_data[idx] = None old_output_data[idx] = var.data
# 4.6. Keep a reference to the variables (ndarrays, CudaNdarrays, # 4.6. Keep a reference to the variables (ndarrays, CudaNdarrays,
# etc) associated with mitmot inputs currently in the # etc) associated with mitmot inputs currently in the
...@@ -1305,12 +1305,12 @@ class Scan(PureOp): ...@@ -1305,12 +1305,12 @@ class Scan(PureOp):
var = input_storage[idx + self.n_seqs].storage[0] var = input_storage[idx + self.n_seqs].storage[0]
old_mitmot_input_storage[idx] = var old_mitmot_input_storage[idx] = var
if hasattr(var, 'gpudata'): if var is None:
old_mitmot_input_data[idx] = None
elif self.inps_on_gpu[idx]:
old_mitmot_input_data[idx] = var.gpudata old_mitmot_input_data[idx] = var.gpudata
elif hasattr(var, 'data'):
old_mitmot_input_data[idx] = var.data
else: else:
old_mitmot_input_data[idx] = None old_mitmot_input_data[idx] = var.data
# 5.1 compute outputs # 5.1 compute outputs
t0_fn = time.time() t0_fn = time.time()
...@@ -1372,9 +1372,9 @@ class Scan(PureOp): ...@@ -1372,9 +1372,9 @@ class Scan(PureOp):
new_var = input_storage[self.n_seqs + inp_idx].storage[0] new_var = input_storage[self.n_seqs + inp_idx].storage[0]
if old_var is new_var: if old_var is new_var:
old_data = old_mitmot_input_data[inp_idx] old_data = old_mitmot_input_data[inp_idx]
if hasattr(new_var, 'gpudata'): if self.inps_on_gpu[self.n_seqs + inp_idx]:
same_data = (new_var.gpudata == old_data) same_data = (new_var.gpudata == old_data)
elif hasattr(new_var, 'data'): else:
same_data = (new_var.data == old_data) same_data = (new_var.data == old_data)
else: else:
same_data = False same_data = False
...@@ -1418,9 +1418,9 @@ class Scan(PureOp): ...@@ -1418,9 +1418,9 @@ class Scan(PureOp):
old_data = old_output_data[offset_out + j] old_data = old_output_data[offset_out + j]
if old_data is None: if old_data is None:
output_reused = False output_reused = False
elif hasattr(new_var, 'gpudata'): elif self.outs_on_gpu[offset_out + j]:
output_reused = (new_var.gpudata == old_data) output_reused = (new_var.gpudata == old_data)
elif hasattr(new_var, 'data'): else:
output_reused = (new_var.data == old_data) output_reused = (new_var.data == old_data)
else: else:
output_reused = False output_reused = False
...@@ -1461,9 +1461,9 @@ class Scan(PureOp): ...@@ -1461,9 +1461,9 @@ class Scan(PureOp):
if old_var is new_var: if old_var is new_var:
if old_data is None: if old_data is None:
output_reused = False output_reused = False
elif hasattr(new_var, 'gpudata'): elif self.outs_on_gpu[offset_out + j]:
output_reused = (new_var.gpudata == old_data) output_reused = (new_var.gpudata == old_data)
elif hasattr(new_var, 'data'): else:
output_reused = (new_var.data == old_data) output_reused = (new_var.data == old_data)
else: else:
output_reused = False output_reused = False
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论