百度飞桨图神经网络7日打卡营学习心得

图卷积网络原理

首先可以利用节点特征进行关系预测、节点预测等任务。如果要将节点任务推广到图像领域,可以对图进行Graph Pooling操作,例如求和、均值、最大值等操作得到整张图的图特征,得到图特征之后就可以进行图相关的任务了,例如图匹配、图分类等。

图神经网络和游走模型的区别:

游走模型需要先训练得到embedding,再利用embedding做下游任务,如分类等。而图神经网络是端对端模型,边训练节点边做下游任务。

 

理解的图卷积网络三大问题:

  1. 如何从图像卷积类比到图结构卷积;
  2. 如何用消息传递方式实现图卷积网络;
  3. 如何用多层图网络实现节点分类任务。

从图像卷积类比到图结构卷积

图像卷积:将像素点周围的像素按照不同的权重叠加起来;

图卷积:将一个节点周围的邻居按照不同的权重叠加起来。

主要区别在于图结构周围的邻居并不想图像那样数量固定。

 

图卷积网络计算公式

其中,是激活函数,是一个学习的权重。

代表邻接矩阵,代表度矩阵,是每一层的节点表示,通过下面的例子来理解。

右图为左图的邻接矩阵表示形式,也就是的形式,将每一行的元素相加并置于对角线位置处,就可以得到度矩阵,即,然后就可以继续求得,下图是流程。

 

为了方便理解,将上式转化为下式:

的物理意义如下:

的第一行是A第一行与矩阵相乘:

因为A的前三列元素均为1, 后面其他元素为0,这样可以得到第一行表达式形式为:

上面的过程类似于消息传递,将0号、1号、2号的的信息传给0号。

 

使用消息传递的方式实现图卷积网络

  1. 边上的源节点,向目标节点发送特征;
  2. 目标节点收到的特征进行聚合。

利用GCN的度给边加权,也就是给节点的重要性加权,度越大,包含的信息量越小,这在分母中可以体现。

 

在百度飞桨图神经网络平台PGL中实现消息传递

实现程序如上图,send函数和recv函数分别对应消息发送和消息接收函数。

 

用多层图网络实现节点分类任务

步骤如下:

  1. 节点间进行特征传递;
  2. 对每一个节点都过一层GNN。

重复两个步骤L次,就可以得到一个多层图卷积神经网络。第0层的H其实就是原有节点特征。

将最后一层的表示通过分类器就可以对每个节点进行分类了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Android Studio 中使用百度地定位打卡功能,您需要完成以下步骤: 1. 在百度地开放平台注册账号并创建应用,获取到应用的 AK(密钥)。 2. 在项目的 build.gradle 文件中添加百度地 SDK 的依赖: ``` dependencies { implementation 'com.baidu.androidsdk:map-sdk:11.0.3' } ``` 3. 在 AndroidManifest.xml 文件中添加百度地 SDK 的权限和必要的组件: ``` <manifest> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="your_app_ak" /> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" /> </application> </manifest> ``` 其中,`your_app_ak` 需要替换为您的百度地应用的 AK。 4. 在代码中初始化百度地 SDK,启动定位服务,获取当前位置信息: ``` // 初始化地 SDK SDKInitializer.initialize(getApplicationContext()); // 获取定位服务 LocationClient locationClient = new LocationClient(getApplicationContext()); LocationClientOption locationOption = new LocationClientOption(); locationOption.setOpenGps(true); // 打开 GPS locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); // 定位模式 locationOption.setCoorType("bd09ll"); // 坐标类型 locationOption.setScanSpan(1000); // 定位间隔 locationClient.setLocOption(locationOption); locationClient.start(); // 获取当前位置信息 locationClient.requestLocation(); locationClient.registerLocationListener(new BDAbstractLocationListener() { @Override public void onReceiveLocation(BDLocation location) { if (location == null) { return; } double latitude = location.getLatitude(); double longitude = location.getLongitude(); // TODO: 将定位信息上传到服务器或者进行打卡操作 } }); ``` 在获取到当前位置信息后,您可以将其上传到服务器或者进行打卡操作。需要注意的是,百度地 SDK 的使用需要在合法的网络环境下进行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值