oreilly-japan / deep-learning-from-scratch-3

『ゼロから作る Deep Learning ❸』(O'Reilly Japan, 2020)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to draw dot graph for higher order differentiation by tanh function

young-hun-jo opened this issue · comments

I want to visualize below graph using second order differentiation by tanh function.
스크린샷 2022-07-09 오후 4 46 55

To realize this graph, I tried to the source code that you gave us. But this code only gives me the result that just first order differentiation graph by tanh. I wonder how to draw first, second, third, ..., and higher order differentiation. plz give me some guide. Thanks.

'''
Need the dot binary from the graphviz package (www.graphviz.org).
'''
import numpy as np
from dezero import Variable
from dezero.utils import plot_dot_graph
import dezero.functions as F

x = Variable(np.array(1.0))
y = F.tanh(x)
x.name = 'x'
y.name = 'y'
y.backward(create_graph=True)

iters = 3

for i in range(iters):
    gx = x.grad
    x.cleargrad()
    gx.backward(create_graph=True)

gx = x.grad
gx.name = 'gx' + str(iters + 1)
plot_dot_graph(gx, verbose=False, to_file='tanh.png')