From c5b757f3e43c4e90bec9d37d17a0b6a586aac9e0 Mon Sep 17 00:00:00 2001 From: TerenceLiu98 Date: Sun, 18 Sep 2022 22:49:59 +0800 Subject: [PATCH] update --- .../interactive-checkpoint.ipynb | 60 ++-------------- algorithm/interactive.ipynb | 66 ++++++++++++++---- .../.ipynb_checkpoints/gd-checkpoint.py | 30 ++++---- .../__pycache__/gd.cpython-39.pyc | Bin 6257 -> 7537 bytes algorithm/optimization/gd.py | 30 ++++---- algorithm/需求.txt | 5 ++ 6 files changed, 97 insertions(+), 94 deletions(-) create mode 100644 algorithm/需求.txt diff --git a/algorithm/.ipynb_checkpoints/interactive-checkpoint.ipynb b/algorithm/.ipynb_checkpoints/interactive-checkpoint.ipynb index fe13a87..90c5375 100644 --- a/algorithm/.ipynb_checkpoints/interactive-checkpoint.ipynb +++ b/algorithm/.ipynb_checkpoints/interactive-checkpoint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "af1d5646-4b13-4039-9f76-8042bc9dbda3", "metadata": {}, "outputs": [], @@ -12,53 +12,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "0a5c51d2-8b18-4143-b6f1-73a909ccb623", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "6da434bb5623479ea2b213b20390410a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(Text(value='x**3 - x**(1/2)', description='Expression:', style=De…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "603367462f0f463ea4594c07f3a20bdd", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "90dd308b94f547c3805ff23d5ad62c6f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "gd1 = gradient_descent_1d(environ=\"jupyterlab\")" ] @@ -70,19 +27,16 @@ "metadata": {}, "outputs": [], "source": [ - "gd2 = gradient_descent_2d()" + "gd2 = gradient_descent_2d(environ=\"jupyterlab\")" ] }, { "cell_type": "code", "execution_count": null, - "id": "120ecde5-cee1-47c0-b1bc-c99b0cb1098e", + "id": "a05e9830-1643-47c1-a7ea-7c286888cfd4", "metadata": {}, "outputs": [], - "source": [ - "import os\n", - "running_in_voila = os.environ.get('SERVER_SOFTWARE','jupyterlab').startswith('voila')" - ] + "source": [] } ], "metadata": { @@ -101,7 +55,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/algorithm/interactive.ipynb b/algorithm/interactive.ipynb index fe13a87..ae10f88 100644 --- a/algorithm/interactive.ipynb +++ b/algorithm/interactive.ipynb @@ -19,12 +19,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "6da434bb5623479ea2b213b20390410a", + "model_id": "46088f2d27c748c1b8cf9ac9340abe90", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(Text(value='x**3 - x**(1/2)', description='Expression:', style=De…" + "VBox(children=(HBox(children=(VBox(children=(Text(value='x**3 - x**(1/2)', description='Expression:', style=Te…" ] }, "metadata": {}, @@ -33,7 +33,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "603367462f0f463ea4594c07f3a20bdd", + "model_id": "68d79d493fdd445a9854baf7080f018d", "version_major": 2, "version_minor": 0 }, @@ -47,7 +47,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "90dd308b94f547c3805ff23d5ad62c6f", + "model_id": "6f81d5b1dfc240be807ad8108049d130", "version_major": 2, "version_minor": 0 }, @@ -65,24 +65,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "15c6e757-cde3-422b-be7e-3f55b7752142", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a71627f5371d4f2f91fb0ae93c22d847", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(Text(value='(sin(x1) - 2) ** 2 + (sin(x2) - 2) ** 2', description…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fa8540f9cbcb4eec943319ce3b6d2d42", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "371417e579484f4084a832349172f065", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "gd2 = gradient_descent_2d()" + "gd2 = gradient_descent_2d(environ=\"jupyterlab\")" ] }, { "cell_type": "code", "execution_count": null, - "id": "120ecde5-cee1-47c0-b1bc-c99b0cb1098e", + "id": "a05e9830-1643-47c1-a7ea-7c286888cfd4", "metadata": {}, "outputs": [], - "source": [ - "import os\n", - "running_in_voila = os.environ.get('SERVER_SOFTWARE','jupyterlab').startswith('voila')" - ] + "source": [] } ], "metadata": { @@ -101,7 +141,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/algorithm/optimization/.ipynb_checkpoints/gd-checkpoint.py b/algorithm/optimization/.ipynb_checkpoints/gd-checkpoint.py index a3f858a..c6df601 100644 --- a/algorithm/optimization/.ipynb_checkpoints/gd-checkpoint.py +++ b/algorithm/optimization/.ipynb_checkpoints/gd-checkpoint.py @@ -26,7 +26,7 @@ class gradient_descent_1d(object): description="Startpoint:", style={'description_width': 'initial'}) self.wg_lr = widgets.FloatText(value="1e-1", - description="learning rate:", + description="step size:", style={'description_width': 'initial'}) self.wg_epsilon = widgets.FloatText(value="1e-5", description="criterion:", @@ -109,7 +109,7 @@ class gradient_descent_2d(object): self.wg_x0 = widgets.Text(value="5,5", description="Startpoint:") self.wg_lr = widgets.FloatText(value="1e-1", - description="learning rate:") + description="step size:") self.wg_epsilon = widgets.FloatText(value="1e-5", description="criterion:") self.wg_max_iter = widgets.IntText(value="1000", @@ -182,19 +182,21 @@ class gradient_descent_2d(object): line_marker=dict(color="#de1032", width=5) fig.add_traces(go.Scatter3d(x=None, y=None, z=None, mode='lines+markers', line={"color":"#de1032", "width":5})) - frames = [go.Frame(data= [go.Scatter3d(x=np.array(self.xn_list)[:k,0], y=np.array(self.xn_list)[:k,1],z=f_xn)],traces= [1],name=f'frame{k+2}')for k in range(len(f_xn))] + frames = [go.Frame(data= [go.Scatter3d(x=np.array(self.xn_list)[:k,0], + y=np.array(self.xn_list)[:k,1], + z=f_xn)],traces= [1], + name=f'frame{k+2}')for k in range(len(f_xn))] + fig.update(frames=frames) - fig.update_layout(updatemenus=[dict(type="buttons", - buttons=[dict(label="Play", - method="animate", - args=[None])])]) - fig.update_layout( - scene = { - "xaxis": {"nticks": 20}, - "zaxis": {"nticks": 4}, - 'camera_eye': {"x": 0, "y": -1, "z": 0.5}, - "aspectratio": {"x": 1, "y": 1, "z": 0.2} - }) + fig.update_layout(updatemenus=[dict(type="buttons", buttons=[dict(label="Play", method="animate", args=[None]), + dict(label="Pause", method="animate", args= [[None], + dict(mode='immediate', + transition= { 'duration': 0 }, + frame= dict( redraw=True, duration=0))]) + ])]) + + fig.update_layout(margin=dict(l=0, r=0, b=0, t=0)) + # define slider fig.show() diff --git a/algorithm/optimization/__pycache__/gd.cpython-39.pyc b/algorithm/optimization/__pycache__/gd.cpython-39.pyc index 6369e4bf9699d8ad74762c70fa20b7f8a11ab9b0..8c812214c772829b012360d38697367a5810204d 100644 GIT binary patch literal 7537 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 literal 6257 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 tangent plane -> 法线 \ No newline at end of file