首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建具有多个输出层的神经网络(Julia,Flux)

如何创建具有多个输出层的神经网络(Julia,Flux)
EN

Stack Overflow用户
提问于 2019-04-16 13:51:38
回答 1查看 406关注 0票数 1

假设我有以下神经网络

代码语言:javascript
复制
net = Chain(Dense(3,5,\sigma), Dense(5,2, ???))

我想知道用什么代替???,这样我的第一个输出神经元就通过一个RELU激活函数,第二个是乙状结肠函数。这个网络的输出是一对要执行的动作,第一个是正值,另一个是二进制选择。

我不能定义一个自定义的"relu_sigma“函数来进行选择,因为它的工作方式是激活函数只接受一个值,而不是一个数组。因此,我不能创建一个函数,它知道它是以第一个还是第二个Wx+b作为参数。

更广泛地说,我想知道如何在任意数量的神经元上建立具有任意数量功能的这种网络(例如,5个relu,2个乙状结肠,以及最后4个神经元的softmax )。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 15:03:39

我定义了一个自定义层类型如下。它不是一般的,它只对神经元的前半部应用relu,对后半部应用sigma。但这正是我的应用程序所想要的,泛化不应该太复杂而无法弄清楚。

代码语言:javascript
复制
struct reluSigma
    W
    b
end
reluSigma(in::Integer, out::Integer) =  reluSigma(param(randn(out, in)), param(randn(out)))

function (m::reluSigma)(x)
    l = Int(length(m.b)/2)
    r1 = 1:l
    r2 = l+1:length(m.b)
    vcat(relu(m.W[r1,:] * x .+ m.b[r1,:]), σ(m.W[r2,:] * x .+ m.b[r2,:]))
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55709856

复制
相关文章

相似问题

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