首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加现有Chainer网络的额外输出

增加现有Chainer网络的额外输出
EN

Stack Overflow用户
提问于 2019-10-23 11:16:25
回答 1查看 39关注 0票数 1

假设我创建了一个简单的完全连接的网络:

代码语言:javascript
复制
import chainer
import chainer.functions as F
import chainer.links as L
from chainer import Sequential

model = Sequential(
    L.Linear(n_in, n_hidden),
    F.relu,
    L.Linear(n_hidden, n_hidden),
    F.relu,
    L.Linear(n_hidden, n_out)
)

# Compute the forward pass
y = model(x)

我想用n_out输出来训练这个模型,然后,在对它进行训练之后,在微调网络之前添加额外的输出

我已经找到了删除最后一层的方法,以便重新训练一个新的最后一层,但是这不是我想要的:我希望保留现有输出的权重。新产出的权重将随机初始化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 01:37:42

引入一个附加的线性层L.Linear(n_hidden, n_extra_out) (不删除任何现有的)如何?其中n_extra_out是附加输出的数量。然后,您可以从最后一个F.relu中提取输出(您可能需要考虑将Sequential对象替换为类似于这个示例https://github.com/chainer/chainer/blob/master/examples/mnist/train_mnist.py#L16chainer.Chain实现实例),并将其作为输入传递给预先训练过的最后一个线性层以及这个新层。然后可以使用F.concat连接这两个输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58521627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档