SQLNet icon indicating copy to clipboard operation
SQLNet copied to clipboard

Error in rnn.py file

Open SMESetty opened this issue 6 years ago • 2 comments

After making a few changes in the utils.py file, as well as changing from python 2 to Python 3, I am getting an error in the rnn.py file when i try to run the train.py file. The error states- "TypeError: super(type, obj): obj must be an instance or subtype of type". I changed "super(LSTM, self).init('LSTM', *args, **kwargs)" to the below two lines- self.as_super = super(LSTM, self) self.as_super.init('LSTM', *args, **kwargs) in the def init function, but to no avail. Any help would be appreciated.

SMESetty avatar Aug 01 '19 11:08 SMESetty

I also change the code to fit Python 3.I have changed all the / operator to //,for example

        self.cond_col_name_enc = nn.LSTM(input_size=N_word, hidden_size=N_h//2,
                num_layers=N_depth, batch_first=True,
                dropout=0.3, bidirectional=True)

It works well so far,I hope it can help u.

Tianchen627 avatar Jan 06 '20 00:01 Tianchen627

Hi, I am still getting the error in rnn.py. Error stacktrace is : Traceback (most recent call last): File "test.py", line 74, in print("Dev acc_qm: %s;\n breakdown on (agg, sel, where): %s",epoch_acc(model, BATCH_SIZE, val_sql_data, val_table_data, TEST_ENTRY)) File "D:\Thesis\Seq2SQL\SQLNet\sqlnet\utils.py", line 201, in epoch_acc score = model.forward(q_seq, col_seq, col_num, pred_entry, gt_sel = gt_sel_seq) File "D:\Thesis\Seq2SQL\SQLNet\sqlnet\model\sqlnet.py", line 103, in forward agg_score = self.agg_pred(x_emb_var, x_len, col_inp_var, col_name_len, col_len, col_num, gt_sel=gt_sel) File "C:\Users\anshu\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 532, in call result = self.forward(*input, **kwargs) File "D:\Thesis\Seq2SQL\SQLNet\sqlnet\model\modules\aggregator_predict.py", line 35, in forward h_enc, _ = run_lstm(self.agg_lstm, x_emb_var, x_len) File "D:\Thesis\Seq2SQL\SQLNet\sqlnet\model\modules\net_utils.py", line 22, in run_lstm sort_ret_s, sort_ret_h = lstm(lstm_inp, lstm_hidden) File "C:\Users\anshu\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 532, in call result = self.forward(*input, **kwargs) File "C:\Users\anshu\Anaconda3\lib\site-packages\torch\nn\modules\rnn.py", line 556, in forward self.check_forward_args(input, hx, batch_sizes) File "C:\Users\anshu\Anaconda3\lib\site-packages\torch\nn\modules\rnn.py", line 508, in check_forward_args self.check_input(input, batch_sizes) File "C:\Users\anshu\Anaconda3\lib\site-packages\torch\nn\modules\rnn.py", line 159, in check_input self.input_size, input.size(-1))) RuntimeError: input.size(-1) must be equal to input_size. Expected 300, got 100

Can you please tell me how were you able to fix the errors while converting the code to Python3.7 compatible?

anshudaur avatar Mar 06 '20 11:03 anshudaur