0%

为什么需要图神经网络

对于一个图而言,我们通常注意于三种特征:

  1. 整个图的特征,例如图中有多少个节点,多少条边。
  2. 图中节点的意义,例如对于一个图片的图表示,可能一个节点就表示了一幅图片的一个像素点。
  3. 图中边的意义,例如对于社交网络而言,两个节点之间有边就表示两个人是有联系的,反之则没有联系。

因此,图神经网络的任务也通常集中于这三种,我们可以分为Graph-level,Node-level以及Edge-level的任务。

如何表示一个图

无论要解决什么样的任务,首要任务肯定是要先表示出来一个图,比较容易想到的解决方案就是构造邻接矩阵。但是邻接矩阵有它的缺点,就是太过于稀疏了,我们在学Linear Algebra的时候都知道,稀疏矩阵其实是一个不好的东西,同时对于我们计算机而言,稀疏矩阵同时占用了大量没用的内存,这对于我们以后的计算肯定是会降低性能的,所以我们这里可以采用构建邻接表的形式来表示一个图。

阅读全文 »

之前只是听说过python可以使用beautifulsoup或者是selenium之类的库进行爬虫的操作,也听说过一些理论,例如能爬API就爬API,爬不了API再去爬网页。

这次需要自己手动的去爬取存储漏洞代码的网站SARD以及Github commit

爬取漏洞代码

其实这里我是用selenium模拟了浏览器的这样一个功能,但是后面发现只要爬API就行了。

Selenium模拟浏览器

首先需要安装相应浏览器的驱动,我用Edge比较多,因此选择了Edge的driver,实际上你用哪个就在网上下哪一个然后安装到和python安装目录一样的路径下就ok了。

观察这个网页,发现我们需要找的代码其实是一个滚动的状态,就是说随着鼠标的下滑,它之前的代码会从页面消失,后续的代码会在页面展现,单纯的使用一个selector根据它的class来提取里面的代码肯定是不行的。

阅读全文 »

蔚来数据分析日常实习面试

介绍一下自己的项目

介绍了在NUS做的iwallpaper项目的数据获取以及如何处理的。

一个数分场景题

妈的,我都没听过那些名词,什么数仓异动,最后尴尬的和面试官说没学过不好意思😭

Union和Union all区别

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

了解窗口函数吗,说说看呢

1
2
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名>)
阅读全文 »

Church Numbers are the union of natural numbers which are represented by lambda functions.

Math

Think that we need to use function to represent numbers, what method should we take?

The way to describe numbers by church numbers is that:

$0:x$

$1:f(x)$

and so on

So we can use codes to represent them easily by just call the function we need for the numbers times.

阅读全文 »

排序

快速排序

基本思路是,先选择一个基准x,然后根据这个基准来从两边进行判断,这样分成两部分,一部分比基准x小的,另一部分是比基准x长的。
然后再分别对这两边部分递归的进行快速排序,最终会得到一个排好序的数组。
时间复杂度:
最好:$O(nlogn)$ 最坏:$O(n^2)$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def quick_sort(q,l,r):
if l >= r:
return q
x = q[l]
i = l - 1
j = r + 1
while i < j:
i = i + 1
while q[i] < x:
i = i + 1
j = j - 1
while q[j] > x:
j = j - 1
if i < j:
q[i],q[j] = q[j],q[i]
quick_sort(q,l,j)
quick_sort(q,j + 1,r)
return q
阅读全文 »

Go语言入门

第一个hello world

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("hello,world!")
}

注意go语言中{}不能单独在一行写出,例如

1
2
func main()
{}

是不允许的。
同时注意,我们导入了fmt这个包,但是像fmt.Printf这种形式的变量才能够被外部访问:
只有标识符为大写字母开头的才能被外部变量引用(like public),而小写字母开头的标识符对外是不可见的(like private)

阅读全文 »

学校(UESTC)那边也让大家提交了短期交流的一些心得体会,但是我向来是不希望被人所拘束着去写一些东西,所以那一篇直接让GPT生成了。因此便有了这一篇游记(流水账)。

打算就按照时间线来回顾以下在新加坡国立大学(NUS)的经历吧。

7.4 Departure to ChongQing

由于国际处的拖拉,我们并没有买到从成都直飞的航班,而是前往重庆进行转机,同时由于航班的阴间时间,我们还要在重庆住一晚(:

本来还有去洪崖洞等的有名地方故地重游一次的打算,结果到重庆也都到晚上了,酒店还在机场旁边,遂直接睡觉了(

(7.4在酒店旁边吃的火锅,重庆火锅还是好吃的)

7.5 Departure to Singapore

困困困困困,一大早就起床赶飞机了,不是所有人都见过早上4.00的重庆

阅读全文 »

本文准备跟着b站小土堆的pytorch教程系统地再熟悉一下pytorch的操作,去年这时候就打算跟着小土堆的教程来看,结果又鸽了(还有个原有就是当时太菜了,根本看不懂),今年决定好好的看完做完。
建议学时:18h

Pytorch环境安装

略,本台电脑上面没有NVIDIA的显卡,所以在官网安装了pytorch的CPU版本。

如何查看包中某些函数如何使用

1
2
dir(torch)
help(torch.cuda.is_available)

help()函数输出的是官方文档的解释内容

或者直接ctrl+单击到不知道的函数上就行了(前提是你知道这个函数叫啥,建议边学边查文档)

阅读全文 »

介于听说去年新高考一卷数学难度很高,今年全国高考结束后,笔者便想着做一做新高考一卷的数学,顺便锻炼一下LaTeX的写作能力(主要还是没事干,ddl都延期了)

以下是后四道大题的题目与题解:

T19

已知函数 $f ( x )= a ( e^{x} + a )- x$.

(1)讨论 $f ( x )$的单调性;

对于$f(x)$求导,有:

$f^{’}(x)=ae^x+1$

显然,$a≤0$时,$f(x)$单调递减

$a>0$时,在($-∞$,$-Ina$)上$f(x)$单调递减,在($-Ina$,$+∞$)上$f(x)$单调递增。

阅读全文 »

Python装饰器用过吗,是什么?

是的,我熟悉Python装饰器。在Python中,装饰器是一种特殊的函数,用于修改其他函数的行为。装饰器函数接受一个函数作为输入,并返回一个新的函数或修改输入函数的函数。

装饰器的语法使用@符号将其应用于函数,放置在被装饰的函数的定义之前。当你调用被装饰的函数时,实际上执行的是装饰器函数返回的新函数或修改后的函数。

下面是一个简单的装饰器示例,展示了如何在函数调用前后打印日志信息:

阅读全文 »