发布于 

实验室苦逼搬砖暑假生活纪实

记录一下自己暑假在实验室做的一些事情和收获吧。
虽然进步很小很缓慢,但总归是有的。

7月13日

  1. 关于论文的主要内容,学长进行了讲解:

    任务目标:通过迁移学习实现用户对齐问题,并将对齐结果与其他的用户对其方法进行比较:其中的方法包括“监督类型的”和“非监督类型的”,最终论文里要将我们的方法与其他至少三四种方法进行比较。

  2. 下面的时间应该做到:
    0)熟悉各数据集,每个数据集经过哪个函数变成什么样子?
    myspace文件夹中,.node文件前一个数字表示结点标号,后面的表示用户名。
    .edges文件每一行的两个数字表示边连接的两个节点。
    aminer.tar.gz,flicker.tar.gz,lastfm.tar.gz,linkedin.tar,gz,livejournal.tar.gz这五个压缩包都是上面形式的点和边
    aminer-linkedin.map.raw文件,将aminer.tar.gz文件中的结点映射到linkedin

    1)DRNE(将图表示矩阵转化成向量)
    转化成的向量是什么格式?它是怎样表示矩阵的?它的输入和输出是怎样的?

    2)wGAN的一个变种函数(生成相应的对齐结果)
    它的输入和输出是怎样的?

7月14日

非常艰难的一天,DRNE作者的readme文档写错了,指令是错误的,我第一次接触这个看不懂debug信息,学长也没发现。最后发邮件问原作者才知道readme中把\打成了/🤬
这一件事情花了我三天的时间,一开始以为自己的环境没搭建好,安装了各种库,利用anaconda创造了许多环境测试,我哭了。

  1. 关于安装tensorflow的方法:
    莫凡Python
    ling’s bolg

    安装时遇到的问题

  2. 上面这些乱七八糟的都不如直接pip install,觉得慢的话换成清华镜像资源清华大学开源软件镜像站

pypi镜像使用帮助

7月15日

学长又分配了两个任务,第一个是判断图是否为连通图。
其实要是只有几个点倒简单,但是仅仅接触了一点`Python`就要写个几千点判断连通图的程序,我想到的第一点是效率会非常低。。。最后这个代码学长亲自写了。

这里顺带复习了一下数据结构的东西

  1. 邻接矩阵与邻接表
    邻接矩阵
  2. 边表
    边集表,图的储存结构之一。边表由表头结点和表结点两部分组成,图中每个顶点均对应一个存储在数组中的表头结点。
    边表存储了以点为起点的边的信息,邻接表存储了以点为出发点的点的信息。
  3. edgelist边表中每行有两个数,表示这两个结点之间有边
  4. python nx.has_path(G, source, target)用来判断是否为连通图
  5. networkx库查阅资料:
    network资料
    NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。
    network官方文档

发现文档里举的例子都是自己输入的个别的点,我可以先研究一下DRNE的代码,从里面得到一些有用的内容。

代码看不懂的地方,首先就是embedding:
关于embedding

7月16日

  1. CONSNET数据集:
    deepwalk-master先不用,做对比算法的
    DRNE-master 用来做embedding的
    GAN用来生成模型
  2. 关于anaconda的使用:
    Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境。
    我们常常会遇到这样的情况,正在做的项目A和项目B分别基于python2和python3,而第电脑只能安装一个环境,这个时候Anaconda就派上了用场,它可以创建多个互不干扰的环境,分别运行不同版本的软件包,以达到兼容的目的。
    Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。
    Anaconda入门

7月17日

conda有一点好处是,如果你需要安装一个包,系统将自动检查这个包需要的前置包并且安装,比如你要安装TensorFlow,而TensorFlow会用到很多像前置包像pandas、matiplot等,如果你在单纯的python下没有安装pandas等包就直接安装TensorFlow,那么和有可能无法使用,而使用conda安装TensorFlow将会询问你并自动帮你把缺少的前置包安装好
  1. 使用anaconda先创建一个用于drne的环境

    安装以上环境
    其中添加的资源库都没有tensorflow == 1.2.0
    按照提示

    To search for alternate channels that may provide the conda package you’re looking for, navigate to https://anaconda.org and use the search bar at the top of the page.

    去官网搜索资源即可下载

    环境安装完成

  2. anaconda跑不出来,先学习anaconda的使用方法:
    anaconda1

    anaconda2

    anaconda3

7月19日

继续研究network库

7月21日

研读networkx的文档,在后面处理相关问题的时候会简单很多。
在学习图的过程中,遇到的问题:

最后一行输出,我记得莫凡python里有讲这个,关于迭代器的东西,然后搜索了一下,继续进行学习:
Python迭代器

任务:
写一个可以将ground truth抽样的函数,给定一个列表,例如[0.3, 0.5, 0.7],
0.3表示在groundtruth里面随机抽样30%,并生成名为new-gt-0.3.txt的文件,列表长度为多少,就生成多少个这样的文件。

7月22日

readme文档中AcrossNetworkEmbeddingData文件夹里的文件和实际文件夹里的不一样,是否有问题?

anchor users 定位用户

7月23日

读学长写的:

  1. 连通图代码
    numpy.zeros
    https://blog.csdn.net/qq_28618765/article/details/78085457

  2. 抽样代码
    自己完成:数据转换代码
    python open函数的参数
    https://www.runoob.com/python/python-func-open.html

if __name__ == "__main__":
main()

https://blog.csdn.net/qq_33254870/article/details/81668297

https://cloud.tencent.com/developer/ask/172682

一定要系统地学一下python!要不然什么都不会,写起来效率太低了!!

怎样用csvreader读入用tab分隔的文件——直接用\t

https://www.runoob.com/python/att-list-len.html

for while if后面都要有冒号

python的‘和’符号是 and

关于newline参数

7月24日

把trans_result打成了tranns_result,出现问题,,,,, python也没有报错,还好自己发现了
i = 0
while(i < len(trans_result)):
# print("Delete process...")
if(trans_result[i][0] == 0 or trans_result[i][1] == 0):
trans_result = np.delete(trans_result, i, axis = 0)
else:#!!!!注意这里的else!!!否则会出错
i = i + 1
❤️ 🧡 💛 💚 💙 💜
中间几天帮张老师查项目资料来着——关于“认知计算”和“意图推理”

7月31日

如何调出eclipse左边文件栏

anaconda prompt 切换到e盘:

drne配适自己的代码:
activate for_drne
e:

8月4日

coursera视频无法播放
https://blog.csdn.net/qq_39521554/article/details/79039548

欧式距离

https://www.cnblogs.com/kimkat/p/9938475.html

测试程序(把程序拆成几小部分)

  1. np.linalg.norm(vec1 - vec2)
  2. 读入部分,怎样读出来两个向量

python cookbook 真的能学到很多东西!!
挺有用!

https://zhidao.baidu.com/question/115008008.html

https://www.cnblogs.com/bakari/p/4807847.html

8月5日

  1. 查数据类型:
    https://www.cnblogs.com/carlber/p/9362584.html

  2. 列表最后有一个逗号,就会多出来一个空元素
    https://www.cnblogs.com/lostme/articles/8857083.html

  3. operands could not be broadcast together with shapes (2,) (250,)
    https://blog.csdn.net/Odyssues_lee/article/details/85244735

  4. 运行map()后,报:map object at 0x02629E50解决方法与原因分析​​​​​​​
    https://blog.csdn.net/weixin_40807247/article/details/82797378

https://www.cnblogs.com/hwd9654/p/5707920.html

  1. 从字符串中提取数字:
    https://www.cnblogs.com/dancesir/p/11021829.html

  2. python中,“”是什么意思?怎么解决?
    https://zhidao.baidu.com/question/329317296.html

  3. 数据格式要求很严格:
    3 2
    5 4
    7 6
    9 7
    tab和x个空格不一样

  4. 输出百分比:
    https://blog.csdn.net/u013553529/article/details/78567696

8月7日

博客搭建
https://blog.csdn.net/fangquan1980/article/details/80648171

https://blog.csdn.net/zyupupup/article/details/85098366

https://blog.csdn.net/weixin_42419856/article/details/81141546

https://blog.csdn.net/lvsehaiyang1993/article/details/80881433

http://zhangchunlei.com/blog/2014/12/01/modify-a-record-of-my-website-dns/

On a Windows machine, you'll want to run nslookup your-domain.com and ensure that the output does not include any of the deprecated IP addresses (207.97.227.XXX, 204.232.175.XX, or 199.27.73.XXX).
If you're on a Mac or Linux machine, simply paste this command into a terminal window, replacing your-domain.com with, your site's domain. dig your-domain.com | grep -E '(207.97.227.245|204.232.175.78|199.27.73.133)' || echo "OK". If you see the word "OK", you're all set.

https://blog.csdn.net/a1023182899/article/details/77461567

8月8日

https://www.v2ex.com/amp/t/465570

LINE(PALE中)
GAN
画圈

8月11日

xlrd模块:
https://www.cnblogs.com/insane-Mr-Li/p/9092619.html

8月13日

  1. random.choices
    https://blog.csdn.net/lcqin111/article/details/83504029

  2. Cannot feed value of shape (256, 255) for Tensor ‘Placeholder:0’, which has shape ‘(?, 256)’
    http://www.mamicode.com/info-detail-2346029.html

for i in range(4000):
print("--------------training---------DDDDDD----------EPOCH:" + str(i) + "-----------------------")
for j in range(5):
mm = np.reshape(random.choices(f_d, f_g, k=256))
nn = np.reshape(random.choices(t_d, t_g, k=256))
rms_train1, loss1 = sess.run([model.rms_train_op1, model.loss_d], feed_dict={model.s: np.array(random.choices(f_d, f_g, k=256)), model.t: np.array(random.choices(t_d, t_g, k=256))})
for every in model.clip:
sess.run(every)

总结

7.13
了解任务详情

7.14
装相应的环境,跑DRNE,发现了文档的错误
DRNE在命令行窗口运行。
输入:edgelist
输出:.npy(需要再写程序转换为embedding)

7.15
想要完成任务:判断是否为连通图
结果就是不行,,

7.16
还在为DRNE的无脑错误 debug

7.17
学习了anaconda的使用,还在跑DRNE,,

7.18
DRNE,,

7.19
完成一个可以将ground truth抽样的函数,例如[0.3, 0.5, 0.7]

7.21
学习关于图的内容,不敢下手自己写代码

7.22
开始跑IONE(java)

7.23
数据转换代码,将cosnet数据集中的用户名转换成结点号

7.24
删去edges里面没有在groundtruth中出现的记录,以此来缩小数据集

7.25
用学长改过的代码跑ione

7.31
用anaconda环境跑DRNE

8.4
写计算距离,画圈的代码

8.5
计算距离的代码,注意数据格式

8.7
博客搭建

8.8
跑PALE中的LINE,尝试WGAN

8.11
跑学长改过的WGAN

8.11
跑学长改过的WGAN完成,DRNE结果的npy转成txt