lambdanet:图结构推断变量类型---docker复现记录

使用docker

1. 安装了docker后,输入命令行

docker build -t lambdanet:v1 . && docker run --name lambdanet --memory 14g -t -i lambdanet:v1

创建lambdanet:v1容器

以后启动对应容器执行

docker start lambdanet:v1

docker attach lambdanet:v1

成功进入容器

2. 下载好模型后,将模型放在根目录下

https://drive.google.com/uc?id=13guFN8sDxPCqK_iWvgn3_4uQah5HlH34&export=download

3.生成交互式结果,执行

sbt "runMain lambdanet.TypeInferenceService"

命令执行成功

接下来需要在下面输入分析的项目目录:默认为data/ts-algorithoms

 执行成功后 

会为每个具体文件生成(source code position, predicted type)对

文件内容的具体含义为为某个位置的变量或函数进行推断的Top5预测

=== File: index.ts ===表示某个分析的文件

(2,14)-(2,18): [1](33.65%) Array, [2](10.08%) Object, [3](3.66%) Function, [4](3.66%) String, [5](3.12%) HTMLElement  表示(2,14)-(2,18)这个位置的元素,前5个预测类型为[1]...[5]

对应到文件内容为

 4. 若想生成最终的html文件,包含精确度的计算等

4-1)下载parsedRepos文件夹,确保它存在容器内部的data文件夹下

4-2)默认runTrainModel.scala中的配置路径或自行修改,默认时执行

sbt runTrained

报错:

找不到/usr/src/lambdanet/data/parsedRepos/meta

我对docker还不是特别熟悉,这里遇到的问题是下载好的文件夹解压后放入项目目录下,但是docker容器中的data目录检测不到该文件夹的存在,是路径问题

于是把本地的解压好的文件夹复制到了对应的容器里

docker cp  本地完整文件夹路径  容器长id:容器中需要存放该文件夹的完整路径

docker cp /data2/mxy/Code/LambdaNet-ICLR20/data/parsedRepos c06090a65af791f024ef15d859d812b07e91aaec1daea33f0336d4d32fda0fb0:/usr/src/lambdanet/data

复制前

复制后

 再次执行sbt runTrained

 输出最终的准确率

最终生成的ts-algorithms.html文档存放在docker容器中的data/ts-algorithms目录下,本地看不到,容器中可通过ls命令看到有一个predictions文件夹,其中就存放着最终的html文件

 若想在本地查看,可以把文件复制出来

docker cp 容器id:需要复制的文件在容器中的路径  本地保存路径

docker cp c06090a65af791f024ef15d859d812b07e91aaec1daea33f0336d4d32fda0fb0:/usr/src/lambdanet/data/ts-algorithms/predictions/ts-algorithms.html /data2/mxy/Code/LambdaNet-ICLR20/predictions

成功后本地路径

文件内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值