标签: activation-function

张量流中的二进制阈值激活函数

我有一段代码使用Sigmoid激活函数进行分类,以输出[0,1]。但是我需要一个激活函数来输出0或1的二进制值。

        x = tf.placeholder("float", [None, COLUMN])
        Wh = tf.Variable(tf.random_normal([COLUMN, UNITS_OF_HIDDEN_LAYER], mean=0.0, stddev=0.05))
        h = tf.nn.sigmoid(tf.matmul(x, Wh))

        Wo = tf.Variable(tf.random_normal([UNITS_OF_HIDDEN_LAYER, COLUMN], mean=0.0, stddev=0.05))
        y = tf.nn.sigmoid(tf.matmul(h, Wo))

        # Objective functions
        y_ = tf.placeholder("float", [None, COLUMN])
        correct_prediction = tf.equal(tf.argmax(y, 1),tf.argmax(y, 1))
        cost = tf.reduce_sum(tf.cast(correct_prediction, "float"))/BATCH_SIZE
Run Code Online (Sandbox Code Playgroud)

您能告诉我如何用二进制第一步代替Sigmoid函数吗?

python tensorflow activation-function

2
推荐指数
2
解决办法
4112
查看次数

如何在一个Keras层中使用不同的激活功能?

我正在使用Python开发Keras,并且有一个神经网络(请参见下面的代码)。目前,它仅适用于ReLu激活。

出于实验原因,我想在ReLu上使用一些神经元,在softmax上使用一些(或其他激活功能)。例如,在具有20个神经元的层中,我希望ReLu拥有10个,Softmax具有10个。

我尝试了一些不同的方法,但始终无法获得输出。

你知道我该怎么做吗?

# - Libraries
from keras.layers import Dense
from keras.models import Sequential
from keras.callbacks import EarlyStopping
early_spotting_monitor = EarlyStopping(patience=2)
layers = 4
neurons = 20
act = "ReLu"

# - Create Neural Network
model = Sequential()
model.add(Dense(neurons,activation=act,input_dim=X_train.shape[1]))

layers -= 1
while layers > 0:
    model.add(Dense(neurons,activation=act))  
    layers -= 1
model.add(Dense(n_months))
model.compile(optimizer="adam",loss="mean_absolute_error")

model.fit(X_train,Y_train,validation_split=0.10,epochs=13,callbacks=[early_spotting_monitor])
Run Code Online (Sandbox Code Playgroud)

编辑:这是我现在的(工作)代码:

# - Libraries
from keras.callbacks import EarlyStopping
early_spotting_monitor = EarlyStopping(patience=2)
from keras.layers import Input, Dense
from keras.models import Model       
from keras.layers.merge import concatenate

# input …
Run Code Online (Sandbox Code Playgroud)

neural-network keras activation-function keras-layer

2
推荐指数
1
解决办法
3604
查看次数

R中带有神经网络包的ReLU激活函数

由于神经网络包没有ReLU函数,所以我尝试编写ReLU函数的代码。但是有一个我不明白的错误。请在下面查看我的代码和错误信息。

relu<-function(x){ifelse(x>=0,x,0)}
nn <- neuralnet(y~a+b+c+d+e+f,data=train,hidden=c(5),linear.output=T,act.fct = relu)
Run Code Online (Sandbox Code Playgroud)

deriv.formula(eval(parse(text = text)), "x", func = eval(parse(text = text2)) 中的错误:函数‘ifelse’不在导数表中

r neural-network activation-function

2
推荐指数
1
解决办法
2266
查看次数

如何使用Numpy函数实现泄漏的relu

我正在尝试实现泄漏的Relu,问题是我必须对4维输入数组进行4 for循环。

有没有一种方法可以仅使用Numpy函数来进行泄漏的解析?

numpy activation-function relu

2
推荐指数
1
解决办法
2373
查看次数

为什么ReLU是非线性激活功能?

据我了解,在深度神经网络中,我们在应用权重(w)和偏差(b)后使用激活函数(g)(z := w * X + b | a := g(z)).因此有一个组合函数(g o z)和激活函数使得我们的模型可以学习除线性函数之外的函数.我看到Sigmoid和Tanh激活函数使我们的模型非线性,但是我看到ReLu(它取0和z的最大值)可以使模型非线性...

假设每个Z都是正数,那就好像没有激活函数......

所以我的问题是为什么ReLu在神经网络中制作非线性模型?

machine-learning neural-network deep-learning activation-function relu

2
推荐指数
1
解决办法
1257
查看次数

用于多类分类的 Sigmoid 激活?

我正在从头开始实现一个简单的神经网络,仅供练习。我已经让它可以很好地处理二元分类问题的 sigmoid、tanh 和 ReLU 激活。我现在尝试用它来解决多类、互斥的问题。当然,softmax 是最好的选择。

不幸的是,我在理解如何在反向传播中实现 softmax、交叉熵损失及其导数时遇到了很多困难。即使在这里和交叉验证上问了几个问题后,我也无法得到任何好的指导。

在我尝试进一步实现 softmax 之前,是否可以以某种方式使用 sigmoid 来解决多类问题(我试图预测 n 个字符中的 1 个,这些字符被编码为 one-hot 向量)?如果是这样,哪种损失函数最好?我一直在对所有二元分类使用平方误差。

classification machine-learning softmax activation-function sigmoid

1
推荐指数
1
解决办法
8469
查看次数