自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 zero-copy加速GNN训练笔记

前言:  好久没更新博客了,添加一篇旧文。该文内容实际有点过时了,DGL最近把data pipeline重构了一下(https://github.com/dmlc/dgl/pull/3665),应该比文中内容更丰富一些了。导言:  最近工作需要调研一下DGL社区的一些动态,发现了这篇针对GNN训练的论文: Large Graph Convolutional Network Training with GPU-Oriented Data Communication Architecture,这里对此做一

2022-04-15 19:19:55 1097 5

原创 DGL中minibatch训练子图Prefetch到GPU中加速

导读: 这两天在研究怎么加速DGL上GNN的训练,使用line_profiler工具发现,除了forward和backward之外,最耗时的是CPU与GPU之间的数据传输(即mini batch训练时将当前batch的子图及对应的feature和label传输到GPU中)。因此尝试使用prefetch,希望在当前batch进行GPU计算的同时,将数据从CPU传到GPU。本文使用的例子是:https://github.com/dmlc/dgl/tree/master/examples/pytorch/ogb.

2021-04-20 19:06:43 1423 3

原创 DGL-kernel的变更(3)

导读: DGL kernel中针对Graph的计算几个版本有了不小的变动。  v0.3-0.4使用的是minigun, v0.3和v0.4源码中主要相关部分则是在对应分支dgl/src/kernel目录下。  v0.5中对kernel代码进行了重写,并不再继续使用minigun,可以参见pull 1644。此时DGL将GNN主要抽象为了SPMM和SDDMM两个接口,这里也可以参考DGL v0.5的论文。  后来AWS DGL团队又提出了一个新的基于tvm的kernel FeatGraph并发表在了S.

2021-03-30 15:35:16 322

原创 DGL-kernel的变更(2)

导读: DGL kernel中针对Graph的计算几个版本有了不小的变动。  v0.3-0.4使用的是minigun, v0.3和v0.4源码中主要相关部分则是在对应分支dgl/src/kernel目录下。  v0.5中对kernel代码进行了重写,并不再继续使用minigun,可以参见pull 1644。此时DGL将GNN主要抽象为了SPMM和SDDMM两个接口,这里也可以参考DGL v0.5的论文。  后来AWS DGL团队又提出了一个新的基于tvm的kernel FeatGraph并发表在了S.

2021-03-30 15:34:30 388

原创 DGL kernel的变更(1)

导读: DGL kernel中针对Graph的计算几个版本有了不小的变动。  v0.3-0.4使用的是minigun, v0.3和v0.4源码中主要相关部分则是在对应分支dgl/src/kernel目录下。  v0.5中对kernel代码进行了重写,并不再继续使用minigun,可以参见pull 1644。此时DGL将GNN主要抽象为了SPMM和SDDMM两个接口,这里也可以参考DGL v0.5的论文。  后来AWS DGL团队又提出了一个新的基于tvm的kernel FeatGraph并发表在了S.

2021-03-30 15:31:40 358

原创 edge_softmax时间和显存对比

接上一篇spmm之后针对edge_softmax的实验:三者的结果上实验注意:当两个结点之间有多条边时,dgl和torch.sparse中的softmax上是会有点区别的,torch构建的稀疏矩阵会直接累加两个结点之间的边上的值,dgl则会分别对待,可以参考:https://github.com/dmlc/dgl/issues/2311。import torchimport numpy as npimport torch_sparseimport dglimport torch_geometr

2021-03-30 15:27:59 665

原创 torch、torch_sparse、dgl三者spmm显存占用对比

简单比较一下torch原生,torch_sparse(pyG依赖模块)以及DGL中spmm的显存占用和时间torch原生,显存占用主要是对结点敏感(bakward的时候用的稠密张量)。# -*- coding: utf-8 -*-"""@Author: @Time: 2020/12/1@Description: """import torchimport numpy as npimport torch_sparseimport dglimport timen = 60000nn

2021-03-30 15:21:01 3349 1

原创 DGL0.5中的g-SpMM和g-SDDMM

DGL0.5中的g-SpMM和g-SDDMM导读:之前对DGL0.5论文中的g-SpMM和g-SDDMM做了个简单的笔记,这次去DGL源码中看一下其相关的使用。使用pytorch中的GATConv作为入口。  论文中提到说:users can invoke the g-SpMM and g-SDDMM kernels via theg.update_all($\phi$,$\rho$) and g.apply_edges($\phi$) calls on a DGLGraph.  正好GA

2021-03-30 15:17:09 885 1

原创 DGL0.5中的g-SpMM和g-SDDMM

DGL0.5中的g-SpMM和g-SDDMM导读:DGL0.5版本发布时,其团队也对应发表了一篇论文(https://arxiv.org/abs/1909.01315),较为详细了介绍了DGL的设计、优化以及性能。其中的重要部分就是DGL认为GNN的计算可以归纳为两种,g-SpMM(generalized sparse-dense matrix multiplication)和g-SDDMM(generalized sampled dense-dense matrix mutiplication)。这里

2021-03-30 15:05:47 2566

原创 CentOS7离线安装Docker+Nvidia Container

导读:服务器需要使用Docker,但无法连接外网,因此只能离线安装。系统版本为CentOS7.1.安装Docker一种方式是在有网的机器上,下载相应的包,具体参考:https://yeasy.gitbook.io/docker_practice/install/offline以及:https://docs.docker.com/engine/install/centos/值得注意的是,如果有网的机器系统是Ubuntu(个人用户较多),也可以下载yum后使用上述第一个链接中的方法进行安装。最终下.

2020-10-18 12:55:45 1601

原创 利用matlab处理tiff格式的遥感图像

需求:需要对tiff格式的sar遥感图像进行检测,因此通过matlab进行预处理,将tiff格式转化为jpg格式,并且提取其中的经纬度信息到txt中。最后将检测完毕的图像写回遥感图像。实现:利用matlab完成1.tiffToJPG.m 作用:将tiff转为jpg并提取信息到txt%This function is used to extract remote sensing image ...

2020-09-02 23:45:40 1887

原创 GraphSAGE无监督学习DGL实现简单梳理

DGL中master分支2020.08.20版本的GraphSAGE无监督的实现梳理。因为master分支变化很大,所以可能以后代码会不太一样。代码地址:https://github.com/dmlc/dgl/blob/master/examples/pytorch/graphsage/train_sampling_unsupervised.py1.采样是根据边的id来采的,而且使用了整个graph的所有边。n_edges = g.number_of_edges()train_seeds = n.

2020-08-23 11:00:35 4131 4

原创 TensorFlow多机分布式训练

TF分布式训练导读:记录如何使用tensorflow进行分布式训练,主要参考文档:https://tensorflow.google.cn/tutorials/distribute/multi_worker_with_keras?hl=en环境:Hadoop 3.2.1Tensorflow 2.1.0python 3.7.6使用的是CPU进行分布式训练准备 各软件安装完成后...

2020-04-01 14:13:25 1058 1

原创 TensorFlowOnSpark运行demo

TensorFlowOnSpark运行demo导读:记录正常运行tensorflowOnSpark的数据转换、模型训练、模型inference的流程,只看官方的文档很难成功运行。主页:https://github.com/yahoo/TensorFlowOnSpark环境:Spark 2.4.5Hadoop 3.2.1Tensorflow 2.1.0TensorflowOnSpa...

2020-03-31 20:19:11 1427 8

原创 matlab画柱状图并填充

导读:记录一下如何使用matlab画柱状图,并进行填充。版本: matlab 2017b.注意:使用matlab2016版本似乎会有bug。1.辅助函数makehatch.mfunction A = makehatch(hatch)%MAKEHATCH Predefined hatch patterns% MAKEHATCH(HATCH) returns a matrix ...

2019-06-20 23:04:45 12288 16

原创 ubuntu16.04下teamviewer启动不显示界面

导读:在Ubuntu下使用teamviewer的时候,通过命令行输入 teamviewer ,不会出现界面。就像这样,没有显示teamviewer的界面:[adminuser@adminuser-pc ~]$ teamviewerInit...CheckCPU: SSE2 support: yesChecking setup...Launching TeamViewer ...La...

2019-05-15 21:48:44 18826 23

原创 Flink读取HDFS中的数据源码分析

Flink版本:1.4.2 目的:本文主要是了解Flink中DataSource是如何从HDFS中读取数据的。梳理一下大致流程:  在JobManager处,通过提交得来的JobGraph生成ExecutionGraph时,会将JobGraph中的每个JobVertex都转换成ExecutionJobVertex(注意ExecutionJobVertex和ExecutionVertex...

2019-03-08 13:49:25 5511 1

原创 Ubuntu下安装Gurobi

环境:  Ubuntu16.04  Gurobi8.1step1.  去官网下载gurobi,网址:http://www.gurobi.com/downloads/gurobi-optimizerstep2:  解压下载的文件,命令如下:tar xvfz gurobi8.1.0_linux64.tar.gzstep3:  设置环境变量,注意这部分"/home/hadoop/...

2019-01-12 15:24:39 4454 1

原创 Flink中的RangePartition

Flink中的RangePartition导读:  RangePartition是Flink批处理中的一个算子,用于数据分区。  在Flink批处理的优化器中,会专门针对RangePartition算子进行一次优化,主要是通过采样算法对数据进行估计,并修改原job生成的OptimizedPlan。本文通过一个示例,对这个过程进行相关介绍。示例如下:其主要功能是先进行RangePart...

2019-01-01 21:02:42 1254

原创 对Flink集群进行远程调试

导读:在学习或者使用各个大数据框架的时候,往往想对runtime层次的代码进行调试或者跟踪阅读,但其往往部署在其他机器上,因此需要进行远程调试。本文以Flink为例,介绍如何通过IDEA进行Flink的runtime层次的远程调试。环境:  Flink1.4.2  IntelliJ IDEA  虚拟机模拟的Flink集群先对Flink的作业提交过程进行简单介绍(以批处理为例)...

2019-01-01 16:14:55 7208 5

原创 Flink集群的启动

导读:记录一下Flink源码的阅读过程Flink版本:1.4.21.start-cluster.sh  集群启动的脚本,在脚本中通过运行jobmanager.sh和TMSlaves start来启动JobManager和TaskManager。其中TMSlaves定义在config.sh中。2.config.sh  这里只看一下TMSlaves()函数,可以看到其是通过调用ta...

2019-01-01 14:17:35 4847

原创 Ubuntu下Java调用matlab

导读:记录一下java调用matlab遇到的问题环境:Ubuntu16.04java 1.8matlab 2017a1.matla打jar包:参考:https://blog.csdn.net/cs_fang_dn/article/details/502391152.注意装完后要添加环境变量:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/u...

2018-12-26 20:44:32 234

原创 通过Apache Beam官方实例User Score实验流式join

不建议阅读,太乱了使用UserScore例子中的Input.UnboundedGenerator()不使用window的时候,无界数据是不能和有界数据join的。Join需要使用相同的窗口。不能一个是globalWindow一个是fixedWindowException in thread "main" java.lang.IllegalStateException: GroupByK...

2018-12-25 16:43:05 625

原创 Beam中流的join之kafka和文件join

导读:读取文件中的数据和kafka读取的数据进行join虽然可以从kafka读,但写入文件不能采用Unbounded的形式,因此只能读前几条记录或者一段时间的记录进行处理(代码第112-114行左右)。完整代码:/** * 利用kafka进行 Join 测试 * Beam版本:2.3 * @author: maqy * @date: 2018.09.22 */import ...

2018-12-25 16:35:56 451

原创 Beam中的join

++Beam版本:2.3++Beam中默认的API中没有提供join算子,但是提供了一个额外的库,可以进行join。将以下添加到pom.xml文件中即可使用:<dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-sdks-ja

2018-12-25 16:21:31 383

原创 IDEA打jar包

Step1:File–>Project Structure–>Artifacts–> + -->JAR–>Create JAR from Module注意:同一个界面中的 Directory for META-INF/MANIFEST>MF:中的目录,可能需要把最后的 /src/main/java 改为 /src ,否则打的jar包中会缺少文件,运行会报...

2018-12-25 15:54:59 145

原创 将Flink中的批处理的WordCount转化为流处理的WordCount

将Flink中的批处理的WordCount转化为流处理的WordCount目的:将Flink中批处理的WordCount转化为流处理的WordCount作用:感觉毫无用处如何实现:将批的environmentBatch中的各个算子,在流的environmentStream中重写一遍代码如下:package org.apache.flink.examples.java.maqy;/...

2018-12-25 15:16:23 944

原创 水塘采样(Reservoir sampling)算法

最近看了Flink中的rangePartition使用了水塘采样算法,因此参考维基百科详细了解了一下。采样的关键在于对每个元素的选取需要是等概率的。水塘采样其目的在于从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况。适用问题:1.可否在一未知大小的集合中,随机取出k个元素?2.在不知道文件总行数的情况下,如何从文件中随机的...

2018-12-22 01:11:32 1375

原创 Tensorflow Object Detection API分布式训练模型

说明:Tensorflow官方的models项目(https://github.com/tensorflow/models)中已经支持了各种模型的训练和验证,并且有详细的教程,但是在models/research/Object_detection的教程中并没有提及如何进行分布式训练,本文旨在介绍如何进行分布式的Object_detection训练。环境: - 3台ubuntu 16....

2018-03-08 14:54:58 3176 9

原创 文档

SAR舰船识别文档 输入:HDFS的待检测SAR图像(.tiff文件)路径 如:/test 输出:检测出的舰船经纬度具体流程 1.通过调用命令行将HDFS上的.tiff图像下载到本地。 2.通过matlab封装的jar包,对.tiff图像进行预处理,得到jpg和经纬度的txt文件。 3.将所有jpg的图像路径通过脚本写入到 path.txt文件中 4.通过脚本调用yolo检测

2017-11-27 10:12:46 239 1

原创 yolo2 检测到的物体输出2

说明检测到的物体被box所标记,输出box所在的位置,并存储到txt中。上次是在src/image.c的代码中修改的,相当于是在画出检测出的物体的框的同时把坐标存入了txt,这次修改的是examples/detector.c文件。先来看一下主函数 examples/darknet.c官网上运行的示例测试代码为:其中运行的主函数的源码就是examples/darknet.c,后面的detecto

2017-11-03 16:14:24 1003 3

转载 联想笔记本安装ubuntu16.04没WiFi

http://www.linuxidc.com/Linux/2015-04/116077.htm

2017-07-20 16:13:04 2988

原创 yolo2检测到的物体位置输出

说明检测到的物体被box所标记,输出box所在的位置,并存储到txt中。(待完善,如何根据每个图片名字存储不同的txt)进入src/image.c,修改void draw_detections函数。void draw_detections(image im, int num, float thresh, box *boxes, float **probs, float **masks, char

2017-07-20 15:54:55 1593 4

原创 制作自己的yolo2数据集进行训练

说明本文承接上一篇修改yolo2相关配置的博客,用来说明如何制作自己的训练数据,。主要流程就是手动标注目标信息了,当然,图片首先要自己准备好。注意:本文的识别类型只有1类工具- 画框程序 https://github.com/puzzledqs/BBox-Label-Tool - 格式转换程序https://github.com/Guanghan/darknet?files=1

2017-07-20 15:40:59 1891

原创 yolo2修改配置文件训练自己的数据集

说明本文主要介绍用yolo2训练自己的数据集时要修改的配置文件。(自己也在摸索中,以后会慢慢修改)Markdown和扩展Markdown简洁的语法环境- ubuntu 16.04 - cuda 8.0 - opencv 3.2 - darknet(17年7月) ps:安装darknet的时候,并没有带着opencv编译,编译出来opencv有6个多g,编译需要快1小时。带opencv编

2017-07-20 13:42:59 2623 2

原创 联想拯救者r720自带win10安装linux(ubuntu)双系统

联想拯救者R720自带win10安装linux(ubuntu)双系统准备事项 - ubuntu的u盘启动(网上有教程,下个比较新的版本,本人用的ubuntu16.04) - 关闭win10的快速启动(也可以不关闭,不关闭的话可能会导致以后ubuntu不能读取windows里的盘符。) - 在磁盘管理器中压缩出给ubuntu的空闲空间,然后关闭计算机。我是128gSSD+1THDD,win10作

2017-07-13 09:06:32 30175 22

原创 命令行压缩jar包cvfm和cvfe

初学Java,在学习JAR压缩时,corejava教材中看似长篇大论,实讲没有讲清楚,这里作下笔记,说明实际使用中体会到的参数“cvfm” 和”cvfe”的区别: 两者主要区另在于”m”和”e”(m即先写好MANIFEST.MF文件,然后打包,e则是打包时指定主函数的类名,自动填入MANIFEST.MF中):cvfm用法如:jar cvfm Myprogram.jar MANIFEST.MF *.

2017-05-13 10:04:51 6505

转载 ArcGisOnline入门

1.图层管理:惯用方法是将点(例如火山)放置在线的上方,将线(例如高速公路)放置在面的上方。点、线和面均为要素图层:它们通常表示离散的地理对象,这些对象具有或多或少的精确位置和边界。Terrain 图层(例如地形底图)是切片图层。切片图层是图像,不能采用与要素图层相同的方式对其进行操作。它们通常表示大型的连续表面,而不是离散对象。不能在地图中将切片图层移动至要素图层上方。2.从CSV文

2017-04-29 15:52:32 4231

转载 hadoop安装配置中的一些问题

1.安装配置java时 程序 ‘java’ 已包含在下列软件包中: * default-jre * gcj-4.8-jre-headless * gcj-4.9-jre-headless * openjdk-7-jre-headless * openjdk-6-jre-headless * openjdk-8-jre-headless 请尝试:apt-get instal

2017-04-17 11:31:17 414 1

原创 hadoop2.7.3的安装

1. 准备工作1.已安装的linux系统,我安装的是ubuntu16.04.2。可以用虚拟机进行安装。 jdk和hadoop的安装包。我的版本是jdk-8u121-linux-x64和hadoop-2.7.3。 2. 在linux系统下创建hadoop用户 创建hadoo用户是为了更加方便,如果只是为了实验,也可以不创建。 创建hadoop用户的命令:sudo useradd -m

2017-04-16 00:59:36 429

tensorflow_datasets.zip

Tensorflow中使用tensorflow_dataset包里的tfds.load('mnist')加载的mnist数据

2020-03-31

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除