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

时间:2017-09-23 00:46:42

标签: python tensorflow 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

请告诉我如何用二进制步骤1替换sigmoid功能。

2 个答案:

答案 0 :(得分:4)

y = tf.round(tf.nn.sigmoid(tf.matmul(h,Wo))

将为您提供0或1输出。

答案 1 :(得分:2)

在这种情况下你不需要sigmoid。 尝试relu(sign(x))