Antes de nada, hemos visto que en la aplicación de la regla de la cadena para el cálculo de la derivada parcial de la función de error correspondiente a un peso o a un bias era necesario implicar la derivada de la función de activación que, en nuestro caso, es la función sigmoide:

Sin entrar en el detalle del método de cálculo, la derivada de esta función tiene la siguiente expresión:

...que también puede escribirse en función de la propia función sigmoide:

La codificación de esta derivada podría ser, por lo tanto, la siguiente:
def sigmoid_derivative(x):
""" Derivada de la función sigmoide """
return sigmoid(x) * (1 - sigmoid(x))