厦门网站营销,做微博网站好不好,个人门户网站建设流程,什么是网站模板原始数据#xff1a; Signals存了1000个30节点的节点特征
Tp存了1000个邻接矩阵
Tp_list存了1000个关系真正列表
上面这种数据比较适合Pytorch Geometric架构下生成训练图神经网络模型的数据集#xff1a; 但如果用CNN等序列模型进行拓扑推理#xff0c;得遍历拼接节点特…原始数据 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中