diff --git a/quick_start_pytorch.ipynb b/quick_start_pytorch.ipynb index 619d3a7..3589ace 100644 --- a/quick_start_pytorch.ipynb +++ b/quick_start_pytorch.ipynb @@ -11,7 +11,7 @@ }, "source": [ "# Paperspace Gradient: PyTorch Quick Start\n", - "Last modified: Nov 18th 2021" + "Last modified: June 3rd 2022" ] }, { @@ -83,90 +83,27 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "gradient": { "editing": false, "execution_count": 1, "id": "86ef45c8-089d-4d76-b919-99bccbd7edbb", "kernelId": "", "source_hidden": false - }, - "jupyter": { - "outputs_hidden": false } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", - "Collecting ipywidgets\n", - " Downloading ipywidgets-7.6.5-py2.py3-none-any.whl (121 kB)\n", - "\u001b[K |████████████████████████████████| 121 kB 26.7 MB/s eta 0:00:01\n", - "\u001b[?25hRequirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (6.4.1)\n", - "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.3)\n", - "Collecting jupyterlab-widgets>=1.0.0\n", - " Downloading jupyterlab_widgets-1.0.2-py3-none-any.whl (243 kB)\n", - "\u001b[K |████████████████████████████████| 243 kB 26.2 MB/s eta 0:00:01\n", - "\u001b[?25hRequirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (5.1.0)\n", - "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (0.2.0)\n", - "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.8/site-packages (from ipywidgets) (7.28.0)\n", - "Collecting widgetsnbextension~=3.5.0\n", - " Downloading widgetsnbextension-3.5.2-py2.py3-none-any.whl (1.6 MB)\n", - "\u001b[K |████████████████████████████████| 1.6 MB 27.8 MB/s eta 0:00:01\n", - "\u001b[?25hRequirement already satisfied: jupyter-client<8.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.0.6)\n", - "Requirement already satisfied: debugpy<2.0,>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.0)\n", - "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", - "Requirement already satisfied: tornado<7.0,>=4.2 in /opt/conda/lib/python3.8/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", - "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (58.2.0)\n", - "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", - "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.20)\n", - "Requirement already satisfied: decorator in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.0)\n", - "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", - "Requirement already satisfied: pygments in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (2.10.0)\n", - "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.0)\n", - "Requirement already satisfied: backcall in /opt/conda/lib/python3.8/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", - "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.8/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.2)\n", - "Requirement already satisfied: nest-asyncio>=1.5 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", - "Requirement already satisfied: jupyter-core>=4.6.0 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (4.8.1)\n", - "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", - "Requirement already satisfied: pyzmq>=13 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.8/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n", - "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.8/site-packages (from nbformat>=4.2.0->ipywidgets) (4.0.1)\n", - "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.0)\n", - "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.2.0)\n", - "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.8/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", - "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", - "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.8/site-packages (from python-dateutil>=2.1->jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (1.16.0)\n", - "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.8/site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.4.1)\n", - "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.1.0)\n", - "Requirement already satisfied: nbconvert in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.2.0)\n", - "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.12.1)\n", - "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.0.1)\n", - "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.11.0)\n", - "Requirement already satisfied: Send2Trash>=1.5.0 in /opt/conda/lib/python3.8/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)\n", - "Requirement already satisfied: cffi>=1.0.0 in /opt/conda/lib/python3.8/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.14.6)\n", - "Requirement already satisfied: pycparser in /opt/conda/lib/python3.8/site-packages (from cffi>=1.0.0->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.20)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.8/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.1)\n", - "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.4)\n", - "Requirement already satisfied: bleach in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)\n", - "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)\n", - "Requirement already satisfied: testpath in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.0)\n", - "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)\n", - "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)\n", - "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.8/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)\n", - "Requirement already satisfied: webencodings in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)\n", - "Requirement already satisfied: packaging in /opt/conda/lib/python3.8/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.0)\n", - "Requirement already satisfied: pyparsing>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.4.7)\n", - "Installing collected packages: widgetsnbextension, jupyterlab-widgets, ipywidgets\n", - "Successfully installed ipywidgets-7.6.5 jupyterlab-widgets-1.0.2 widgetsnbextension-3.5.2\n", - "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n" - ] - } - ], - "source": [ - "!pip install ipywidgets" + "outputs": [], + "source": [ + "!pip install ipywidgets widgetsnbextension\n", + "!jupyter nbextension enable --py widgetsnbextension" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html" ] }, { @@ -295,16 +232,7 @@ "outputs_hidden": false } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Shape of X [N, C, H, W]: torch.Size([64, 1, 28, 28])\n", - "Shape of y: torch.Size([64]) torch.int64\n" - ] - } - ], + "outputs": [], "source": [ "batch_size = 64\n", "\n", @@ -364,25 +292,7 @@ "outputs_hidden": false } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using cuda device\n", - "NeuralNetwork(\n", - " (flatten): Flatten(start_dim=1, end_dim=-1)\n", - " (linear_relu_stack): Sequential(\n", - " (0): Linear(in_features=784, out_features=512, bias=True)\n", - " (1): ReLU()\n", - " (2): Linear(in_features=512, out_features=512, bias=True)\n", - " (3): ReLU()\n", - " (4): Linear(in_features=512, out_features=10, bias=True)\n", - " )\n", - ")\n" - ] - } - ], + "outputs": [], "source": [ "# Get cpu or gpu device for training\n", "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", @@ -587,90 +497,7 @@ "outputs_hidden": false } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1\n", - "-------------------------------\n", - "loss: 2.303235 [ 0/60000]\n", - "loss: 2.289679 [ 6400/60000]\n", - "loss: 2.273108 [12800/60000]\n", - "loss: 2.267172 [19200/60000]\n", - "loss: 2.248831 [25600/60000]\n", - "loss: 2.225987 [32000/60000]\n", - "loss: 2.227034 [38400/60000]\n", - "loss: 2.194261 [44800/60000]\n", - "loss: 2.190697 [51200/60000]\n", - "loss: 2.161292 [57600/60000]\n", - "Test Error: \n", - " Accuracy: 53.8%, Avg loss: 2.155593 \n", - "\n", - "Epoch 2\n", - "-------------------------------\n", - "loss: 2.169532 [ 0/60000]\n", - "loss: 2.153734 [ 6400/60000]\n", - "loss: 2.097200 [12800/60000]\n", - "loss: 2.113983 [19200/60000]\n", - "loss: 2.057467 [25600/60000]\n", - "loss: 2.015557 [32000/60000]\n", - "loss: 2.031434 [38400/60000]\n", - "loss: 1.952968 [44800/60000]\n", - "loss: 1.957087 [51200/60000]\n", - "loss: 1.897905 [57600/60000]\n", - "Test Error: \n", - " Accuracy: 60.1%, Avg loss: 1.885614 \n", - "\n", - "Epoch 3\n", - "-------------------------------\n", - "loss: 1.924514 [ 0/60000]\n", - "loss: 1.886686 [ 6400/60000]\n", - "loss: 1.767823 [12800/60000]\n", - "loss: 1.810671 [19200/60000]\n", - "loss: 1.700105 [25600/60000]\n", - "loss: 1.668604 [32000/60000]\n", - "loss: 1.677238 [38400/60000]\n", - "loss: 1.577084 [44800/60000]\n", - "loss: 1.603734 [51200/60000]\n", - "loss: 1.514089 [57600/60000]\n", - "Test Error: \n", - " Accuracy: 60.3%, Avg loss: 1.522196 \n", - "\n", - "Epoch 4\n", - "-------------------------------\n", - "loss: 1.592778 [ 0/60000]\n", - "loss: 1.553160 [ 6400/60000]\n", - "loss: 1.404765 [12800/60000]\n", - "loss: 1.476303 [19200/60000]\n", - "loss: 1.357471 [25600/60000]\n", - "loss: 1.362992 [32000/60000]\n", - "loss: 1.364555 [38400/60000]\n", - "loss: 1.289281 [44800/60000]\n", - "loss: 1.328217 [51200/60000]\n", - "loss: 1.238191 [57600/60000]\n", - "Test Error: \n", - " Accuracy: 62.5%, Avg loss: 1.260456 \n", - "\n", - "Epoch 5\n", - "-------------------------------\n", - "loss: 1.338341 [ 0/60000]\n", - "loss: 1.316752 [ 6400/60000]\n", - "loss: 1.157560 [12800/60000]\n", - "loss: 1.258749 [19200/60000]\n", - "loss: 1.131236 [25600/60000]\n", - "loss: 1.164936 [32000/60000]\n", - "loss: 1.173478 [38400/60000]\n", - "loss: 1.111497 [44800/60000]\n", - "loss: 1.156012 [51200/60000]\n", - "loss: 1.079641 [57600/60000]\n", - "Test Error: \n", - " Accuracy: 64.0%, Avg loss: 1.098095 \n", - "\n", - "Done!\n" - ] - } - ], + "outputs": [], "source": [ "epochs = 5\n", "for t in range(epochs):\n", @@ -723,15 +550,7 @@ "outputs_hidden": false } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Saved PyTorch Model State to model.pth\n" - ] - } - ], + "outputs": [], "source": [ "torch.save(model.state_dict(), \"model.pth\")\n", "print(\"Saved PyTorch Model State to model.pth\")" @@ -768,18 +587,7 @@ "outputs_hidden": false } }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "model = NeuralNetwork()\n", "model.load_state_dict(torch.load(\"model.pth\"))" @@ -814,15 +622,7 @@ "outputs_hidden": false } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Predicted: \"Ankle boot\", Actual: \"Ankle boot\"\n" - ] - } - ], + "outputs": [], "source": [ "classes = [\n", " \"T-shirt/top\",\n", @@ -872,7 +672,7 @@ "\n", "To proceed with PyTorch in Gradient, you can:\n", " \n", - " - Look at other Gradient material, such as the [tutorials](https://docs.paperspace.com/gradient/get-started/tutorials-list), [ML Showcase](https://ml-showcase.paperspace.com), [blog](https://blog.paperspace.com), or [community](https://community.paperspace.com)\n", + " - Look at other Gradient material, such as the [tutorials](https://docs.paperspace.com/gradient/get-started/tutorials-list) or [blog](https://blog.paperspace.com)\n", " - Try out further [PyTorch tutorials](https://pytorch.org/tutorials/beginner/basics/intro.html)\n", " - Start writing your own projects, using our [documentation](https://docs.paperspace.com/gradient) when needed\n", " \n", @@ -880,26 +680,11 @@ "\n", "Good luck!" ] - }, - { - "cell_type": "markdown", - "metadata": { - "gradient": { - "editing": false, - "id": "a4d2e55f-6c65-48fe-a9e7-165931791ff2", - "kernelId": "" - } - }, - "source": [ - "## Original PyTorch copyright notice\n", - "\n", - "© Copyright 2021, PyTorch." - ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -913,7 +698,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.6.9" } }, "nbformat": 4,