Python/tensorflowban, hogyan lehet egy hálót deriválni parciálisan?
Van egy neurális hálóm amely függvényként viselkedik, két bemenettel és egy kimenettel...hagyományosan c = f(a,b).
A gradiensének a b kompnense érdekel egy adott pontban. Ennek érdekében meg kell deriválni az f(a,b) függvényt a b paraméter függvényében.
Ezt hogyan csinálhatom meg tensorflowban?
pl. az f(a,b)=a^2+2ab b irányú gradiense a (3,2) pontban így nézne ki.
import tensorflow as tf
a = tf.placeholder('float')
b = tf.placeholder('float')
f = a*a+2*a*b
gradb = tf.gradients(f, b)
sess = tf.Session()
gb = sess.run(gradb, feed_dict={a:3,b:2})
print(gb)
sess.close()
Vagy ha mindkét gradiens kell, akkor a közepén azt csinálod, hogy
grads = tf.gradients(f,[a,b])
...
ga, gb = sess.run(grads, feed_dict={a:3,b:2})
A tegnap rájöttem magamtól is...tulajdonképpen én session nélkül próbáltam és nagyon nehezen jöttem rá, hogy anélkül nem tudom a tf.gradients() eredményét kiértékelni.
Ezer köszi neked is. Jó tudni, hogy a gyakorin vannak tensorflow szakik...készülj fel a további kérdésekre :)).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!