我有一段代码使用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
请告诉我如何用二进制步骤1替换sigmoid功能。
答案 0 :(得分:4)
y = tf.round(tf.nn.sigmoid(tf.matmul(h,Wo))
将为您提供0或1输出。
答案 1 :(得分:2)
在这种情况下你不需要sigmoid。 尝试relu(sign(x))