再见,ACL!

news/2024/7/7 19:30:30

点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者:阿广

公众号:视学算法


今天分享一篇发表在ACL2020上关于KGQA的文章《Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings》。

这篇文章简约到我都不敢相信能够发表在ACL上,相比与之前复杂的KGQA模型,这篇文章仅仅将KG和问题分别进行embedding,然后将KG和问题统一到同一个空间中,计算问题和答案实体的相似度,即可得到最终的答案。

看起来没啥,其实这篇文章的卖点是将额外的knowledge引入到了不完整的KG中,能够在KGQA任务的同时补全KG。

而引入额外knowledge的策略,是在执行不完整的KGQA下游任务的时候使用预训练之后的KG embedding。e.g.:TransE,TransH。

这篇文章同时也开源了代码:

https://github.com/malllabiisc/EmbedKGQA

由于工作需要,需要跑通这篇文章的代码,大概耗时了一天的时间踩了很多坑,最终终于在公司的服务器上把这篇EmbedKGQA给跑了起来。

下面说一下在公司的服务器(docker)上成功运行代码的步骤,已经遇到了那些坑。

首先将代码从github上clone下来,然后输入:

python3 main.py --mode train --relation_dim 200 --do_batch_norm 0 \
--gpu 2 --freeze 1 --batch_size 16 --validate_every 10 --hops webqsp_half --lr 0.00002 --entdrop 0.0 --reldrop 0.0 --scoredrop 0.0 \
--decay 1.0 --model ComplEx --patience 20 --ls 0.0 --l3_reg 0.001 --nb_epochs 200 --outfile half_fbwq

我一般喜欢从结果推问题,所以我基本都是先运行一下程序,看报哪些错,缺少哪些库,对于一些简单的问题,就安装相应的库或者使用anaconda初始化新环境来解决。

这其中包括一些pip库的安装,还有albert-base的下载,大概使用了两个小时,安装完成之后,程序能够正常运行,我以为大功告成了,但是等加载完数据之后,我发现将数据加载到GPU的时候,报错了,如下所示:

AssertionError:
The NVIDIA driver on your system is too old (found version 10000).

这很简单呀,要不升级CUDA,要不降低torch的版本。。。可是想象和现实是不一样的,很多事情都证明这一点,但是我还是抱着这是个很简单的心态去搞了一下,但是事实又沉重的给我了一拳。

while(我是一个追求理想的学术垃圾人):if 阿广从cuda9 update to cuda 11:服务器docker没有权限更换cuda版本,升级失败!if 尝试下载cuda等多种策略:失败if 阿广将torch1.7降低到torch1.2:future feature annotations is not defined  # 这是python版本的原因,只有python3.7才有这个函数,于是更换python版本if python3.6--->3.7ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/hadoop-# 这是版本不匹配的原因,查阅很多资料,需要在/usr/lib64替换相应的库# 但是苦逼的是,公司分配的docker没有权限更改/usr/lib64的权限此代码很多函数用的torch1.7写的,所以还得使用torch1.7

经过了半天的爬坑,代码没能运行起来,但是我对安装python练得炉火纯青,总结出了在pc docker上快速安装不同python的秘籍:安装不同版本的anaconda即可获得对应的python版本,详细的可自行查阅。

在这儿给大家一个anaconda的版本大全:

https://repo.anaconda.com/archive/

经过多次试探,发现此代码只能运行于python3.7,torch1.7版本,这是确定的。将python版本安装到了3.7版本,将pytorch安装到了1.7版本,又一次验证了事实是沉重的,又出现了error:

ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/hadoop-aipnlp/anaconda3/envs/kbqa_zan/lib/python3.7/site-packages/scipy/_lib/_uarray/_uarray.cpython-37m-x86_64-linux-gnu.so)

这。。。要不弃坑吧?我还适合学计算机么,要不回家种地吧,等等等消极的情绪涌上心头,顿时打开虎牙看了一局lol比赛,在游戏中也印证了 菜就要被打。。。

一开始看到这个错误,搜到的资料都是让在/usr/lib64下更换一下某个库的软连接就ok,花了我好几块大洋从某宝上边买了csdn的库,然后上传的时候发现公司的服务器上没有权限更改此文件夹下的文件,我陷入了人生的死循环。

while(1):if 放弃前边浪费时间我玩游戏不香?else:我应该如何做?感觉陷入了循环

后来我发现我思考放弃还是坚持也是个循环,我觉得不行,不能浪费生命,坚持就是胜利。

于是我关掉电脑,躺在床上用手机搜了一些资料,不过惊奇的发现上边那个错误是由于site-packages 后边的库scipy库引起的,所以我执行了下边的操作:

pip unintall scipy
pip install scipy

卧槽!竟然解决了。于是大家遇到上边错误的时候,只需要卸载再安装出错的库即可,血的教训,拿走不谢。

点个在看 paper不断!


http://lihuaxi.xjx100.cn/news/271971.html

相关文章

ftp设置

iis FTP服务器,隔离多用户配置操作 2009-12-03 19:14IIS6 FTP服务多用户配置IIS6是微软捆绑在Windows Server 2003中发布的一款优秀的Web服务器组件,随着Windows Server 2003在服务器领域的广泛应用,Web服务器大量使用了IIS6作为服务器软件&…

Nginx反向代理服务器

安装Nginxyum -y install nginx修改并添加配置文件vi /etc/nginx/nginx.conf在HTTP模块中添加:client_header_timeout 3000; client_body_timeout 3000; fastcgi_read_timeout 3000; client_max_body_size 32m; fastcgi_buffers 8 128k; fastcgi_buffer_size 128k; …

grails springboot_groovy 使用spring boot

<?xml version"1.0"encoding"UTF-8"?>4.0.0groovy-springgroovy-spring1.0-SNAPSHOTjarorg.springframework.bootspring-boot-starter-parent1.5.2.RELEASEcom.ktvme.Mainorg.springframework.bootspring-boot-starter-testtestmysqlmysql-connect…

10w行级别数据的Excel导入优化记录

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章作者&#xff1a;后青春期的Keatswww.cnblogs.com/keatsCoder/p/13217561.html需求说明项目中有一个 Excel 导入的需求&#xff1a;缴费记录导入由实施 / 用户 将别的系统的数据填入我们系统中的…

P2055 [ZJOI2009]假期的宿舍

有点烧脑。。。 这道题是求二分图完美匹配。没看请题意还不知道是求完美匹配&#xff0c;结果爆零。 人一共分三种&#xff1a; 在校学生 && 回家。这类人拥有一个床&#xff0c;但是不睡。在校学生 && 不回家。这类人拥有一个床&#xff0c;但也要睡一个床。有…

以下关于python缩进_Python 的缩进是不是反人类的设计?

Python 的缩进是不是反人类的设计&#xff1f; 前些天&#xff0c;我写了《Python为什么使用缩进来划分代码块&#xff1f;》&#xff0c;文中详细梳理了 Python 采用缩进语法的 8 大原因。我极其喜欢这种简洁优雅的风格&#xff0c;所以对它赞美有加。 然而文章发出去后&#…

拓扑机器学习的神圣三件套:Gudhi,Scikit-Learn和Tensorflow(附链接代码)

来源 | 数据派THUHi大家好。今天&#xff0c;我想强调下在机器学习中拓扑数据分析&#xff08;TDA&#xff0c;Topological Data Analysis&#xff09;的力量&#xff0c;并展示如何配合三个Python库&#xff1a;Gudhi&#xff0c;Scikit-Learn和Tensorflow进行实践。拓扑数据分…

清华校友打造Python调试神器

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI写代码时提笔千行&#xff0c;debug时却低效抓狂……几乎每个编程者都逃不了这样的纠结。通过编译器一行行地去找bug&#…