def test__dot_var(): x = Variable(np.random.randn(2, 3)) x.name = 'x' assert _dot_var(x) == f'{id(x)} [label="x", color=orange, style=filled]\n' assert _dot_var( x, verbose=True ) == f'{id(x)} [label="x: (2, 3) float64", color=orange, style=filled]\n'
def test_tanh(self): x = Variable(np.array(1.0)) y = F.tanh(x) x.name = 'x' y.name = 'y' y.backward(create_graph=True) iters = 0 for i in range(iters): gx = x.grad x.cleargrad() gx.backward(create_graph=True) gx = x.grad gx.name = 'gx' + str(iters + 1) txt = get_dot_graph(gx) with open('test.dot', 'w') as f: f.write(txt)
if '__file__' in globals(): import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) import numpy as np from dezero.utils import plot_dot_graph from dezero import Variable import dezero.functions as F x = Variable(np.array(np.array(1.0))) y = F.tanh(x) x.name = 'x' y.name = 'y' y.backward(create_graph=True) iters = 5 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='../save/tanh.png')
''' 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 def goldstein(x0, x1): y = (1 + (x0 + x1 + 1)**2 * (19 - 14*x0 + 3*x0**2 - 14*x1 + 6*x0*x1 + 3*x1**2)) *\ (30 + (2*x0 - 3*x1)**2 * (18 - 32*x0 + 12*x0**2 + 48*x1 - 36*x0*x1 + 27*x1**2)) return y x0 = Variable(np.array(1.0)) x1 = Variable(np.array(1.0)) y = goldstein(x0, x1) y.backward() x0.name = 'x0' x1.name = 'x1' y.name = 'y' plot_dot_graph(y, verbose=False)
#!/usr/bin/python3 # coding: utf-8 if '__file__' in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) import numpy as np from dezero import Variable from dezero.utils import plot_dot_graph def goldstein(x, y): z = (1 + (x + y + 1)**2 * (19 - 14*x + 3*x**2 - 14*y + 6*x*y + 3*y**2)) * \ (30 + (2*x - 3*y)**2 * (18 - 32*x + 12*x**2 + 48*y - 36*x*y + 27*y**2)) return z x = Variable(np.array(1.0)) y = Variable(np.array(1.0)) z = goldstein(x, y) z.backward() x.name = 'x' y.name = 'y' z.name = 'z' plot_dot_graph(z, verbose=False, to_file='goldstein.png')
if '__file__' in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) import numpy as np from dezero import Variable from dezero.utils import plot_dot_graph def goldstein(x, y): z = (1 + (x + y + 1)**2 * (19-14*x + 3*x**2 - 14*y + 6*x*y + 3*y**2)) * \ (30 + (2*x - 3*y)**2 * (18-32*x + 12*x**2 + 48*y - 36*x*y + 27*y**2)) return z x = Variable(np.array(1.0)) y = Variable(np.array(1.0)) z = goldstein(x, y) z.backward() x.name = "x" y.name = "y" z.name = "z" plot_dot_graph(z, verbose=False, to_file="goldstein.png")
# coding: utf-8 if '__file__' in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) import numpy as np from dezero import Variable from dezero.utils import plot_dot_graph def goldstein(x, y): z = (1 + (x+y+1)**2 * (19 - 14*x + 3*x**2 - 14*y + 6*x*y + 3*y**2)) * \ (30 + (2*x - 3*y)**2 * (18 - 32*x + 12 *x**2 + 48*y-36*x*y+27*y**2)) return z x = Variable(np.array(1.0)) y = Variable(np.array(1.0)) z = goldstein(x, y) z.backward() # 変数に名前をつける x.name = 'x' y.name = 'y' z.name = 'z' plot_dot_graph(z, verbose=False, to_file='goldstein.png')
if "__file__" in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), "..")) 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 = 0 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")
if "__file__" in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), "..")) import numpy as np from dezero import Variable from dezero.utils import plot_dot_graph def goldstein(x, y): z = (1 + (x + y + 1) ** 2 * (19 - 14 * x + 3 * x ** 2 - 14 * y + 6 * x * y + 3 * y ** 2)) * ( 30 + (2 * x - 3 * y) ** 2 * (18 - 32 * x + 12 * x ** 2 + 48 * y - 36 * x * y + 27 * y ** 2) ) return z x = Variable(np.array(1.0)) y = Variable(np.array(1.0)) z = goldstein(x, y) z.backward() x.name = "x" y.name = "y" z.name = "z" plot_dot_graph(z, verbose=False, to_file="goldstein.png")