Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Jak upravit tuto funkci MyFunc, aby dávala (přibližně) stejný výsledek, ale derivace nebyla nulová? Předpokládám, že to nějak souvisí s Diracovou distribucí, ale nevím, jak ji do toho algoritmu dostat.
from jax import grad
import numpy as np
import jax.nn as nn
def MyFunc(coefs):
a = coefs[0]
b = coefs[1]
c = coefs[2]
if a > b:
return 30.0
elif b > c:
return 20.0
else:
return 10.0
myFuncDeriv = grad (MyFunc)
# Zde to ve všech případech vytiskne zero gradient [0. 0. 0.]
print (myFuncDeriv(np.random.sample(3)))Zero gradient nedostanu třeba v tomto případě - ale výsledek je příliš vzdálený 30.0 / 20.0 / 10.0
def MyFunc(coefs):
a = coefs[0]
b = coefs[1]
c = coefs[2]
if a > b:
return nn.sigmoid(a) * 30.0
elif b > c:
return nn.sigmoid(b) * 20.0
else:
return nn.sigmoid(c) * 10.0Offline