如何修改卷积网络通道数 修改卷积层为新的卷积层
收藏回复举报
如何修改卷积网络通道数 修改卷积层为新的卷积层
t('forum.solved') 已解决
新人帖
发表于2024-02-27 23:27:02
0 查看

最近在拿mindspore复现一个增量学习的分类任务,我这个用于分类的卷积网络会处理多个任务,后一个任务会对前一个任务模型的某几个卷积层进行拓宽(扩大输出通道数),其他层不变(继续使用前一个任务模型的权重等网络参数)

pytorch的修改模型方法就是:直接修改前一个任务指定卷积层的in/out_channels,同时修改.weight.data成新的形状。

mindspore里也可以修改前一个任务卷积层的in/out_channels,然后取原本卷积层parameter的权重进行张量变换,并用set_data来重设卷积层的parameter。而且打印model和model.get_parameters,都显示卷积层好像是被修改成功了(in_channels为新值,parameter形状也变了)。但是当我model(image)时,前向传播到我修改的卷积层的时候就报错了。

因此想请问下有没有比较适合实现对卷积网络进行修改的方法?(看官方文档的ops.assign是得保证参数形状不变,所以用不了;然后mindspore.rewrite感觉相对贴切?但是暂未尝试,因为不太清楚新节点能否继承好旧节点的parameter)

QQ%E6%88%AA%E5%9B%BE20240227163748.png

我要发帖子