python - Tensorflow中的Sigmoid运算实现

标签 python tensorflow neural-network sigmoid

出于学习目的,我有一项任务是在 tensorflow 中进行线性和 sigmoid 运算。 我成功地完成了线性操作:

def linear_op_forward(X, W):
''' linear operation'''
return np.dot(X, W.T)

def linear_op_backward(op, grads):
    ''' Linear gradient realization '''
    X = op.inputs[0]  
    W = op.inputs[1]  
    dX = tf.multiply(grads, W)
    dW = tf.reduce_sum(tf.multiply(X, grads),
                       axis = 0,
                       keep_dims = True)
    return dX, dW

但我坚持使用 sigmoid 运算:

正确吗?

def sigmoid_op_forward(X):
    return 1 / (1 + np.exp(-X))

我很难理解 sigmoid 梯度

def sigmoid_op_backward(op, grads):
    ???

有人可以帮忙吗?

最佳答案

试试这个:

def sigmoid_op_backward(op, grads):
  sigmoid = op.outputs[0]
  return sigmoid * (1 - sigmoid) * grads

关于python - Tensorflow中的Sigmoid运算实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343536/

相关文章:

tensorflow - 可视化第二个卷积层

python - 如果我的任何模型变量为 NaN,如何在 TensorFlow 中检查?

neural-network - 使用具有真假输出的神经网络

python - 使用 Keras+Tensorflow 训练 ConvNet 时出现不兼容形状错误

python - 浮点取模问题

python - Tkinter 窗口在退出时崩溃

python - Pandas Timestamp - 无法将 arg 转换为时间错误

python - 类型错误 : Cannot handle this data type - Wrong mode for `PIL.Image.fromarray` ?

tensorflow - TypeError : Inputs to a layer should be tensors. 得到:<PrefetchDataset 形状:

machine-learning - 微调具有更大输入尺寸的模型