PKU-TANGENT / NeuralEDUSeg

A toolkit for discourse segmentation (EDU segmentation).
https://arxiv.org/abs/1808.09147
Apache License 2.0
98 stars 44 forks source link

Exception #1

Closed grig-guz closed 5 years ago

grig-guz commented 5 years ago

Hi, do you know what might be causing the below exception? I'm parsing the raw data in Penn Treebank. Thanks

` Traceback (most recent call last): File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1334, in _do_call return fn(*args) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1319, in _run_fn options, feed_dict, fetch_list, target_list, run_metadata) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1407, in _call_tf_sessionrun run_metadata) tensorflow.python.framework.errors_impl.InvalidArgumentError: num_lower must be negative or less or equal to number of rows (4) got: 5 [[{{node encoding/bilinear_attention/MatrixBandPart}} = MatrixBandPart[T=DT_FLOAT, Tindex=DT_INT64, _device="/job:localhost/replica:0/task:0/device:GPU:0"](encoding/bilinear_attention/ones_like, encoding/bilinear_attention/MatrixBandPart/num_lower/_271, encoding/bilinear_attention/MatrixBandPart/num_lower/_271)]] [[{{node encoding/rnn_2/bidirectional_rnn/bw/bw/stack/_287}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_578_encoding/rnn_2/bidirectional_rnn/bw/bw/stack", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "run.py", line 48, in segment(args) File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/api.py", line 158, in segment batch_pred_segs = model.segment(batch) File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/elmo_crf_seg.py", line 78, in segment scores, trans_params = self.sess.run([self.scores, self.trans_params], feed_dict) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 929, in run run_metadata_ptr) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1152, in _run feed_dict_tensor, options, run_metadata) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1328, in _do_run run_metadata) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1348, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.InvalidArgumentError: num_lower must be negative or less or equal to number of rows (4) got: 5 [[node encoding/bilinear_attention/MatrixBandPart (defined at /home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/layers.py:40) = MatrixBandPart[T=DT_FLOAT, Tindex=DT_INT64, _device="/job:localhost/replica:0/task:0/device:GPU:0"](encoding/bilinear_attention/ones_like, encoding/bilinear_attention/MatrixBandPart/num_lower/_271, encoding/bilinear_attention/MatrixBandPart/num_lower/_271)]] [[{{node encoding/rnn_2/bidirectional_rnn/bw/bw/stack/_287}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_578_encoding/rnn_2/bidirectional_rnn/bw/bw/stack", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Caused by op 'encoding/bilinear_attention/MatrixBandPart', defined at: File "run.py", line 48, in segment(args) File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/api.py", line 134, in segment model = AttnSegModel(args, word_vocab) File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/elmo_crf_seg.py", line 14, in init super().init(args, word_vocab) File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/base_seg.py", line 38, in init self._build_graph() File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/lstm_seg.py", line 18, in _build_graph self._encode() File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/atten_seg.py", line 20, in _encode self.encoded_sent, self.placeholders['input_length'], self.window_size) File "/home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/layers.py", line 40, in self_attention restricted_mask = tf.matrix_band_part(tf.ones_like(logits, dtype=tf.float32), window_size, window_size) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 4142, in matrix_band_part num_upper=num_upper, name=name) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper op_def=op_def) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 488, in new_func return func(*args, **kwargs) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3274, in create_op op_def=op_def) File "/home/grigorii/anaconda3/envs/tfenv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1770, in init self._traceback = tf_stack.extract_stack()

InvalidArgumentError (see above for traceback): num_lower must be negative or less or equal to number of rows (4) got: 5 [[node encoding/bilinear_attention/MatrixBandPart (defined at /home/grigorii/homework/cpsc503/project/datasets/discourse_parsers/NeuralEDUSeg/src/layers.py:40) = MatrixBandPart[T=DT_FLOAT, Tindex=DT_INT64, _device="/job:localhost/replica:0/task:0/device:GPU:0"](encoding/bilinear_attention/ones_like, encoding/bilinear_attention/MatrixBandPart/num_lower/_271, encoding/bilinear_attention/MatrixBandPart/num_lower/_271)]] [[{{node encoding/rnn_2/bidirectional_rnn/bw/bw/stack/_287}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_578_encoding/rnn_2/bidirectional_rnn/bw/bw/stack", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]] `

yizhongw commented 5 years ago

It seems that there is one sentence shorter than 5 in your case, which caused error for the tf.matrix_band_part function. One possible solution is to replace the window_size in this line with something like tf.minimum(window_size, tf.shape(logits)[1]). You may need to make window_size a tensor here so that the tf.minimum function could work. I will consider fixing this later.