当前位置: 首页 > news >正文

拓扑推理:把邻接矩阵和节点特征形式数据集转换为可以训练CNN等序列模型的数据集

原始数据:

Signals存了1000个30节点的节点特征

Tp存了1000个邻接矩阵

Tp_list存了1000个关系真正列表

上面这种数据比较适合Pytorch Geometric架构下生成训练图神经网络模型的数据集:

但如果用CNN等序列模型进行拓扑推理,得遍历拼接节点特征对。

比如我要预测节点i与节点j是否有关系,我把节点i的特征(长度L)和节点j的特征(长度L)串起来(长度2L),用一维CNN或RNN什么的进行预测。

这个时候需要对上面的数据集略微处理,程序如下:

def generate_dataset():dataset_n = 1000base_dir = "D:\无线通信网络认知\论文1\大修意见\Reviewer2-7 多种深度学习方法对比实验\\test data 30 (mat)\\"mat_file = h5py.File(base_dir  + '30_nodes_dataset.mat', 'r')# 获取数据集signals = mat_file["Signals"][()]tp = mat_file["Tp"][()]tp_list = mat_file["Tp_list"][()]Signals = np.swapaxes(signals, 2, 0)Tp = np.swapaxes(tp, 2, 0)# tp_list = tp_list - 1# 关闭文件mat_file.close()#把每张图的数据和标签都装进去x_list = []y_list = []for n in range(0,dataset_n,1):# print("n: ",n)signals = Signals[n,:,:]L = 2 * signals.shape[1]  # 待分析的2个信号拼在一起tp = Tp[n,:,:]# x 的形状为 (100000, 3600)x = np.zeros((N * N, L))# y 的形状为 (100000, 1)y = np.zeros((N * N, 1))# 生成 x 和 yindex = 0#处理正样本for i in range(N):for j in range(N):if i!=j and tp[i, j]==1:combined_signal = np.concatenate((signals[i, :], signals[j, :]))x[index, :] = combined_signaly[index, 0] = 1index += 1#算负样本总共有多少n_pair_list = []for i in range(N):for j in range(N):if i!=j and tp[i, j] == 0:n_pair_list.append((i,j))np.random.seed(42)indices = np.arange(len(n_pair_list))np.random.shuffle(indices)n_pair_list = np.array(n_pair_list)n_pair_list = n_pair_list[indices]#根据正样本数取负样本n_pair = n_pair_list[:index,:]for k in range(n_pair.shape[0]):i = n_pair[k, 0]j = n_pair[k, 1]combined_signal = np.concatenate((signals[i, :], signals[j, :]))x[index, :] = combined_signaly[index, 0] = 0index += 1x = x[:index,:]y = y[:index, :]x_list.append(x)y_list.append(y)x = np.vstack(x_list)y = np.vstack(y_list)return x, y

最终,数据和真值存储在x和y中:

相关文章:

  • 展开说说Android之Glide详解_源码解析
  • YOLOV8模型优化-选择性视角类别整合模块(SPCI):遥感目标检测的注意力增强模型详解
  • [论文阅读] 人工智能 | Gen-n-Val:利用代理技术革新计算机视觉数据生成
  • U盘不识别 个别U盘不识别
  • 《人工智能时代与人类价值》读书简要笔记
  • 超强人工智能解决方案套件InfiniSynapse:精准的业务理解、对各种数据源进行全模态联合智能分析--部署安装@Ubuntu22.04 @Docker
  • Burn 开源程序是下一代深度学习框架,在灵活性、效率和可移植性方面毫不妥协
  • Day 49 训练
  • 【0.4 漫画计算机网络基础】
  • 基于Python学习《Head First设计模式》第十四章 剩下的模式
  • SparkUI依赖问题解决方法
  • pyspark非安装使用graphframes
  • 【生活系列】金刚经
  • Spark DAG、Stage 划分与 Task 调度底层原理深度剖析
  • 轮廓 裂缝修复 轮廓修复 填补孔洞 源代码
  • HTTP 缓存策略:强缓存与协商缓存的深入解析
  • HTTP和HTTPS协议
  • HTTP 请求报文 方法
  • 基于GNU Radio Companion搭建的FM信号及数字通信
  • 论文略读: LAYERWISE RECURRENT ROUTER FOR MIXTURE-OF-EXPERTS
  • 网站首页设计风格/广告信息发布平台
  • 政府网站建设自查/网络产品运营与推广
  • 做三盛石材网站的公司/sem运营有出路吗
  • 学些网站制作/推广app赚佣金接单平台
  • 158百事通做网站是诈骗吗/百度搜索引擎排行榜
  • 网站流水怎么做/怎么买域名自己做网站