-
Notifications
You must be signed in to change notification settings - Fork 85
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
the reasult not well #49
Comments
请问你是用的pytorch版吗? |
这个数据集用于训练部分数据是23w左右,验证部分数据量1.5w左右。我想先在poolsize=1000达到0.9以后,再试试10000的。
|
调参需要专用平台。手工调参的话可以参考automl_config.yaml末尾关于参数的区间。 |
感谢。我的数据集小确实不太容易操作。 |
https://drive.google.com/file/d/15HoKv0efrVXNTsqCxoq2Swgh6ohuq5jI/view?usp=sharing |
因为我自己模型query不是很好,从头捋一遍的时候发现一个问题 例如convert inputstream to string |
我们简单的对代码里的token作了camel split, query没有拆分,你可以都试试。 |
|
谢谢你提供的线索,可能代码还存在bug。如果找到原因麻烦您告知。 |
原因貌似在repr_code.py中data_loader = torch.utils.data.DataLoader(dataset=use_set, batch_size=args.batch_size, shuffle=False, drop_last=False, num_workers=1)的batch_size,您的代码默认是10000.我执行query语句input stream to `string,top5结果如下: `('public static String inputStreamToString(InputStream is) throws MPException { String value = ""; if (is != null) { ('private static String inputStreamToString(InputStream in) { try { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in)); ('public static String inputStreamToString(InputStream in) { StringBuffer buffer = new StringBuffer(); try { BufferedReader br = new BufferedReader(new InputS ('public static String inputStreamToString(InputStream in) { Scanner scanner = new Scanner(in, "UTF-8"); String content = scanner.useDelimiter("\\A").next(); scanner.close(); return conte 当我把batchzise设置成1. top10结果如下 ('private byte [ ] decryptStream ( byte [ ] key, byte [ ] keepassFile ) throws IOException { CryptoInformation cryptoInformation = ne batchzise=1的结果更相关,我不知道这是为什么。我不太熟悉这个批操作的影响来自哪里。如果你找到原因请希望您的回复。 |
见repr_code.py第50行。根据现在的设置,chunk_size=2000000, 你的codebase需要至少达到这么多代码系统才存储你的code vector. 我怀疑你搜索的时候用的老的code vector(请确认). 我这边暂时先不改,以防引起其他问题,后面时间充裕会完整修改调试。 |
我有注意到您说的这块。
我的codebase大小是1569525,chunksize是2000000,如果nprocessed未达到chunksize会在第56行存储code vector.
我也常尝试将chunksize设置成20w,生成8个codevecs向量文件。
结果和chunksize是200w一样。
我确认我在尝试新的reprcode.py时,将之前的的向量文件删除。同时也在search.py进行相应修改。
我也尝试过在reprcode.py和seaech.py把chunksize去掉,都一次性处理。结果和上面也是一样的。
然后做了codebase 大小为1(仅包含inputStreamToString代码片段)。发现这个问题。
修改usedata的加载批次batchsize,出现这样结果。这是我处理时候的过程。感谢您之前的回复,对我帮助很大。
…---Original---
From: "Xiaodong Gu"<[email protected]>
Date: Sat, Jul 18, 2020 10:04 AM
To: "guxd/deep-code-search"<[email protected]>;
Cc: "Author"<[email protected]>;"Direction"<[email protected]>;
Subject: Re: [guxd/deep-code-search] the reasult not well (#49)
见repr_code.py第50行。根据现在的设置,chunk_size=2000000, 你的codebase需要至少达到这么多代码系统才存储你的code vector. 我怀疑你搜索的时候用的老的code vector(请确认).
解决办法:在codebase大小小于chunk_size时只存储一个code vector文件,相应的在search.py里load vector时也要做相应更改。
我这边暂时先不改,以防引起其他问题,后面时间充裕会完整修改调试。
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
已解决PyTorch版的Bug, 问题在modules.py文件里的 |
dcs->epcohStep=260000
top 10 ACC=0.767, MRR=0.32433587301587297, MAP=0.32433587301587297, nDCG=0.42961201846689157
top 5 ACC=0.6995, MRR=0.44343166666666667, MAP=0.44343166666666667, nDCG=0.5078651066901124
top 1 ACC=0.4761, MRR=0.4761, MAP=0.4761, nDCG=0.4761
数据集是codesearchnet中提供的Java数据,这是我训练过程达到的最优结果,poolsize设置的1000,达不到您之前说的结果要在0.9以上。
我将数据集按您所说划分为train和valid部分。感觉valid起的作用和test部分一样。
执行search的结果非常糟糕。我应该如何解决这个问题,使得search结果明显一些?
我之前用了您提供的epoch500来在大的codebase运行的时候,结果也是相关的比较少。我当时没找到原因,现在到我自己处理的时候,结果也这样,非常期待回复。
The text was updated successfully, but these errors were encountered: