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.0
Offline