ZeweiChu / rule_extract_lstm

replicate the results of rule extract lstm
16 stars 5 forks source link

RuntimeError: Dimension out of range (expected to be in range of [-2, 1], but got 2) #3

Open fighting41love opened 5 years ago

fighting41love commented 5 years ago

I try to run the code with senti.binary.train/dev/test data. It reports the runtime error:

Traceback (most recent call last): File "/Users/ppd-03020186/PycharmProjects/rule_extract_lstm-master/main.py", line 148, in <module> main(args) File "/Users/ppd-03020186/PycharmProjects/rule_extract_lstm-master/main.py", line 92, in main dev_loss, dev_correct_count, dev_count = eval(model, crit, dev_data, vocab=vocab, args=args) File "/Users/ppd-03020186/PycharmProjects/rule_extract_lstm-master/main.py", line 30, in eval pred, out = model.decompose(x, x_mask) File "/Users/ppd-03020186/PycharmProjects/rule_extract_lstm-master/models.py", line 124, in decompose lengths = lengths.unsqueeze(2).expand(B, 1, self.hidden_size) - 1 RuntimeError: Dimension out of range (expected to be in range of [-2, 1], but got 2) I cannot figure out what happend. Could you pls give me some hints about the error? Thanks!

JiCoM commented 5 years ago

我也有相同的问题 这是为什么

fighting41love commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

JiCoM commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我刚发现问题 还在想怎么回事

JiCoM commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

fighting41love commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

求一份能跑通的代码。

JiCoM commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

求一份能跑通的代码。

我的这份现在训练dev 的精确度一只是0 我解决了报错 但可能修改的不对

lengths = lengths.unsqueeze(2).expand(B, 1, self.hidden_size) - 1

    lengths = lengths.unsqueeze(1)
    lengths = lengths.expand(B, self.hidden_size) - 1
    lengths = lengths.unsqueeze(1)

我把注释的那句 改为了以下的代码

fighting41love commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

求一份能跑通的代码。

我的这份现在训练dev 的精确度一只是0 我解决了报错 但可能修改的不对

lengths = lengths.unsqueeze(2).expand(B, 1, self.hidden_size) - 1

    lengths = lengths.unsqueeze(1)
    lengths = lengths.expand(B, self.hidden_size) - 1
    lengths = lengths.unsqueeze(1)

我把注释的那句 改为了以下的代码

感谢告知! 按照你的方法,代码跑通了,我的dev也是0. 将eval中的dev_data换成 train_data,结果还是0. 这就比较奇怪了,我明天仔细看一下有啥问题哈。

JiCoM commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

求一份能跑通的代码。

我的这份现在训练dev 的精确度一只是0 我解决了报错 但可能修改的不对

lengths = lengths.unsqueeze(2).expand(B, 1, self.hidden_size) - 1

    lengths = lengths.unsqueeze(1)
    lengths = lengths.expand(B, self.hidden_size) - 1
    lengths = lengths.unsqueeze(1)

我把注释的那句 改为了以下的代码

感谢告知! 按照你的方法,代码跑通了,我的dev也是0. 将eval中的dev_data换成 train_data,结果还是0. 这就比较奇怪了,我明天仔细看一下有啥问题哈。

嗯嗯 解决了记得分享下代码 ~谢谢

fighting41love commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

求一份能跑通的代码。

我的这份现在训练dev 的精确度一只是0 我解决了报错 但可能修改的不对

lengths = lengths.unsqueeze(2).expand(B, 1, self.hidden_size) - 1

    lengths = lengths.unsqueeze(1)
    lengths = lengths.expand(B, self.hidden_size) - 1
    lengths = lengths.unsqueeze(1)

我把注释的那句 改为了以下的代码

感谢告知! 按照你的方法,代码跑通了,我的dev也是0. 将eval中的dev_data换成 train_data,结果还是0. 这就比较奇怪了,我明天仔细看一下有啥问题哈。

嗯嗯 解决了记得分享下代码 ~谢谢

没问题,我今天仔细看一下。

fighting41love commented 5 years ago

我也有相同的问题 这是为什么

我花了几天时间也没有解决这个问题,如果有解决办法,求告知。 我给论文原作者发了邮件索要代码,回复:不公开。。。

我的问题解决了 这篇代码怎么实现的规则挖掘 我有点懵

求一份能跑通的代码。

我的这份现在训练dev 的精确度一只是0 我解决了报错 但可能修改的不对

lengths = lengths.unsqueeze(2).expand(B, 1, self.hidden_size) - 1

    lengths = lengths.unsqueeze(1)
    lengths = lengths.expand(B, self.hidden_size) - 1
    lengths = lengths.unsqueeze(1)

我把注释的那句 改为了以下的代码

感谢告知! 按照你的方法,代码跑通了,我的dev也是0. 将eval中的dev_data换成 train_data,结果还是0. 这就比较奇怪了,我明天仔细看一下有啥问题哈。

嗯嗯 解决了记得分享下代码 ~谢谢

main.py line 62中 改为 return total_loss, float(correct_count), total_count 即可 对correct_count做转换,本来是tensor,转换为float,即可计算得到acc

JiCoM commented 5 years ago

帅气!谢谢,我多叨扰一下像这种str(out[i][j][pred_y.data[i]][0]) + "'>" + str(index2word[x.data[i][j]]) 格式 现在该怎么改写 这种写法0.4之后就被摒弃了0.0 我不知道怎么改写 你知道吗?

fighting41love commented 5 years ago

帅气!谢谢,我多叨扰一下像这种str(out[i][j][pred_y.data[i]][0]) + "'>" + str(index2word[x.data[i][j]]) 格式 现在该怎么改写 这种写法0.4之后就被摒弃了0.0 我不知道怎么改写 你知道吗?

我这一块运行的时候会报错,所以改写如下: f_extract_lstm.write("<span style='font-size:" + str(out[i][j][pred_y.data[i]]) + \ "' title='" + str(out[i][j][pred_y.data[i]]) + "'>" + str(index2word[int(x.data[i][j])]) + " </span>") 不确定是否正确,但能跑通了。 不知道是不是你想问的问题。。。

fighting41love commented 5 years ago

line 40: f_extract_lstm.write("<p>predicted: " + str(int(pred_y.data[i])) + " correct label: " + str(int(y.data[i])))

line 45附近改为:

f_extract_lstm.write("<span style='font-size:" + str(float(out[i][j][pred_y.data[i]])) + \
"' title='" + str(float(out[i][j][pred_y.data[i]])) + "'>" + str(index2word[int(x.data[i][j])]) + " </span>")

run main.py后,heatmap.html中就会有结果了。 具体怎么抽rule,还得再看一下。不知道是不是得用到 最大连续子序列类似的算法。

JiCoM commented 5 years ago

万分感谢! 后面的在继续研究了

line 40: f_extract_lstm.write("<p>predicted: " + str(int(pred_y.data[i])) + " correct label: " + str(int(y.data[i])))

line 45附近改为:

f_extract_lstm.write("<span style='font-size:" + str(float(out[i][j][pred_y.data[i]])) + \
"' title='" + str(float(out[i][j][pred_y.data[i]])) + "'>" + str(index2word[int(x.data[i][j])]) + " </span>")

run main.py后,heatmap.html中就会有结果了。 具体怎么抽rule,还得再看一下。不知道是不是得用到 最大连续子序列类似的算法。

万分感谢! 后面的在继续研究了

fighting41love commented 5 years ago

万分感谢! 后面的在继续研究了

line 40: f_extract_lstm.write("<p>predicted: " + str(int(pred_y.data[i])) + " correct label: " + str(int(y.data[i]))) line 45附近改为:

f_extract_lstm.write("<span style='font-size:" + str(float(out[i][j][pred_y.data[i]])) + \
"' title='" + str(float(out[i][j][pred_y.data[i]])) + "'>" + str(index2word[int(x.data[i][j])]) + " </span>")

run main.py后,heatmap.html中就会有结果了。 具体怎么抽rule,还得再看一下。不知道是不是得用到 最大连续子序列类似的算法。

万分感谢! 后面的在继续研究了

客气了,类似工作的资料如下: https://blog.csdn.net/triplemeng/article/details/78269127 https://github.com/magical2world/tf-hierarchical-rnn https://github.com/triplemeng/hierarchical-attention-model