def compile(self):
"""
Compile the model. Should be called before training or running the model.
Basically, this function just do checkings on model configurations,
and create a Evaluator which contains an unrolled model
:return: None
"""
if self.is_compiled: # In case of multiple compiles
print("Already compiled!")
return
if self.input_shape is None or self.input_dtype is None:
raise ValueError("input_shape or input_dtype is None, call set_input first!")
if self.output_shape is None or self.output_dtype is None:
raise ValueError("output_shape or output_dtype is None, call set_output first!")
if self.target_shape is None or self.target_dtype is None:
raise ValueError("target_shape or target_dtype is None, call set_target first!")
if self.loss_func is None:
raise ValueError("loss_func is None, call set_loss_func first!")
# This operation creates no tf.Variables, no need for using variable scope
self._cell = tf.nn.rnn_cell.MultiRNNCell(cells=self.cell_list)
# All done
self.is_compiled = True
评论列表
文章目录