Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. import tensorflow as tf
  2. from tensorflow.contrib.seq2seq.python.ops import basic_decoder
  3. from tensorflow.python.framework import ops
  4. from tensorflow.python.layers import core as layers_core
  5.  
  6.  
  7. class CopyDecoder(basic_decoder.BasicDecoder):
  8. def __init__(self, cell, helper, initial_state,
  9. batch_size, output_size,
  10. output_layer=None, internal_size=100):
  11. super().__init__(cell, helper, initial_state, output_layer)
  12. self.internal_size = internal_size
  13. self.batch_size_ = batch_size
  14. self.W = layers_core.Dense(
  15. self.internal_size, name="W", use_bias=False)
  16. self.index = tf.tile(tf.expand_dims(tf.range(self.internal_size), axis=0), [batch_size, 1])
  17.  
  18.  
  19. def step(self, time, inputs, state, name=None):
  20.  
  21. with ops.name_scope(name, "BasicDecoderStep", (time, inputs, state)):
  22. cell_outputs, cell_state =
  23. self._cell(inputs, state)
  24. weight = self.W(cell_output)
  25.  
  26. def init_value():
  27. return tf.tile(tf.zeros([1, self.target_vocab_size],
  28. dtype=tf.float32),
  29. [self.batch_size, 1])
  30. ref = tf.Variable(
  31. initial_value=init_value, validate_shape=False)
  32. scatter = ref.batch_scatter_update(
  33. tf.IndexedSlices(weight, self.index))
  34. cell_outputs = scatter
  35.  
  36. sample_ids = self._helper.sample(
  37. time=time, outputs=cell_outputs, state=cell_state)
  38. (finished, next_inputs, next_state) = self._helper.next_inputs(
  39. time=time,
  40. outputs=cell_outputs,
  41. state=cell_state,
  42. sample_ids=sample_ids)
  43. outputs = basic_decoder.BasicDecoderOutput(cell_outputs, sample_ids)
  44. return (outputs, next_state, next_inputs, finished)
  45.  
  46. Caused by op 'IteratorGetNext', defined at:
  47. File "code.py", line 33, in <module>
  48. model.train()
  49. File "/home/code/model.py", line 100, in train
  50. config=self.config)
  51. File "/home/code/reader.py", line 52, in __init__
  52. self.output_tensors = self.compute_output()
  53. File "/home/code/reader.py", line 278, in compute_output
  54. return self.iterator.get_next()
  55. File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/tensorflow/python/data/ops/iterator_ops.py", line 414, in get_next
  56. output_shapes=self._structure._flat_shapes, name=name)
  57. File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/tensorflow/python/ops/gen_dataset_ops.py", line 1685, in iterator_get_next
  58. output_shapes=output_shapes, name=name)
  59. File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
  60. op_def=op_def)
  61. File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
  62. return func(*args, **kwargs)
  63. File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
  64. op_def=op_def)
  65. File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1801, in __init__
  66. self._traceback = tf_stack.extract_stack()
  67.  
  68. FailedPreconditionError (see above for traceback): GetNext() failed because the iterator has not been initialized. Ensure that you have run the initializer operation for this iterator before getting the next element.
  69. [[node IteratorGetNext (defined at /home/code/reader.py:278) ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement