我设计了一个图卷积网络(Graph ConvNet),这个模型需要输入一个图的结构,用图的邻接矩阵表示,然后由于paddle不支持稀疏矩阵,所以这个邻接矩阵很大(4个G)。
现在问题是这样的,这个邻接矩阵是固定的,不需要反向传播更新,所以我设想了两种方案:
1.用layers.data
作为一个模型输入载入这个矩阵,问题是在mini batch训练的时候,是不是每个batch都要输入一下这个4G大小的矩阵,会不会很慢?paddle支不支持feed的时候只feed一部分,其余的保持不变?
2.将这个矩阵设为模型的一个trainable=False
的参数,这样不用每次batch输入训练数据的时候都带上它,但是这样一来,保存模型参数的时候,又要把这4G的矩阵写在硬盘上?但这个矩阵是固定的,用numpy的稀疏矩阵保存了,我现在不需要paddle再保存它一遍。
所以,有什么可行的解决方案吗?
我设计了一个图卷积网络(Graph ConvNet),这个模型需要输入一个图的结构,用图的邻接矩阵表示,然后由于paddle不支持稀疏矩阵,所以这个邻接矩阵很大(4个G)。
现在问题是这样的,这个邻接矩阵是固定的,不需要反向传播更新,所以我设想了两种方案:
1.用
layers.data
作为一个模型输入载入这个矩阵,问题是在mini batch训练的时候,是不是每个batch都要输入一下这个4G大小的矩阵,会不会很慢?paddle支不支持feed的时候只feed一部分,其余的保持不变?2.将这个矩阵设为模型的一个
trainable=False
的参数,这样不用每次batch输入训练数据的时候都带上它,但是这样一来,保存模型参数的时候,又要把这4G的矩阵写在硬盘上?但这个矩阵是固定的,用numpy的稀疏矩阵保存了,我现在不需要paddle再保存它一遍。所以,有什么可行的解决方案吗?