Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于预测准确率 #11

Open
yun97 opened this issue Dec 13, 2018 · 29 comments
Open

关于预测准确率 #11

yun97 opened this issue Dec 13, 2018 · 29 comments

Comments

@yun97
Copy link

yun97 commented Dec 13, 2018

我用您的代码跑了一下数据,eval accuracy 只有0.1,predict 的结果并没有图片中的80%那么高?

@yun97 yun97 changed the title 关于预测精度 关于预测准确率 Dec 13, 2018
@hxs91
Copy link

hxs91 commented Dec 14, 2018

我也是,按照这个思路跑出来感觉不对劲。。

@supergyz
Copy link

supergyz commented Dec 16, 2018

我用您的代码跑了一下数据,eval accuracy 只有0.1,predict 的结果并没有图片中的80%那么高?

没有shuffle数据的原因 @yun97 @hxs91

@jotline
Copy link

jotline commented Dec 17, 2018

然而shuf之后也只有0.58的eval_accuracy.
image

@supergyz
Copy link

@jotline 两个原因。你看下data下的数据,第一行其实是噪音建议删去,稍微修改下_create_examples函数。因为如果先shuffle的话,第一行会被当成训练数据进去,更糟糕的是会多了个label变成11分类。第二个就加大步长,原文中写的是3000多步,也就是100epochs;我跑到1000步最高达到0.71,之后就没试过了。

@jotline
Copy link

jotline commented Dec 17, 2018

@supergyz 好的,十分感谢🙏。我再试试看

@jotline
Copy link

jotline commented Dec 18, 2018

@supergyz 我跑了30000步,仍然是0.66左右。我估摸着数据有点少,导致测试集准确度太低。我换了一个6分类的场景,可以达到0.84的acc
image

@h123c
Copy link

h123c commented Dec 18, 2018

我开始也是0.1,看到上面的讨论才反应过来,只是对数据去掉第一行并shuffle后变为79%,可能会有浮动.

@yun97
Copy link
Author

yun97 commented Dec 19, 2018

@supergyz 非常感谢!

@jotline
Copy link

jotline commented Dec 19, 2018

@supergyz 可以直接跑一下官方的run_classifier.py,多加一些trainset的规模80%不难,我用我自己的数据集可以跑到挺高。

@sportzhang
Copy link

@jotline 你用的英文还是中文?

@h123c
Copy link

h123c commented Dec 21, 2018

@h123c 你好,run_classifier的代码能发给我下吗。。刚才试了下还是0.66。。有点绝望。。

就是这里的原码,没有动,但是数据集处理了一下

@sportzhang
Copy link

shuffle之后,跑到0.81是没什么问题的。

@jotline
Copy link

jotline commented Dec 24, 2018

@jotline 你用的英文还是中文?

我的数据集还比较复杂,有英文有中文,还有其他语言。

@jotline
Copy link

jotline commented Dec 24, 2018

@supergyz 我感觉是数据不太够?我跑的自己的多语种数据集,代码没有变,可以跑很高。后来没用tf版的bert了,pytorch版非常好用,速度也快。

@sportzhang
Copy link

@supergyz 我是shuffle了一个与数据等长的list,然后分别对每个字段按照shuffle后的listc重排,参数没有改动。

@hxs91
Copy link

hxs91 commented Dec 25, 2018

的确需要做shuffle,我之前以为代码中是有做shuffle的…在processor的_create_esamples中对examples做一下shuffle即可。我的实验(200+个类别文本分类)上结果从14%提升到91.7%

@hxs91
Copy link

hxs91 commented Dec 25, 2018

@supergyz 没有,我只是跑的我自己的数据集…

@JepsonWong
Copy link

@hxs91 这个10分类的数据集跑了吗;我觉着上面谁跑到0.8的都是自己的数据集,不是这个1000行10分类数据集的结果。。。

我跑到了,不知道跑的对不对,但肯定没有用自己的数据集。
命令是
python3 run_classifier.py --data_dir=./data --vocab_file=./uncased_L-12_H-768_A-12/vocab.txt --bert_config_file=./uncased_L-12_H-768_A-12/bert_config.json --init_checkpoint=./uncased_L-12_H-768_A-12/bert_model.ckpt --output_dir=./output

@RebeccaRrr
Copy link

@hxs91 这个10分类的数据集跑了吗;我觉着上面谁跑到0.8的都是自己的数据集,不是这个1000行10分类数据集的结果。。。

我跑到了,不知道跑的对不对,但肯定没有用自己的数据集。
命令是
python3 run_classifier.py --data_dir=./data --vocab_file=./uncased_L-12_H-768_A-12/vocab.txt --bert_config_file=./uncased_L-12_H-768_A-12/bert_config.json --init_checkpoint=./uncased_L-12_H-768_A-12/bert_model.ckpt --output_dir=./output

可以请问一下你是怎么处理的呢?只是删除了第一行shuffle了数据吗?
方便的话可以发一下你的shuffle代码吗?谢谢!!

@hxs91
Copy link

hxs91 commented Dec 27, 2018

@RebeccaRrr _create_examples中在return之前random.shuffle(examples)

@JepsonWong
Copy link

@hxs91 这个10分类的数据集跑了吗;我觉着上面谁跑到0.8的都是自己的数据集,不是这个1000行10分类数据集的结果。。。

我跑到了,不知道跑的对不对,但肯定没有用自己的数据集。
命令是
python3 run_classifier.py --data_dir=./data --vocab_file=./uncased_L-12_H-768_A-12/vocab.txt --bert_config_file=./uncased_L-12_H-768_A-12/bert_config.json --init_checkpoint=./uncased_L-12_H-768_A-12/bert_model.ckpt --output_dir=./output

可以请问一下你是怎么处理的呢?只是删除了第一行shuffle了数据吗?
方便的话可以发一下你的shuffle代码吗?谢谢!!

_create_examples函数返回数据之前random.shuffle(examples)。没有删除第一行呀,原代码中删了吧,我看作者循环中在读取的时候if i==0 已经进行continue操作了。

@supergyz
Copy link

@JepsonWong 我也跑到啦~

@LightingFx
Copy link

@hxs91 的确需要做shuffle,我之前以为代码中是有做shuffle的…在processor的_create_esamples中对examples做一下shuffle即可。我的实验(200+个类别文本分类)上结果从14%提升到91.7%

你好,请问下你200+类别的数据集有多大?用到多少个句子,我现在想做个大概90个类别的任务,想评估下自己的数据集大概有多少就够了。

@mofengboy
Copy link

我问一下num_train_epochs=100.0的情况下,checkpoints的数量大概有多少?我跑了好长时间了还没跑完。

@supergyz
Copy link

supergyz commented May 18, 2019 via email

@Duanexiao
Copy link

@jotline 两个原因。你看下data下的数据,第一行其实是噪音建议删去,稍微修改下_create_examples函数。因为如果先shuffle的话,第一行会被当成训练数据进去,更糟糕的是会多了个label变成11分类。第二个就加大步长,原文中写的是3000多步,也就是100epochs;我跑到1000步最高达到0.71,之后就没试过了。

请问是每个_create_examples都需要加random.shuffle(examples)吗?

@Duanexiao
Copy link

image

@NancyLele
Copy link

@jotline
我有个问题,对于测试集一定要赋标签吗。
若不给test加标签,file_based_convert_examples_to_features就会报错,提示label是none。
若加了一个常量标签(即所有测试数据固定一个标签),那么预测结果就变成了之前设定好的标签。
这个问题,要怎么解决呢?

@ann22
Copy link

ann22 commented Jul 21, 2020

我用您的代码跑了一下数据,eval accuracy 只有0.1,predict 的结果并没有图片中的80%那么高?

没有shuffle数据的原因 @yun97 @hxs91

您好,为什么要将数据打乱

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests