|
|
@@ -0,0 +1,917 @@
|
|
|
+{
|
|
|
+ "cells": [
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 1,
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [],
|
|
|
+ "source": [
|
|
|
+ "from utils import Scalar, draw_graph\n",
|
|
|
+ "from linear_model import Linear, mse"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 2,
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "image/svg+xml": [
|
|
|
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
|
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
|
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
|
+ "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
|
|
|
+ " -->\n",
|
|
|
+ "<!-- Title: %3 Pages: 1 -->\n",
|
|
|
+ "<svg width=\"308pt\" height=\"483pt\"\n",
|
|
|
+ " viewBox=\"0.00 0.00 308.46 483.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
|
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 479)\">\n",
|
|
|
+ "<title>%3</title>\n",
|
|
|
+ "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-479 304.462,-479 304.462,4 -4,4\"/>\n",
|
|
|
+ "<!-- 4398170656backward -->\n",
|
|
|
+ "<g id=\"node1\" class=\"node\"><title>4398170656backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"187.814\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y1= 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171184backward -->\n",
|
|
|
+ "<g id=\"node2\" class=\"node\"><title>4398171184backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-105.5 156.167,-159.5 219.462,-159.5 219.462,-105.5 156.167,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-5.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-141.5 219.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-123.5 219.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">b</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171232backward -->\n",
|
|
|
+ "<g id=\"node3\" class=\"node\"><title>4398171232backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M247.167,-210.5C247.167,-210.5 286.462,-210.5 286.462,-210.5 292.462,-210.5 298.462,-216.5 298.462,-222.5 298.462,-222.5 298.462,-252.5 298.462,-252.5 298.462,-258.5 292.462,-264.5 286.462,-264.5 286.462,-264.5 247.167,-264.5 247.167,-264.5 241.167,-264.5 235.167,-258.5 235.167,-252.5 235.167,-252.5 235.167,-222.5 235.167,-222.5 235.167,-216.5 241.167,-210.5 247.167,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"266.814\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"235.167,-246.5 298.462,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"266.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"235.167,-228.5 298.462,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"266.814\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171232backward->4398171184backward -->\n",
|
|
|
+ "<g id=\"edge9\" class=\"edge\"><title>4398171232backward->4398171184backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M246.675,-210.242C236.832,-197.409 224.858,-181.798 214.286,-168.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"216.78,-165.515 207.917,-159.71 211.226,-169.775 216.78,-165.515\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"246.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170992backward -->\n",
|
|
|
+ "<g id=\"node9\" class=\"node\"><title>4398170992backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M249.167,-105.5C249.167,-105.5 288.462,-105.5 288.462,-105.5 294.462,-105.5 300.462,-111.5 300.462,-117.5 300.462,-117.5 300.462,-147.5 300.462,-147.5 300.462,-153.5 294.462,-159.5 288.462,-159.5 288.462,-159.5 249.167,-159.5 249.167,-159.5 243.167,-159.5 237.167,-153.5 237.167,-147.5 237.167,-147.5 237.167,-117.5 237.167,-117.5 237.167,-111.5 243.167,-105.5 249.167,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"237.167,-141.5 300.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"237.167,-123.5 300.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171232backward->4398170992backward -->\n",
|
|
|
+ "<g id=\"edge14\" class=\"edge\"><title>4398171232backward->4398170992backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M267.324,-210.242C267.561,-198.014 267.848,-183.264 268.106,-169.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"271.61,-169.776 268.305,-159.71 264.612,-169.64 271.61,-169.776\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"282.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170752backward -->\n",
|
|
|
+ "<g id=\"node4\" class=\"node\"><title>4398170752backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"29.8142\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"29.8142\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y2= 4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170800backward -->\n",
|
|
|
+ "<g id=\"node5\" class=\"node\"><title>4398170800backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"268.814\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x1= 1.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170848backward -->\n",
|
|
|
+ "<g id=\"node6\" class=\"node\"><title>4398170848backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"106.814\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x2= 2.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171376backward -->\n",
|
|
|
+ "<g id=\"node7\" class=\"node\"><title>4398171376backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M89.1667,-210.5C89.1667,-210.5 128.462,-210.5 128.462,-210.5 134.462,-210.5 140.462,-216.5 140.462,-222.5 140.462,-222.5 140.462,-252.5 140.462,-252.5 140.462,-258.5 134.462,-264.5 128.462,-264.5 128.462,-264.5 89.1667,-264.5 89.1667,-264.5 83.1667,-264.5 77.1667,-258.5 77.1667,-252.5 77.1667,-252.5 77.1667,-222.5 77.1667,-222.5 77.1667,-216.5 83.1667,-210.5 89.1667,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-246.5 140.462,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-228.5 140.462,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171376backward->4398171184backward -->\n",
|
|
|
+ "<g id=\"edge6\" class=\"edge\"><title>4398171376backward->4398171184backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M128.954,-210.242C138.796,-197.409 150.77,-181.798 161.342,-168.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"164.403,-169.775 167.711,-159.71 158.848,-165.515 164.403,-169.775\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"168.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170512backward -->\n",
|
|
|
+ "<g id=\"node11\" class=\"node\"><title>4398170512backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M87.1667,-105.5C87.1667,-105.5 126.462,-105.5 126.462,-105.5 132.462,-105.5 138.462,-111.5 138.462,-117.5 138.462,-117.5 138.462,-147.5 138.462,-147.5 138.462,-153.5 132.462,-159.5 126.462,-159.5 126.462,-159.5 87.1667,-159.5 87.1667,-159.5 81.1667,-159.5 75.1667,-153.5 75.1667,-147.5 75.1667,-147.5 75.1667,-117.5 75.1667,-117.5 75.1667,-111.5 81.1667,-105.5 87.1667,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"75.1667,-141.5 138.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"75.1667,-123.5 138.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171376backward->4398170512backward -->\n",
|
|
|
+ "<g id=\"edge13\" class=\"edge\"><title>4398171376backward->4398170512backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M108.304,-210.242C108.067,-198.014 107.78,-183.264 107.522,-169.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"111.017,-169.64 107.323,-159.71 104.018,-169.776 111.017,-169.64\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"123.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171424backward -->\n",
|
|
|
+ "<g id=\"node8\" class=\"node\"><title>4398171424backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M87.1667,-315.5C87.1667,-315.5 126.462,-315.5 126.462,-315.5 132.462,-315.5 138.462,-321.5 138.462,-327.5 138.462,-327.5 138.462,-357.5 138.462,-357.5 138.462,-363.5 132.462,-369.5 126.462,-369.5 126.462,-369.5 87.1667,-369.5 87.1667,-369.5 81.1667,-369.5 75.1667,-363.5 75.1667,-357.5 75.1667,-357.5 75.1667,-327.5 75.1667,-327.5 75.1667,-321.5 81.1667,-315.5 87.1667,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"75.1667,-351.5 138.462,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"75.1667,-333.5 138.462,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171424backward->4398170752backward -->\n",
|
|
|
+ "<g id=\"edge5\" class=\"edge\"><title>4398171424backward->4398170752backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M87.1846,-315.242C72.7481,-295.931 53.6087,-270.329 41.4997,-254.131\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171424backward->4398171376backward -->\n",
|
|
|
+ "<g id=\"edge1\" class=\"edge\"><title>4398171424backward->4398171376backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M107.324,-315.242C107.561,-303.014 107.848,-288.264 108.106,-274.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"111.61,-274.776 108.305,-264.71 104.612,-274.64 111.61,-274.776\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"123.395\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170992backward->4398170800backward -->\n",
|
|
|
+ "<g id=\"edge7\" class=\"edge\"><title>4398170992backward->4398170800backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M268.814,-105.242C268.814,-86.5272 268.814,-61.9035 268.814,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171040backward -->\n",
|
|
|
+ "<g id=\"node12\" class=\"node\"><title>4398171040backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"155.195,-0.5 155.195,-54.5 220.433,-54.5 220.433,-0.5 155.195,-0.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-42.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-10.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"155.195,-36.5 220.433,-36.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"155.195,-18.5 220.433,-18.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-6.5\" font-family=\"Times,serif\" font-size=\"10.00\">a</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170992backward->4398171040backward -->\n",
|
|
|
+ "<g id=\"edge4\" class=\"edge\"><title>4398170992backward->4398171040backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M248.165,-105.242C237.978,-92.2881 225.564,-76.503 214.65,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"217.359,-60.4068 208.426,-54.7098 211.856,-64.7339 217.359,-60.4068\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"247.395\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171520backward -->\n",
|
|
|
+ "<g id=\"node10\" class=\"node\"><title>4398171520backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M124.667,-420.5C124.667,-420.5 168.962,-420.5 168.962,-420.5 174.962,-420.5 180.962,-426.5 180.962,-432.5 180.962,-432.5 180.962,-462.5 180.962,-462.5 180.962,-468.5 174.962,-474.5 168.962,-474.5 168.962,-474.5 124.667,-474.5 124.667,-474.5 118.667,-474.5 112.667,-468.5 112.667,-462.5 112.667,-462.5 112.667,-432.5 112.667,-432.5 112.667,-426.5 118.667,-420.5 124.667,-420.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"146.814\" y=\"-462.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"112.667,-456.5 180.962,-456.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"146.814\" y=\"-444.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 10.62</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"112.667,-438.5 180.962,-438.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"146.814\" y=\"-426.5\" font-family=\"Times,serif\" font-size=\"10.00\">mse</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171520backward->4398171424backward -->\n",
|
|
|
+ "<g id=\"edge2\" class=\"edge\"><title>4398171520backward->4398171424backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M136.617,-420.242C131.774,-407.772 125.913,-392.679 120.674,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"123.876,-377.765 116.993,-369.71 117.35,-380.299 123.876,-377.765\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"143.814\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171088backward -->\n",
|
|
|
+ "<g id=\"node13\" class=\"node\"><title>4398171088backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M168.167,-315.5C168.167,-315.5 207.462,-315.5 207.462,-315.5 213.462,-315.5 219.462,-321.5 219.462,-327.5 219.462,-327.5 219.462,-357.5 219.462,-357.5 219.462,-363.5 213.462,-369.5 207.462,-369.5 207.462,-369.5 168.167,-369.5 168.167,-369.5 162.167,-369.5 156.167,-363.5 156.167,-357.5 156.167,-357.5 156.167,-327.5 156.167,-327.5 156.167,-321.5 162.167,-315.5 168.167,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"156.167,-351.5 219.462,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"156.167,-333.5 219.462,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171520backward->4398171088backward -->\n",
|
|
|
+ "<g id=\"edge3\" class=\"edge\"><title>4398171520backward->4398171088backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M157.266,-420.242C162.23,-407.772 168.238,-392.679 173.608,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"176.935,-380.295 177.381,-369.71 170.431,-377.706 176.935,-380.295\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"182.814\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170512backward->4398170848backward -->\n",
|
|
|
+ "<g id=\"edge11\" class=\"edge\"><title>4398170512backward->4398170848backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M106.814,-105.242C106.814,-86.5272 106.814,-61.9035 106.814,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170512backward->4398171040backward -->\n",
|
|
|
+ "<g id=\"edge12\" class=\"edge\"><title>4398170512backward->4398171040backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M127.463,-105.242C137.651,-92.2881 150.064,-76.503 160.978,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"163.772,-64.7339 167.203,-54.7098 158.27,-60.4068 163.772,-64.7339\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"167.395\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">-9.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171088backward->4398170656backward -->\n",
|
|
|
+ "<g id=\"edge10\" class=\"edge\"><title>4398171088backward->4398170656backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M187.814,-315.242C187.814,-296.527 187.814,-271.903 187.814,-255.657\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398171088backward->4398171232backward -->\n",
|
|
|
+ "<g id=\"edge8\" class=\"edge\"><title>4398171088backward->4398171232backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M207.954,-315.242C217.796,-302.409 229.77,-286.798 240.342,-273.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"243.403,-274.775 246.711,-264.71 237.848,-270.515 243.403,-274.775\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"246.395\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</svg>\n"
|
|
|
+ ],
|
|
|
+ "text/plain": [
|
|
|
+ "<graphviz.graphs.Digraph at 0x10626c6a0>"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 2,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "x1 = Scalar(1.5, label='x1', requires_grad=False)\n",
|
|
|
+ "y1 = Scalar(1.0, label='y1', requires_grad=False)\n",
|
|
|
+ "x2 = Scalar(2.0, label='x2', requires_grad=False)\n",
|
|
|
+ "y2 = Scalar(4.5, label='y2', requires_grad=False)\n",
|
|
|
+ "# 反向传播\n",
|
|
|
+ "model = Linear()\n",
|
|
|
+ "loss = mse([model.error(x1, y1), model.error(x2, y2)])\n",
|
|
|
+ "loss.backward()\n",
|
|
|
+ "draw_graph(loss, 'backward')"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 3,
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "image/svg+xml": [
|
|
|
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
|
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
|
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
|
+ "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
|
|
|
+ " -->\n",
|
|
|
+ "<!-- Title: %3 Pages: 1 -->\n",
|
|
|
+ "<svg width=\"307pt\" height=\"483pt\"\n",
|
|
|
+ " viewBox=\"0.00 0.00 306.63 483.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
|
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 479)\">\n",
|
|
|
+ "<title>%3</title>\n",
|
|
|
+ "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-479 302.628,-479 302.628,4 -4,4\"/>\n",
|
|
|
+ "<!-- 4387998736backward -->\n",
|
|
|
+ "<g id=\"node1\" class=\"node\"><title>4387998736backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M170.167,-210.5C170.167,-210.5 209.462,-210.5 209.462,-210.5 215.462,-210.5 221.462,-216.5 221.462,-222.5 221.462,-222.5 221.462,-252.5 221.462,-252.5 221.462,-258.5 215.462,-264.5 209.462,-264.5 209.462,-264.5 170.167,-264.5 170.167,-264.5 164.167,-264.5 158.167,-258.5 158.167,-252.5 158.167,-252.5 158.167,-222.5 158.167,-222.5 158.167,-216.5 164.167,-210.5 170.167,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.814\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"158.167,-246.5 221.462,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"158.167,-228.5 221.462,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.814\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998640backward -->\n",
|
|
|
+ "<g id=\"node11\" class=\"node\"><title>4387998640backward</title>\n",
|
|
|
+ "<polygon fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"200.167,-105.5 200.167,-159.5 263.462,-159.5 263.462,-105.5 200.167,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"231.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"200.167,-141.5 263.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"231.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"200.167,-123.5 263.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"231.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998736backward->4387998640backward -->\n",
|
|
|
+ "<g id=\"edge2\" class=\"edge\"><title>4387998736backward->4387998640backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M200.521,-210.242C205.606,-197.772 211.76,-182.679 217.261,-169.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"220.592,-170.291 221.127,-159.71 214.11,-167.648 220.592,-170.291\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"227.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387997680backward -->\n",
|
|
|
+ "<g id=\"node13\" class=\"node\"><title>4387997680backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"119.167,-105.5 119.167,-159.5 182.462,-159.5 182.462,-105.5 119.167,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"150.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-5.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"119.167,-141.5 182.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"150.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"119.167,-123.5 182.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"150.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">b</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998736backward->4387997680backward -->\n",
|
|
|
+ "<g id=\"edge1\" class=\"edge\"><title>4387998736backward->4387997680backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M179.872,-210.242C175.15,-197.772 169.435,-182.679 164.328,-169.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"167.553,-167.822 160.738,-159.71 161.006,-170.301 167.553,-167.822\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"186.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170656backward -->\n",
|
|
|
+ "<g id=\"node2\" class=\"node\"><title>4398170656backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"268.814\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y1= 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998784backward -->\n",
|
|
|
+ "<g id=\"node3\" class=\"node\"><title>4387998784backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"231.814\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"231.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x1= 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387996768backward -->\n",
|
|
|
+ "<g id=\"node4\" class=\"node\"><title>4387996768backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M130.667,-420.5C130.667,-420.5 174.962,-420.5 174.962,-420.5 180.962,-420.5 186.962,-426.5 186.962,-432.5 186.962,-432.5 186.962,-462.5 186.962,-462.5 186.962,-468.5 180.962,-474.5 174.962,-474.5 174.962,-474.5 130.667,-474.5 130.667,-474.5 124.667,-474.5 118.667,-468.5 118.667,-462.5 118.667,-462.5 118.667,-432.5 118.667,-432.5 118.667,-426.5 124.667,-420.5 130.667,-420.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"152.814\" y=\"-462.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"118.667,-456.5 186.962,-456.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"152.814\" y=\"-444.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 10.62</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"118.667,-438.5 186.962,-438.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"152.814\" y=\"-426.5\" font-family=\"Times,serif\" font-size=\"10.00\">mse</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387995856backward -->\n",
|
|
|
+ "<g id=\"node6\" class=\"node\"><title>4387995856backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M89.1667,-315.5C89.1667,-315.5 128.462,-315.5 128.462,-315.5 134.462,-315.5 140.462,-321.5 140.462,-327.5 140.462,-327.5 140.462,-357.5 140.462,-357.5 140.462,-363.5 134.462,-369.5 128.462,-369.5 128.462,-369.5 89.1667,-369.5 89.1667,-369.5 83.1667,-369.5 77.1667,-363.5 77.1667,-357.5 77.1667,-357.5 77.1667,-327.5 77.1667,-327.5 77.1667,-321.5 83.1667,-315.5 89.1667,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-351.5 140.462,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-333.5 140.462,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387996768backward->4387995856backward -->\n",
|
|
|
+ "<g id=\"edge3\" class=\"edge\"><title>4387996768backward->4387995856backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M141.597,-420.242C136.27,-407.772 129.823,-392.679 124.06,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"127.158,-377.531 120.011,-369.71 120.72,-380.281 127.158,-377.531\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"147.814\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998448backward -->\n",
|
|
|
+ "<g id=\"node8\" class=\"node\"><title>4387998448backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M170.167,-315.5C170.167,-315.5 209.462,-315.5 209.462,-315.5 215.462,-315.5 221.462,-321.5 221.462,-327.5 221.462,-327.5 221.462,-357.5 221.462,-357.5 221.462,-363.5 215.462,-369.5 209.462,-369.5 209.462,-369.5 170.167,-369.5 170.167,-369.5 164.167,-369.5 158.167,-363.5 158.167,-357.5 158.167,-357.5 158.167,-327.5 158.167,-327.5 158.167,-321.5 164.167,-315.5 170.167,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.814\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"158.167,-351.5 221.462,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.814\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"158.167,-333.5 221.462,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.814\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387996768backward->4387998448backward -->\n",
|
|
|
+ "<g id=\"edge5\" class=\"edge\"><title>4387996768backward->4387998448backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M162.247,-420.242C166.726,-407.772 172.148,-392.679 176.994,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"180.312,-380.304 180.399,-369.71 173.724,-377.938 180.312,-380.304\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"186.814\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170752backward -->\n",
|
|
|
+ "<g id=\"node5\" class=\"node\"><title>4398170752backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"29.8142\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"29.8142\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y2= 4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387995856backward->4398170752backward -->\n",
|
|
|
+ "<g id=\"edge4\" class=\"edge\"><title>4387995856backward->4398170752backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M88.6747,-315.242C73.8633,-295.931 54.2268,-270.329 41.8032,-254.131\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998544backward -->\n",
|
|
|
+ "<g id=\"node10\" class=\"node\"><title>4387998544backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M89.1667,-210.5C89.1667,-210.5 128.462,-210.5 128.462,-210.5 134.462,-210.5 140.462,-216.5 140.462,-222.5 140.462,-222.5 140.462,-252.5 140.462,-252.5 140.462,-258.5 134.462,-264.5 128.462,-264.5 128.462,-264.5 89.1667,-264.5 89.1667,-264.5 83.1667,-264.5 77.1667,-258.5 77.1667,-252.5 77.1667,-252.5 77.1667,-222.5 77.1667,-222.5 77.1667,-216.5 83.1667,-210.5 89.1667,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-246.5 140.462,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-228.5 140.462,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387995856backward->4387998544backward -->\n",
|
|
|
+ "<g id=\"edge14\" class=\"edge\"><title>4387995856backward->4387998544backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M108.814,-315.242C108.814,-303.014 108.814,-288.264 108.814,-274.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"112.314,-274.71 108.814,-264.71 105.314,-274.71 112.314,-274.71\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"123.395\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398170848backward -->\n",
|
|
|
+ "<g id=\"node7\" class=\"node\"><title>4398170848backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"69.8142\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"69.8142\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x2= 2.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998448backward->4387998736backward -->\n",
|
|
|
+ "<g id=\"edge6\" class=\"edge\"><title>4387998448backward->4387998736backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M189.814,-315.242C189.814,-303.014 189.814,-288.264 189.814,-274.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"193.314,-274.71 189.814,-264.71 186.314,-274.71 193.314,-274.71\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"204.395\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998448backward->4398170656backward -->\n",
|
|
|
+ "<g id=\"edge7\" class=\"edge\"><title>4387998448backward->4398170656backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M209.954,-315.242C224.765,-295.931 244.402,-270.329 256.825,-254.131\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387997968backward -->\n",
|
|
|
+ "<g id=\"node9\" class=\"node\"><title>4387997968backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"119.167,-0.5 119.167,-54.5 182.462,-54.5 182.462,-0.5 119.167,-0.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"150.814\" y=\"-42.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-9.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"119.167,-36.5 182.462,-36.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"150.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"119.167,-18.5 182.462,-18.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"150.814\" y=\"-6.5\" font-family=\"Times,serif\" font-size=\"10.00\">a</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998688backward -->\n",
|
|
|
+ "<g id=\"node12\" class=\"node\"><title>4387998688backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M50.1667,-105.5C50.1667,-105.5 89.4616,-105.5 89.4616,-105.5 95.4616,-105.5 101.462,-111.5 101.462,-117.5 101.462,-117.5 101.462,-147.5 101.462,-147.5 101.462,-153.5 95.4616,-159.5 89.4616,-159.5 89.4616,-159.5 50.1667,-159.5 50.1667,-159.5 44.1667,-159.5 38.1667,-153.5 38.1667,-147.5 38.1667,-147.5 38.1667,-117.5 38.1667,-117.5 38.1667,-111.5 44.1667,-105.5 50.1667,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"69.8142\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"38.1667,-141.5 101.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"69.8142\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"38.1667,-123.5 101.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"69.8142\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998544backward->4387998688backward -->\n",
|
|
|
+ "<g id=\"edge9\" class=\"edge\"><title>4387998544backward->4387998688backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M82.0634,-210.101C77.8492,-204.535 74.0862,-198.397 71.6521,-192 68.9937,-185.014 67.7114,-177.212 67.2338,-169.641\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"70.7314,-169.483 67.0276,-159.556 63.7328,-169.626 70.7314,-169.483\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"86.3952\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998544backward->4387997680backward -->\n",
|
|
|
+ "<g id=\"edge13\" class=\"edge\"><title>4387998544backward->4387997680backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M119.521,-210.242C124.606,-197.772 130.76,-182.679 136.261,-169.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"139.592,-170.291 140.127,-159.71 133.11,-167.648 139.592,-170.291\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"147.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998640backward->4387998784backward -->\n",
|
|
|
+ "<g id=\"edge12\" class=\"edge\"><title>4387998640backward->4387998784backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M231.814,-105.242C231.814,-86.5272 231.814,-61.9035 231.814,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998640backward->4387997968backward -->\n",
|
|
|
+ "<g id=\"edge10\" class=\"edge\"><title>4387998640backward->4387997968backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M211.165,-105.242C200.978,-92.2881 188.564,-76.503 177.65,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"180.359,-60.4068 171.426,-54.7098 174.856,-64.7339 180.359,-60.4068\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"209.814\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998688backward->4398170848backward -->\n",
|
|
|
+ "<g id=\"edge8\" class=\"edge\"><title>4387998688backward->4398170848backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M69.8142,-105.242C69.8142,-86.5272 69.8142,-61.9035 69.8142,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4387998688backward->4387997968backward -->\n",
|
|
|
+ "<g id=\"edge11\" class=\"edge\"><title>4387998688backward->4387997968backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M90.4635,-105.242C100.651,-92.2881 113.064,-76.503 123.978,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"126.772,-64.7339 130.203,-54.7098 121.27,-60.4068 126.772,-64.7339\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"130.395\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">-9.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</svg>\n"
|
|
|
+ ],
|
|
|
+ "text/plain": [
|
|
|
+ "<graphviz.graphs.Digraph at 0x10626c310>"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 3,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "# 将变量x1设置成0\n",
|
|
|
+ "x1 = Scalar(0.0, label='x1', requires_grad=False)\n",
|
|
|
+ "# 反向传播\n",
|
|
|
+ "model = Linear()\n",
|
|
|
+ "loss = mse([model.error(x1, y1), model.error(x2, y2)])\n",
|
|
|
+ "loss.backward()\n",
|
|
|
+ "draw_graph(loss, 'backward')"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 4,
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "image/svg+xml": [
|
|
|
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
|
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
|
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
|
+ "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
|
|
|
+ " -->\n",
|
|
|
+ "<!-- Title: %3 Pages: 1 -->\n",
|
|
|
+ "<svg width=\"308pt\" height=\"483pt\"\n",
|
|
|
+ " viewBox=\"0.00 0.00 308.46 483.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
|
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 479)\">\n",
|
|
|
+ "<title>%3</title>\n",
|
|
|
+ "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-479 304.462,-479 304.462,4 -4,4\"/>\n",
|
|
|
+ "<!-- 4398102032backward -->\n",
|
|
|
+ "<g id=\"node1\" class=\"node\"><title>4398102032backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"193.647\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"193.647\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x1= 1.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398102080backward -->\n",
|
|
|
+ "<g id=\"node2\" class=\"node\"><title>4398102080backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"81,-0.5 81,-54.5 144.295,-54.5 144.295,-0.5 81,-0.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-42.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-8.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"81,-36.5 144.295,-36.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"81,-18.5 144.295,-18.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-6.5\" font-family=\"Times,serif\" font-size=\"10.00\">a</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313536backward -->\n",
|
|
|
+ "<g id=\"node3\" class=\"node\"><title>4398313536backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M92,-315.5C92,-315.5 131.295,-315.5 131.295,-315.5 137.295,-315.5 143.295,-321.5 143.295,-327.5 143.295,-327.5 143.295,-357.5 143.295,-357.5 143.295,-363.5 137.295,-369.5 131.295,-369.5 131.295,-369.5 92,-369.5 92,-369.5 86,-369.5 80,-363.5 80,-357.5 80,-357.5 80,-327.5 80,-327.5 80,-321.5 86,-315.5 92,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"111.647\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"80,-351.5 143.295,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"111.647\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"80,-333.5 143.295,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"111.647\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313680backward -->\n",
|
|
|
+ "<g id=\"node6\" class=\"node\"><title>4398313680backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M14,-210.5C14,-210.5 53.2949,-210.5 53.2949,-210.5 59.2949,-210.5 65.2949,-216.5 65.2949,-222.5 65.2949,-222.5 65.2949,-252.5 65.2949,-252.5 65.2949,-258.5 59.2949,-264.5 53.2949,-264.5 53.2949,-264.5 14,-264.5 14,-264.5 8,-264.5 2,-258.5 2,-252.5 2,-252.5 2,-222.5 2,-222.5 2,-216.5 8,-210.5 14,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"33.6475\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"2,-246.5 65.2949,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"33.6475\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"2,-228.5 65.2949,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"33.6475\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313536backward->4398313680backward -->\n",
|
|
|
+ "<g id=\"edge5\" class=\"edge\"><title>4398313536backward->4398313680backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M91.7629,-315.242C82.0447,-302.409 70.2225,-286.798 59.7847,-273.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"62.323,-270.569 53.4957,-264.71 56.7426,-274.795 62.323,-270.569\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"91.2285\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398104288backward -->\n",
|
|
|
+ "<g id=\"node7\" class=\"node\"><title>4398104288backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"112.647\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y2= 4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313536backward->4398104288backward -->\n",
|
|
|
+ "<g id=\"edge3\" class=\"edge\"><title>4398313536backward->4398104288backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M111.902,-315.242C112.084,-296.527 112.323,-271.903 112.481,-255.657\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313584backward -->\n",
|
|
|
+ "<g id=\"node4\" class=\"node\"><title>4398313584backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M136,-420.5C136,-420.5 175.295,-420.5 175.295,-420.5 181.295,-420.5 187.295,-426.5 187.295,-432.5 187.295,-432.5 187.295,-462.5 187.295,-462.5 187.295,-468.5 181.295,-474.5 175.295,-474.5 175.295,-474.5 136,-474.5 136,-474.5 130,-474.5 124,-468.5 124,-462.5 124,-462.5 124,-432.5 124,-432.5 124,-426.5 130,-420.5 136,-420.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"155.647\" y=\"-462.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"124,-456.5 187.295,-456.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"155.647\" y=\"-444.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 8.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"124,-438.5 187.295,-438.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"155.647\" y=\"-426.5\" font-family=\"Times,serif\" font-size=\"10.00\">mse</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313584backward->4398313536backward -->\n",
|
|
|
+ "<g id=\"edge9\" class=\"edge\"><title>4398313584backward->4398313536backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M144.431,-420.242C139.104,-407.772 132.656,-392.679 126.893,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"129.991,-377.531 122.844,-369.71 123.554,-380.281 129.991,-377.531\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"149.647\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398102320backward -->\n",
|
|
|
+ "<g id=\"node9\" class=\"node\"><title>4398102320backward</title>\n",
|
|
|
+ "<polygon fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"161,-315.5 161,-369.5 224.295,-369.5 224.295,-315.5 161,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"192.647\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"161,-351.5 224.295,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"192.647\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"161,-333.5 224.295,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"192.647\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313584backward->4398102320backward -->\n",
|
|
|
+ "<g id=\"edge6\" class=\"edge\"><title>4398313584backward->4398102320backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M165.08,-420.242C169.559,-407.772 174.981,-392.679 179.827,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"183.145,-380.304 183.232,-369.71 176.558,-377.938 183.145,-380.304\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"189.647\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103184backward -->\n",
|
|
|
+ "<g id=\"node5\" class=\"node\"><title>4398103184backward</title>\n",
|
|
|
+ "<polygon fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"160,-210.5 160,-264.5 223.295,-264.5 223.295,-210.5 160,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"191.647\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"160,-246.5 223.295,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"191.647\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"160,-228.5 223.295,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"191.647\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398102800backward -->\n",
|
|
|
+ "<g id=\"node8\" class=\"node\"><title>4398102800backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"81,-105.5 81,-159.5 144.295,-159.5 144.295,-105.5 81,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"81,-141.5 144.295,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"81,-123.5 144.295,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"112.647\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">b</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103184backward->4398102800backward -->\n",
|
|
|
+ "<g id=\"edge10\" class=\"edge\"><title>4398103184backward->4398102800backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M171.508,-210.242C161.665,-197.409 149.691,-181.798 139.12,-168.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"141.613,-165.515 132.75,-159.71 136.059,-169.775 141.613,-165.515\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"170.647\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103376backward -->\n",
|
|
|
+ "<g id=\"node10\" class=\"node\"><title>4398103376backward</title>\n",
|
|
|
+ "<polygon fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"162,-105.5 162,-159.5 225.295,-159.5 225.295,-105.5 162,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"193.647\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"162,-141.5 225.295,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"193.647\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" points=\"162,-123.5 225.295,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"193.647\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103184backward->4398103376backward -->\n",
|
|
|
+ "<g id=\"edge8\" class=\"edge\"><title>4398103184backward->4398103376backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M192.157,-210.242C192.395,-198.014 192.681,-183.264 192.939,-169.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"196.444,-169.776 193.139,-159.71 189.445,-169.64 196.444,-169.776\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"206.647\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313680backward->4398102800backward -->\n",
|
|
|
+ "<g id=\"edge14\" class=\"edge\"><title>4398313680backward->4398102800backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M53.7869,-210.242C63.6298,-197.409 75.6035,-181.798 86.1752,-168.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"89.236,-169.775 92.5448,-159.71 83.6816,-165.515 89.236,-169.775\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"92.2285\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103472backward -->\n",
|
|
|
+ "<g id=\"node11\" class=\"node\"><title>4398103472backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M12,-105.5C12,-105.5 51.2949,-105.5 51.2949,-105.5 57.2949,-105.5 63.2949,-111.5 63.2949,-117.5 63.2949,-117.5 63.2949,-147.5 63.2949,-147.5 63.2949,-153.5 57.2949,-159.5 51.2949,-159.5 51.2949,-159.5 12,-159.5 12,-159.5 6,-159.5 0,-153.5 0,-147.5 0,-147.5 0,-117.5 0,-117.5 0,-111.5 6,-105.5 12,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"31.6475\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"0,-141.5 63.2949,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"31.6475\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"0,-123.5 63.2949,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"31.6475\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398313680backward->4398103472backward -->\n",
|
|
|
+ "<g id=\"edge12\" class=\"edge\"><title>4398313680backward->4398103472backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M33.1376,-210.242C32.9002,-198.014 32.6138,-183.264 32.3557,-169.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"35.85,-169.64 32.1564,-159.71 28.8513,-169.776 35.85,-169.64\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"48.2285\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398102320backward->4398103184backward -->\n",
|
|
|
+ "<g id=\"edge11\" class=\"edge\"><title>4398102320backward->4398103184backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M192.393,-315.242C192.274,-303.014 192.131,-288.264 192.002,-274.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"195.499,-274.675 191.902,-264.71 188.499,-274.743 195.499,-274.675\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"205.647\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398104528backward -->\n",
|
|
|
+ "<g id=\"node12\" class=\"node\"><title>4398104528backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"270.647\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"270.647\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y1= 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398102320backward->4398104528backward -->\n",
|
|
|
+ "<g id=\"edge7\" class=\"edge\"><title>4398102320backward->4398104528backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M212.532,-315.242C227.156,-295.931 246.544,-270.329 258.81,-254.131\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103376backward->4398102032backward -->\n",
|
|
|
+ "<g id=\"edge1\" class=\"edge\"><title>4398103376backward->4398102032backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M193.647,-105.242C193.647,-86.5272 193.647,-61.9035 193.647,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103376backward->4398102080backward -->\n",
|
|
|
+ "<g id=\"edge13\" class=\"edge\"><title>4398103376backward->4398102080backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M172.998,-105.242C162.811,-92.2881 150.397,-76.503 139.484,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"142.192,-60.4068 133.259,-54.7098 136.689,-64.7339 142.192,-60.4068\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"171.647\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 0.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103472backward->4398102080backward -->\n",
|
|
|
+ "<g id=\"edge4\" class=\"edge\"><title>4398103472backward->4398102080backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M52.2968,-105.242C62.484,-92.2881 74.8975,-76.503 85.8114,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"88.6054,-64.7339 92.0359,-54.7098 83.103,-60.4068 88.6054,-64.7339\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"91.2285\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">-8.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398102512backward -->\n",
|
|
|
+ "<g id=\"node13\" class=\"node\"><title>4398102512backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"31.6475\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"31.6475\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x2= 2.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398103472backward->4398102512backward -->\n",
|
|
|
+ "<g id=\"edge2\" class=\"edge\"><title>4398103472backward->4398102512backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M31.6475,-105.242C31.6475,-86.5272 31.6475,-61.9035 31.6475,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</svg>\n"
|
|
|
+ ],
|
|
|
+ "text/plain": [
|
|
|
+ "<graphviz.graphs.Digraph at 0x10628f1f0>"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 4,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "x1 = Scalar(1.5, label='x1', requires_grad=False)\n",
|
|
|
+ "y1 = Scalar(1.0, label='y1', requires_grad=False)\n",
|
|
|
+ "x2 = Scalar(2.0, label='x2', requires_grad=False)\n",
|
|
|
+ "y2 = Scalar(4.0, label='y2', requires_grad=False)\n",
|
|
|
+ "# 反向传播\n",
|
|
|
+ "model = Linear()\n",
|
|
|
+ "l = model.error(x1, y1)\n",
|
|
|
+ "# 将变量x1,y1的损失设置成0\n",
|
|
|
+ "l.value = 0.0\n",
|
|
|
+ "loss = mse([l, model.error(x2, y2)])\n",
|
|
|
+ "loss.backward()\n",
|
|
|
+ "draw_graph(loss, 'backward')"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 6,
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "image/svg+xml": [
|
|
|
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
|
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
|
+ " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
|
+ "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
|
|
|
+ " -->\n",
|
|
|
+ "<!-- Title: %3 Pages: 1 -->\n",
|
|
|
+ "<svg width=\"308pt\" height=\"483pt\"\n",
|
|
|
+ " viewBox=\"0.00 0.00 308.46 483.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
|
+ "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 479)\">\n",
|
|
|
+ "<title>%3</title>\n",
|
|
|
+ "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-479 304.462,-479 304.462,4 -4,4\"/>\n",
|
|
|
+ "<!-- 4398315552backward -->\n",
|
|
|
+ "<g id=\"node1\" class=\"node\"><title>4398315552backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-0.5 156.167,-54.5 219.462,-54.5 219.462,-0.5 156.167,-0.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-42.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-9.50</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-36.5 219.462,-36.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-18.5 219.462,-18.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-6.5\" font-family=\"Times,serif\" font-size=\"10.00\">a</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315648backward -->\n",
|
|
|
+ "<g id=\"node2\" class=\"node\"><title>4398315648backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M88.1667,-315.5C88.1667,-315.5 127.462,-315.5 127.462,-315.5 133.462,-315.5 139.462,-321.5 139.462,-327.5 139.462,-327.5 139.462,-357.5 139.462,-357.5 139.462,-363.5 133.462,-369.5 127.462,-369.5 127.462,-369.5 88.1667,-369.5 88.1667,-369.5 82.1667,-369.5 76.1667,-363.5 76.1667,-357.5 76.1667,-357.5 76.1667,-327.5 76.1667,-327.5 76.1667,-321.5 82.1667,-315.5 88.1667,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"107.814\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"76.1667,-351.5 139.462,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"107.814\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"76.1667,-333.5 139.462,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"107.814\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314784backward -->\n",
|
|
|
+ "<g id=\"node5\" class=\"node\"><title>4398314784backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"29.8142\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"29.8142\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y1= 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315648backward->4398314784backward -->\n",
|
|
|
+ "<g id=\"edge7\" class=\"edge\"><title>4398315648backward->4398314784backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M87.9297,-315.242C73.3057,-295.931 53.9177,-270.329 41.6514,-254.131\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314832backward -->\n",
|
|
|
+ "<g id=\"node7\" class=\"node\"><title>4398314832backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M89.1667,-210.5C89.1667,-210.5 128.462,-210.5 128.462,-210.5 134.462,-210.5 140.462,-216.5 140.462,-222.5 140.462,-222.5 140.462,-252.5 140.462,-252.5 140.462,-258.5 134.462,-264.5 128.462,-264.5 128.462,-264.5 89.1667,-264.5 89.1667,-264.5 83.1667,-264.5 77.1667,-258.5 77.1667,-252.5 77.1667,-252.5 77.1667,-222.5 77.1667,-222.5 77.1667,-216.5 83.1667,-210.5 89.1667,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-246.5 140.462,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"77.1667,-228.5 140.462,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"108.814\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315648backward->4398314832backward -->\n",
|
|
|
+ "<g id=\"edge3\" class=\"edge\"><title>4398315648backward->4398314832backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M108.069,-315.242C108.188,-303.014 108.331,-288.264 108.46,-274.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"111.962,-274.743 108.56,-264.71 104.963,-274.675 111.962,-274.743\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"123.395\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315264backward -->\n",
|
|
|
+ "<g id=\"node3\" class=\"node\"><title>4398315264backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"187.814\" cy=\"-237.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">y2= 4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315792backward -->\n",
|
|
|
+ "<g id=\"node4\" class=\"node\"><title>4398315792backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M169.167,-315.5C169.167,-315.5 208.462,-315.5 208.462,-315.5 214.462,-315.5 220.462,-321.5 220.462,-327.5 220.462,-327.5 220.462,-357.5 220.462,-357.5 220.462,-363.5 214.462,-369.5 208.462,-369.5 208.462,-369.5 169.167,-369.5 169.167,-369.5 163.167,-369.5 157.167,-363.5 157.167,-357.5 157.167,-357.5 157.167,-327.5 157.167,-327.5 157.167,-321.5 163.167,-315.5 169.167,-315.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"188.814\" y=\"-357.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"157.167,-351.5 220.462,-351.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"188.814\" y=\"-339.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"157.167,-333.5 220.462,-333.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"188.814\" y=\"-321.5\" font-family=\"Times,serif\" font-size=\"10.00\">-</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315792backward->4398315264backward -->\n",
|
|
|
+ "<g id=\"edge6\" class=\"edge\"><title>4398315792backward->4398315264backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M188.559,-315.242C188.378,-296.527 188.138,-271.903 187.981,-255.657\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314400backward -->\n",
|
|
|
+ "<g id=\"node11\" class=\"node\"><title>4398314400backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M247.167,-210.5C247.167,-210.5 286.462,-210.5 286.462,-210.5 292.462,-210.5 298.462,-216.5 298.462,-222.5 298.462,-222.5 298.462,-252.5 298.462,-252.5 298.462,-258.5 292.462,-264.5 286.462,-264.5 286.462,-264.5 247.167,-264.5 247.167,-264.5 241.167,-264.5 235.167,-258.5 235.167,-252.5 235.167,-252.5 235.167,-222.5 235.167,-222.5 235.167,-216.5 241.167,-210.5 247.167,-210.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"266.814\" y=\"-252.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"235.167,-246.5 298.462,-246.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"266.814\" y=\"-234.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"235.167,-228.5 298.462,-228.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"266.814\" y=\"-216.5\" font-family=\"Times,serif\" font-size=\"10.00\">+</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315792backward->4398314400backward -->\n",
|
|
|
+ "<g id=\"edge12\" class=\"edge\"><title>4398315792backward->4398314400backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M208.699,-315.242C218.417,-302.409 230.239,-286.798 240.677,-273.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"243.719,-274.795 246.966,-264.71 238.139,-270.569 243.719,-274.795\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"246.395\" y=\"-285.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315840backward -->\n",
|
|
|
+ "<g id=\"node6\" class=\"node\"><title>4398315840backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M132.167,-420.5C132.167,-420.5 171.462,-420.5 171.462,-420.5 177.462,-420.5 183.462,-426.5 183.462,-432.5 183.462,-432.5 183.462,-462.5 183.462,-462.5 183.462,-468.5 177.462,-474.5 171.462,-474.5 171.462,-474.5 132.167,-474.5 132.167,-474.5 126.167,-474.5 120.167,-468.5 120.167,-462.5 120.167,-462.5 120.167,-432.5 120.167,-432.5 120.167,-426.5 126.167,-420.5 132.167,-420.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"151.814\" y=\"-462.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad= 1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"120.167,-456.5 183.462,-456.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"151.814\" y=\"-444.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"120.167,-438.5 183.462,-438.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"151.814\" y=\"-426.5\" font-family=\"Times,serif\" font-size=\"10.00\">mse</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315840backward->4398315648backward -->\n",
|
|
|
+ "<g id=\"edge13\" class=\"edge\"><title>4398315840backward->4398315648backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M140.597,-420.242C135.27,-407.772 128.823,-392.679 123.06,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"126.158,-377.531 119.011,-369.71 119.72,-380.281 126.158,-377.531\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"146.814\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315840backward->4398315792backward -->\n",
|
|
|
+ "<g id=\"edge9\" class=\"edge\"><title>4398315840backward->4398315792backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M161.247,-420.242C165.726,-407.772 171.148,-392.679 175.994,-379.189\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"179.312,-380.304 179.399,-369.71 172.724,-377.938 179.312,-380.304\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"185.814\" y=\"-390.8\" font-family=\"Times,serif\" font-size=\"14.00\"> 4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314928backward -->\n",
|
|
|
+ "<g id=\"node12\" class=\"node\"><title>4398314928backward</title>\n",
|
|
|
+ "<polygon fill=\"springgreen\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-105.5 156.167,-159.5 219.462,-159.5 219.462,-105.5 156.167,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-5.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-141.5 219.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"2\" points=\"156.167,-123.5 219.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"187.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">b</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314832backward->4398314928backward -->\n",
|
|
|
+ "<g id=\"edge5\" class=\"edge\"><title>4398314832backward->4398314928backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M128.954,-210.242C138.796,-197.409 150.77,-181.798 161.342,-168.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"164.403,-169.775 167.711,-159.71 158.848,-165.515 164.403,-169.775\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"168.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315456backward -->\n",
|
|
|
+ "<g id=\"node13\" class=\"node\"><title>4398315456backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M87.1667,-105.5C87.1667,-105.5 126.462,-105.5 126.462,-105.5 132.462,-105.5 138.462,-111.5 138.462,-117.5 138.462,-117.5 138.462,-147.5 138.462,-147.5 138.462,-153.5 132.462,-159.5 126.462,-159.5 126.462,-159.5 87.1667,-159.5 87.1667,-159.5 81.1667,-159.5 75.1667,-153.5 75.1667,-147.5 75.1667,-147.5 75.1667,-117.5 75.1667,-117.5 75.1667,-111.5 81.1667,-105.5 87.1667,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-1.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"75.1667,-141.5 138.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"75.1667,-123.5 138.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314832backward->4398315456backward -->\n",
|
|
|
+ "<g id=\"edge4\" class=\"edge\"><title>4398314832backward->4398315456backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M108.304,-210.242C108.067,-198.014 107.78,-183.264 107.522,-169.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"111.017,-169.64 107.323,-159.71 104.018,-169.776 111.017,-169.64\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"123.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315360backward -->\n",
|
|
|
+ "<g id=\"node8\" class=\"node\"><title>4398315360backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"106.814\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"106.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x1= 1.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315888backward -->\n",
|
|
|
+ "<g id=\"node9\" class=\"node\"><title>4398315888backward</title>\n",
|
|
|
+ "<path fill=\"#f0f0f0\" stroke=\"black\" d=\"M249.167,-105.5C249.167,-105.5 288.462,-105.5 288.462,-105.5 294.462,-105.5 300.462,-111.5 300.462,-117.5 300.462,-117.5 300.462,-147.5 300.462,-147.5 300.462,-153.5 294.462,-159.5 288.462,-159.5 288.462,-159.5 249.167,-159.5 249.167,-159.5 243.167,-159.5 237.167,-153.5 237.167,-147.5 237.167,-147.5 237.167,-117.5 237.167,-117.5 237.167,-111.5 243.167,-105.5 249.167,-105.5\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-147.5\" font-family=\"Times,serif\" font-size=\"10.00\">grad=-4.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"237.167,-141.5 300.462,-141.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-129.5\" font-family=\"Times,serif\" font-size=\"10.00\">value= 0.00</text>\n",
|
|
|
+ "<polyline fill=\"none\" stroke=\"black\" points=\"237.167,-123.5 300.462,-123.5 \"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-111.5\" font-family=\"Times,serif\" font-size=\"10.00\">*</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315888backward->4398315552backward -->\n",
|
|
|
+ "<g id=\"edge14\" class=\"edge\"><title>4398315888backward->4398315552backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M248.165,-105.242C237.978,-92.2881 225.564,-76.503 214.65,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"217.359,-60.4068 208.426,-54.7098 211.856,-64.7339 217.359,-60.4068\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"247.395\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">-8.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315408backward -->\n",
|
|
|
+ "<g id=\"node10\" class=\"node\"><title>4398315408backward</title>\n",
|
|
|
+ "<ellipse fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" cx=\"268.814\" cy=\"-27.5\" rx=\"29.6295\" ry=\"18\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"268.814\" y=\"-24.5\" font-family=\"Times,serif\" font-size=\"10.00\">x2= 2.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315888backward->4398315408backward -->\n",
|
|
|
+ "<g id=\"edge8\" class=\"edge\"><title>4398315888backward->4398315408backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M268.814,-105.242C268.814,-86.5272 268.814,-61.9035 268.814,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314400backward->4398315888backward -->\n",
|
|
|
+ "<g id=\"edge11\" class=\"edge\"><title>4398314400backward->4398315888backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M267.324,-210.242C267.561,-198.014 267.848,-183.264 268.106,-169.977\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"271.61,-169.776 268.305,-159.71 264.612,-169.64 271.61,-169.776\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"282.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398314400backward->4398314928backward -->\n",
|
|
|
+ "<g id=\"edge10\" class=\"edge\"><title>4398314400backward->4398314928backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M246.675,-210.242C236.832,-197.409 224.858,-181.798 214.286,-168.014\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"216.78,-165.515 207.917,-159.71 211.226,-169.775 216.78,-165.515\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"246.395\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">-4.00</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315456backward->4398315552backward -->\n",
|
|
|
+ "<g id=\"edge2\" class=\"edge\"><title>4398315456backward->4398315552backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" d=\"M127.463,-105.242C137.651,-92.2881 150.064,-76.503 160.978,-62.6249\"/>\n",
|
|
|
+ "<polygon fill=\"deepskyblue\" stroke=\"deepskyblue\" points=\"163.772,-64.7339 167.203,-54.7098 158.27,-60.4068 163.772,-64.7339\"/>\n",
|
|
|
+ "<text text-anchor=\"middle\" x=\"167.395\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">-1.50</text>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "<!-- 4398315456backward->4398315360backward -->\n",
|
|
|
+ "<g id=\"edge1\" class=\"edge\"><title>4398315456backward->4398315360backward</title>\n",
|
|
|
+ "<path fill=\"none\" stroke=\"deepskyblue\" stroke-dasharray=\"5,2\" d=\"M106.814,-105.242C106.814,-86.5272 106.814,-61.9035 106.814,-45.6575\"/>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</g>\n",
|
|
|
+ "</svg>\n"
|
|
|
+ ],
|
|
|
+ "text/plain": [
|
|
|
+ "<graphviz.graphs.Digraph at 0x10628f310>"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 6,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "x1 = Scalar(1.5, label='x1', requires_grad=False)\n",
|
|
|
+ "y1 = Scalar(1.0, label='y1', requires_grad=False)\n",
|
|
|
+ "x2 = Scalar(2.0, label='x2', requires_grad=False)\n",
|
|
|
+ "y2 = Scalar(4.0, label='y2', requires_grad=False)\n",
|
|
|
+ "# 反向传播\n",
|
|
|
+ "model = Linear()\n",
|
|
|
+ "loss = mse([model.error(x1, y1), model.error(x2, y2)])\n",
|
|
|
+ "loss.value = 0\n",
|
|
|
+ "loss.backward()\n",
|
|
|
+ "draw_graph(loss, 'backward')"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "metadata": {
|
|
|
+ "kernelspec": {
|
|
|
+ "display_name": "Python 3",
|
|
|
+ "language": "python",
|
|
|
+ "name": "python3"
|
|
|
+ },
|
|
|
+ "language_info": {
|
|
|
+ "codemirror_mode": {
|
|
|
+ "name": "ipython",
|
|
|
+ "version": 3
|
|
|
+ },
|
|
|
+ "file_extension": ".py",
|
|
|
+ "mimetype": "text/x-python",
|
|
|
+ "name": "python",
|
|
|
+ "nbconvert_exporter": "python",
|
|
|
+ "pygments_lexer": "ipython3",
|
|
|
+ "version": "3.8.5"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "nbformat": 4,
|
|
|
+ "nbformat_minor": 4
|
|
|
+}
|