From 2b3c7a308dc5330643de6661163cf637721aeff1 Mon Sep 17 00:00:00 2001
From: Fafa-DL <516451964@qq.com>
Date: Tue, 16 Mar 2021 21:58:53 +0800
Subject: [PATCH] Update
---
.../范例/Colab/Google_Colab_Tutorial.ipynb | 310 ++++++
.../范例/Colab/Google_Colab_Tutorial.pdf | Bin 0 -> 2979025 bytes
01 Introduction/范例/HW01/HW01.ipynb | 886 ++++++++++++++++++
01 Introduction/范例/HW01/HW01.pdf | Bin 0 -> 1566147 bytes
.../范例/Pytorch/Pytorch_Tutorial.ipynb | 625 ++++++++++++
.../范例/Pytorch/Pytorch_Tutorial_1.pdf | Bin 0 -> 624357 bytes
.../范例/Pytorch/Pytorch_Tutorial_2.pdf | Bin 0 -> 662401 bytes
02 Deep Learning/范例/HW02/HW02-1.ipynb | 655 +++++++++++++
02 Deep Learning/范例/HW02/HW02-2.ipynb | 547 +++++++++++
02 Deep Learning/范例/HW02/HW02.pdf | Bin 0 -> 920414 bytes
10 files changed, 3023 insertions(+)
create mode 100644 01 Introduction/范例/Colab/Google_Colab_Tutorial.ipynb
create mode 100644 01 Introduction/范例/Colab/Google_Colab_Tutorial.pdf
create mode 100644 01 Introduction/范例/HW01/HW01.ipynb
create mode 100644 01 Introduction/范例/HW01/HW01.pdf
create mode 100644 01 Introduction/范例/Pytorch/Pytorch_Tutorial.ipynb
create mode 100644 01 Introduction/范例/Pytorch/Pytorch_Tutorial_1.pdf
create mode 100644 01 Introduction/范例/Pytorch/Pytorch_Tutorial_2.pdf
create mode 100644 02 Deep Learning/范例/HW02/HW02-1.ipynb
create mode 100644 02 Deep Learning/范例/HW02/HW02-2.ipynb
create mode 100644 02 Deep Learning/范例/HW02/HW02.pdf
diff --git a/01 Introduction/范例/Colab/Google_Colab_Tutorial.ipynb b/01 Introduction/范例/Colab/Google_Colab_Tutorial.ipynb
new file mode 100644
index 0000000..d3559dd
--- /dev/null
+++ b/01 Introduction/范例/Colab/Google_Colab_Tutorial.ipynb
@@ -0,0 +1,310 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "Google Colab Tutorial",
+ "provenance": [],
+ "collapsed_sections": [],
+ "toc_visible": true,
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ca2CpPPUvO-h"
+ },
+ "source": [
+ "# **Google Colab Tutorial**\n",
+ "\n",
+ "\n",
+ "Should you have any question, contact TA via
ntu-ml-2021spring-ta@googlegroups.com\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "xIN7RF4wjgHk"
+ },
+ "source": [
+ "
\r\n",
+ "\r\n",
+ "What is Colaboratory?
\r\n",
+ "\r\n",
+ "Colaboratory, or \"Colab\" for short, allows you to write and execute Python in your browser, with \r\n",
+ "- Zero configuration required\r\n",
+ "- Free access to GPUs\r\n",
+ "- Easy sharing\r\n",
+ "\r\n",
+ "Whether you're a **student**, a **data scientist** or an **AI researcher**, Colab can make your work easier. Watch [Introduction to Colab](https://www.youtube.com/watch?v=inN8seMm7UI) to learn more, or just get started below!\r\n",
+ "\r\n",
+ "You can type python code in the code block, or use a leading exclamation mark ! to change the code block to bash environment to execute linux code."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "IrAxlhp3VBMD"
+ },
+ "source": [
+ "To utilize the free GPU provided by google, click on \"Runtime\"(執行階段) -> \"Change Runtime Type\"(變更執行階段類型). There are three options under \"Hardward Accelerator\"(硬體加速器), select \"GPU\". \r\n",
+ "* Doing this will restart the session, so make sure you change to the desired runtime before executing any code.\r\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "CLUWxZKbvQpx"
+ },
+ "source": [
+ "import torch\n",
+ "torch.cuda.is_available() # is GPU available\n",
+ "# Outputs True if running with GPU"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EAM_tPQAELh0"
+ },
+ "source": [
+ "**1. Download Files via google drive**\n",
+ "\n",
+ " A file stored in Google Drive has the following sharing link:\n",
+ "\n",
+ " https://drive.google.com/open?id=1duQU7xqXRsOSPYeOR0zLiSA8g_LCFzoV\n",
+ " \n",
+ " The random string after \"open?id=\" is the **file_id**
\n",
+ "![](https://i.imgur.com/33SW1WZ.png)\n",
+ "\n",
+ " It is possible to download the file via Colab knowing the **file_id**, using the following command.\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "XztYEj0oD7J3"
+ },
+ "source": [
+ "# Download the file with file_id \"1duQU7xqXRsOSPYeOR0zLiSA8g_LCFzoV\", and rename it to Minori.jpg\n",
+ "!gdown --id '1duQU7xqXRsOSPYeOR0zLiSA8g_LCFzoV' --output Minori.jpg"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Gg3T23LXG-eL"
+ },
+ "source": [
+ "# List all the files under the working directory\n",
+ "!ls"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "38dcGQujOVWM"
+ },
+ "source": [
+ "Exclamation mark (!) starts a new shell, does the operations, and then kills that shell, while percentage (%) affects the process associated with the notebook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "dOQxjfAZAsys"
+ },
+ "source": [
+ "It can be seen that `Minori.jpg` is saved the the current working directory. \r\n",
+ "\r\n",
+ "The working space is temporary, once you close the browser, the file will be gone.\r\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wLUPcHuNHF8u"
+ },
+ "source": [
+ "Clicking on the folder icon will give you the visuallization of the file structure\n",
+ "
\n",
+ " ![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADVCAYAAAA1vj4zAAAgAElEQVR4Ae2dB5gVRdb3a0BA3DXvvru+++qKYU2oDKj7qawoSpBhABVBUIYgUUBQESQpBkQJ4iomBDGQBBRBUVmVXcyKuqKAgBIFyQxhEvF8z6+Gc6dv356ZywTm3rlVz1PTc7urq6pPnX+fU6erzjGNGzeW/HJKSorUqFFDKiRVlu3bt9ucnp4uO3bssHnnzp1C3rVrl+zevVsyMjJszszMFHJWVpbN2dnZQs7JyZE9e/aE8t69e0Xzvn37hLx///5QPnDggATlgwcPSmFZXHIUiAEKmPzAxfkQwCo4gMXAWLkuxCEFogJYkgNYHA6t63IsUMCkpqYWqiI6gMXCULk+xCMFLMDyA5mqiABswYIFNn/zzTfy7bff2vzdd98J+b///a98//33snDhwrD8ww8/CPnHH3+0edGiRbJ48eJQXrJkiWj+6aefxJ+XLl0qQXnZsmVSWF6+fLm47GhQ1jxgVcRoAOaMHPH4/nR9LmsKRCXBKlSo4qyIZT1Srv24pIBp2rSpkIOkmKqIDmBxObau0zFAgZCRA4A1adIkzODhABYDI+S6ENcUMFOnTpXevXs7CRbXw+g6H6sUML/++qu13r3//vvSv39/J8FidaRcv+KSAgYz+sqVK63pfPDgwXb1hq7ucCpiXI6p63QMUcDwnenFF1+UG264IQxc4UulnBUxhsbMdSWOKGB69eol9erVC1MNnQSLoxF0XY1pChjUwCALYrQSbEt7I1s7GNnWwbjV9DE91K5zZUEBg2k+6BuYA1hZDIdrs7xRIKrV9AV9aHYSrLyxhHuekqSAA1hJUtPV5Sjgo4ADmI8g7qejQElSwAGsJKnp6nIU8FHAAcxHEPfTUaAkKeAAVpLUdHU5Cvgo4ADmI4j76ShQkhQwqdG4bStgw6Uz05fkcLi6yhsFTLPUwv0iJjmAlbdxd89zhChgmjZrFrgO0a3kiByBVatWWdcJ3is4XMWRD05TXXIU8FPANLvxJguwlABVMZrtKvGiIuINa8CAATJ8+PAC88MPPyxz587100kAV7Vq1eSSSy6RDRs2hK7/+9//tufHjBkjn3/+uXz88cc248HYJUcB06z1rQkhwd59910LBEBSWH711VfDOAM33Z07d7ZrNuvUqSOXX365bN682ZZ5/PHHI+oDhLgXd8lRwLTq1LnUALb7metkV38j2b8tlaxFcyV79kDJeTsv73l7kGje+84gIe+bM1j2fTHe+qcP8kvPucL80nPdnwAYjI/7ufwS6h4A8gNszpw5FkRr1qyxPvevv/56W27t2rXWYdDo0aNtlbTbr18/6dixo+1/fu2484lDAXNbxy4WYEEr6ourIu7saWTH7caCK3NWf9nV0cjuTnk5o5MRzZmdjJCzOhvZ80RymQCMgBX169cPAxgOTpF41atXl9dee01mzJghAOyBBx6wTlaDpCF+TlxyFIACpkOP3rkSLMCFdnEBlvXLl5L58Qs2skpZR1cpqor4yy+/RKiAqIhEjkGi4cvko48+kvnz58v48eNtWVwwuOQoYAHWtU9/ye9bWB7Ajs7X8Wi8GDkUYMyZnnrqqcA8YsQICxC/ikhIJayESDeVTpybMGGCvPLKKzZPmjRJ+vTpY++njaFDh1rDiGOzxKaA6TXwQQmZ6n1SrNgA27ZBstb/FDMSjDkYkie/xPwO9c8PsOeee07atGljwcP19u3bW2nVtWtXe556VVVE1SbzG5/8LiU2BcyAx0ZJi1atA+dhxQXYrn65c7DsFV9J1idjJXNUsmQ9kZezn0gWzTmjk4W8Z3Sy7J3evdTmYL/99psFmQYJ9B4JLuifg8Eer7/+unVpB2gAD35Mvv76a2vOB3wA87333pNWrVpZbvrggw9k2rRp1hiT2Ozlnt489uw4uSWtbekA7MGTrJEjBLCRyZIFyA7l7FHJojnniWQhY+AoLYCplCns6JVgqIKjRo2yviNxMT5r1izBqohqCLioq2/fvjJz5kypW7eujSaDRHOWRAcuKGDGTZkmIUtivq6zizgHizEVEUvg9OnTrWEC44Q/z54925ryvQBDOjVv3lwmT54cUh/5JkZZEh+X+Tit8y8A16FDB2vOdyzmKGBmvv+htO9+Z6AlsbgqYizFaNbvYEWZgz377LNy9913W/WReRdA3bRpk+UePCOjVnql4rhx4xxnOQpYCphPvv5GOvbuI02bNBGWS3m/hxUbYNZMPzamjByswCDwujcYu/7P6ougORgBB1EHUf34qPzWW2/JF198IVOmTLHAwmyPFOvevbudewG2YcOG2cDwjs8SmwJm0bLlcufAB6R585sjpFhxARZrH5q9Uqag/70qIqs7WG/IOe89rVu3tr9vvPFGuzZx4sSJdt7Fag4+SFMWw4dLiU0B89umzXLfsBHS4pZIS2IewKoW6TtYxvgWgiVRl0plzR4g2W/n5bBlU+8MlD3vDJS9cwaVylIpjBMw/ZNPPimocGPHjg3LuA/HmEEZL8B27dplz3Ee8zxzMcKSAiQ+QgNATPdcb9GiRWiJFGF1MZC4lNgUMFk5OTLsmbHSsk3aIUtiXowwBVjFikUDWCzNwYghzVyqoG0lgAYAoRJ60/r16yUnJ8d7Kux/VtC/+eabFnhhF9yPhKeAeWHcWBn+/Hjp2uueXIB5LInlCWAJP9KOAGVCAdOs+Y1y70NDpV2XbvkCrEI5kGBlQl3XaMJTwNS99lqpXftKueaaq3ONHJ6NlyrBHMASnk8cAYpIgei8SjkJVkTyutsSnQIOYInOAe75S5UCDmClSl5XeaJTwAEs0TnAPX+pUiDuAcZi3KDMNy2XHQ3KmgfiHmD5EbBUX0uuckeBKClgQ8gSRjY3lGy4l19npo+Siq6Yo0A+FHASLB/CuNOOAiVBAdOrXz+5q/8A6dajR9hWlTDX2e47WEnQ2tWRgBQwqTc1l/opqdLprj7StWevsNUcTkVMQI5wj1yiFDAnnXSSVK5YQWr9/f/JnX36HjbAdu7cKWzpYNtGRkaGzepIJpZW05co1VxljgJRUsCcesE5cuIfTpZLL79Sut+du6Ie9TBaFdEBLEpKu2IJSQFz6gXnyXEnnSCX/P3vckfvu5wES0g2cA9dWhQwf/nbWXLcCcdLzUsvk669DrnR9kmwihWPyXdHs5NgpTU0rt7yQAFz5qXJcsIfTpaLkmtKlzuDjRwVK/7OAaw8jLZ7hiNOASvBfn/csXJhck3p2KNnoIroJNgRHxfXYDmhgDn90mQ59uSTpHr1C6VjtzvyAZiTYOVkvN1jHGEKmNMuv0R+f/JJct5550uHQ24D/FZEpyIe4VFxzZUbCphzmjaU4049Rc7+2znSzhftUj80O4CVm/F2D3KEKWCqpTWXY/9yipx51tnS9vaOTkU8wgPgmivfFDAX971DqvzPyXLGGWfJbe3bO4CV7/F2T3eEKWDOvLmx/O7//iynV6smrQ+FMXJzsCM8Cq65cksBc9pVf5eqfzhZTvvrX6XVrbc5CVZuh9o9WFlQwJx19eXyuz+eLKeedpq0bJ3rnz5CglVwZvqyGBzXZvxTwJxy9hlS5ffHyP+d+n9yc8uW5U+C/XKMiOb4Hy/3BHFGAXP6hRdI1eOPl7/85S/S/OZDIYz8axHjWYIpuDi6FFMUYDsTcdc2bNhg+0XcNhLhoohEir8VfyKWG+Up89VXX9mtUtxHwPlt27bJihUrbNQbIt9kZ2f7bz/iv80fTztVKletKqf87ylyU/Ob8pFgv4/ftYjFBBgD9sknnwgRVNauXXvEBghGIlwSQf8Il1TURNB37f+qVauiruZw2ycsFJE/f/rpp6jagJ5Dhw61YZ8ee+wxG9uaKKJjxoyxAeeJce0HGL/vvfdeew9tjR8/Xvr162d/QydARxgpzUTFKetkqlSuIklJSVKt2ulCMDmdf3HM+9CceABjAykMroOlRwaYDaWlnWhDQ9P+8MMPh90czKgMrH3nSBTOaPp/uO0PHjzY0iravj7++OMh2upzAprvvvtOCDZPpFXKDB8+XAYNGhTqs0YaBUz/+te/QmF9iTI6b948mwEegCNiaVknc9U//iFXXnmlNGzQwD6YA5jYN6cyDIM+bdo0+7ZURtUA6KU5eMQj08B+0TKttz/0WfsLw3kjdBJosLB0uO0PGTLEtheNtGWLE2oeKh59JLYaz9qrVy9ZvXq1Pde2bVsLEq7XqVNHuIc0d+5ce/3BBx+UmTNn2tjZqJN33XWXDaDIS6V///6xAzDeFvrG8IKrJCUYRH/iiSckLS1NIBwZlQL1C/2ZTGA8MlEhNQc5FOUcb+fCcoiBiqAirlmzxg4ig0ukSk3EZuYckSzpB+nzzz8XAqPzxkXi+YP3FXQdNeypp56yzNCtWzfLIDDZ+++/bwP++QHGnOWFF16wmgbt8T91+BPgUKnwn//8J3SZvtF/3u5IaGj4xhtvhOqDMdetW2fLBwEMFfOBBx6wzwrPwNgaxVMBxoupc+fOVl0E5EqnUCdEbJBD+uHPvMwADufhGUDI/ytXrgzdrgBDEsNDvDwogwT74IMPbBjfDh06xA7AFFTe4Od6TlXEChWLriIuW7bMMiDgAmQzZsywgcQBGUzF5DTWAAYjMWjNmzcPMZCOMIypKhbzCMr5szJ1Qddhbp0/+O9H2vgZHEZu1apVRFt33nlnBBMz2QdEZP7XRN8B2cKFC+3LDAb1tw2TM2/zt6/M7i//zDPP2OoVYP7rU6dO1eZDR/oEX3z22We2fdokqPz8+fND/SG+9aJFi8KAAs1ojzaol/IAHXohweAvaM6cDqmnL4tQw2XwT5R+EYsGsK1bt0qXLl1s5o3EoPHGJWPlYVILyNCVY0mCvfvuu3YQe/ToYZl3+/btdhCnTJki5LfffttaqFTCEPScN/Xrr79u7wOYgLCg614piZSDNo888oi9PwhgX375pb0G49AfmJT/YTbvGx4egracL2ge8uuvv9oylFuwYIHtLxKM3zCxH2AwO9effvpp+6zaH4wRgF8BhkTh95w5c2xddevWtWPr5+1hw4aF2qdNMs89YcIEqyqixqKK84xqDdTn0vKFHb0xs/3tH6nfpQqwjz76yKqFTD4hkhdggAwdHEnGGz+WAPbpp5/aAVeA/fzzz2HMAFMhDVDDvEy8efNmW45zvPELus68CgbxMgEqjjKan8GVYVWNevjhh23blPfP0ZQRUZvym+irlFaAwHBe0HhfEFo/FkLmODwfGg9tcz8vFwXYkiVLLO+qxPPSR5l64sSJ9l6kD21ypK6vv/7aFlm8eLH9zTkMHZoYB56feNsA+ZVXXgllfflxDinN/Az6qwqrdRzpY5QAO7ZIZnp0cFRD3rZBAEM1BGBIgFgCmDIfDIorOgYJhtFJOUzFfMgPICQLDEUGbAVdDwKYSs4gCabXYDqYm75BOySE3zQOqOiDqnvKVPQJyYEqBRCoyzuf1Dkaz+cHGExNeTKqJeZ0/s8PYLSltPCDfNOmTdawgcqnbSL9kerQEF5Q0Cm4eQZeaqi3GEKwLPKSAYA6b9P+IfngOaYfZZ1iAmBM1mMJYMqgDBjqkk7Uv/nmmxBTKcAoo3Mu5hH8Rq2hDgCW3/WlS5faa4AAQJPGjRtnzxUEMFURKQ+jwaD+RH91vsZ8RN/izFu0fyqVAYF+39P2mRvyQlQVFyafNWuWvVfnXCplVMqrBFMLq36T8qp42k8YH0mDSsynIfqkGQB5pbdX/YXm+OBMT0+3LwAAR1nUSe6nD9QNSCnD9bJOUQAsWSpWLJoEi1ZF5O0cSwBjUNRaxcABAi8j6Ft70qRJIcZo06ZN6H+d2Bd03QsC2vDWrwBTgMLgqpIqI2JF438AEsRIKhm0/5TTezEgID2Y/+o5b/tINxjX276qr5T3fh/EYgeAFWBc177x/+jRoyN4XFVRytEv6Au90RIAEHVqv5jP6hwMq6Wej+ZIvX7pGdGZUj5hUDeCLIglYabHyIHJFjM2Fh0GTY0cfGW/55577DWIEGsAg+5YpHgD62AyYKhHvB1JMCm6v17niKrD+Wiu89xYAbmPurUeBZiqSaoConbpSgbKwpxIivwSap23//7ySASvesV1mJ/EWHnbpywqmfZRQcQ9PIcCTM9Tjr5yX1AClLTBNII6KIfhRaUmz6VSnjpRWZlSbNmyxdKfMdi4caP9jbRGZeVbGec1w386FkF9OBLnTLNmzezb84YbbogAWq6ZvugSDKLxHQlLIiB7/vnnrZmeI7+ZQzz66KP2e1gsAkwHgMHNj1Eow8ArA+g93mN+1zFGIOVgUJhFwaYS0FuH93/6QnvRJsoWVF7ri4YZKctLsqCkz1tQGfqjYFVDj35nxCimif8p51UV9ZpXovFSisVkGjfOlWCoCH5JlgewopnpGQwyJnr0ZO+HZqxRfGgGaKgq/A/IeLNpRo0KyjBCYTlE7CJ8aA7dW8r/MH9RJtMjb3MkVSIkVEIMG6oCMu5B3650juinCXMtPh8g6eCdWEwmNTXFrj/MDcCXGrAWsXgSDIBBQDIqAW9tVRN50/lBpuDiGAQuzhUGrrA3cQwDDEsXa+uY05D/+c9/WkkWi4zi+lQ0CpgmqY0sqJo2a1aABCuakUMlmBdgCi6OAMwPMlQBBVl5B1jRhszdFU8UMKkpDaVRo0YR4MozcpSsBAsCmBdkd9xxh7UklZgEi6fRcH0tdxQwjRs1sJYbXX/oPebNwUpXggEwdGjURSx3JSrByt2QuQeKJwrEFMBKxcgRT6Ph+lruKGAaXd8wZiSYA1i546+EfyBTv34DadiwYZj1UNXEI60iOoAlPD+WOwJYgDVo0MC6B1Bg6TEPYMcVabFvtFZEnYM5gJU7/kr4BzING9S3EgxLIoBScHF0AEt4/nAEKCYFzPUN6tlFnawBcwArJjXd7Y4CPgqYhg2ukwb161tDB1IsWIId71REH+HcT0eBaChgGtS7Vq677jqrJuYvwRzAoiGmK+Mo4KdACGAYOpwE85PH/XYUKB4FzLV1r7Hbztlc5wBWPGK6ux0F/BQw19StK9dee63Uq1cv4oNznhXRqYh+wrnfjgLRUMDUPSTBHMCiIVd8l3n55ZdDGxfZ0sN3R3YR40yUrUT+RBl2BeOLRO9lcyg+RPDJwd4t/idTl0uRFDDXXJOrImLowFTvrIi5rgDYNoNjGG/Gw1QsJMDAJlV1kVZYn9iD9+GHH9p72E2O/3d+45mJwBA47QzbQ3eoQp6dfWp9+vSxPgpxfKN713Aayv3sfuAczmpciqRACGCoif4lU4mqIrKdHV8iykzeI85ZCks4bmHbPzt2SyMBMPoXLVPj7WrgwIH2eXAeiq8MnondwHh3Ymc1Gz/xKjVy5MiQlANgnTp1sh548dYEOPGjMmDAAOsgFMkG0Lg/2r6UBj1iuU5z9dVXC1LMSbC8YYKBcWWAl1lUHwCHs5URI0ZYxgzyD5F3d647NWVg7/mS+l8BBkCiSfSf5wBcgOKll16S3r17253lHAEV5+gz4FE3cqiHt99+u1UPCdAAAKEJZQEp0U34nzKoji5FUsCogYM5mLMi5hJIAYZDGm/CYSZMyNsaX44wnKpWrLsk8MHYsWNtGcrhfuydd96xVbDRFMcsMCPXuJdzJI54bHrxxRctsPFMRcJhED4KKY8EQtUjaf/wkItXKK5zPz4q/EnVPMr4M89Hf/DxTkLl84IWUKKKokJyDY/HWgcqJqGFACR1BLmO8/clEX8b5l1kP7jC1yImlhVRGVgZXRkDgwAMxhxm8uTJYW9uwMA1vCDhC5D/8aCLT0NAiEddzlEn3pP4H9DgFkHb4xyeamFkXK7xGwMEjk3x4w9gATnlYXyuI1Gok/9pQwGvfaZ+mJ/5Iy8F6mDuhlRDcnEfUohyeP+ifk04pOE6m2BxLENfiAaDmoyKiqEDv/aokQDZ37bWk8jHqByPHlUxMQEGQNTYgb9A1CkYFNVJwaZefZ999lnLoLz19RoMSELlglFxxKpJAUmUEQUYahgJRn3ooYekb9++lvE5x7yOOgCflicIhSakH6GPAIo/IW24VzPqL3MpwILKyHPRZ4CikkjnoQAZIwcZacVLAfWQo57H0AFdnJrop7xIlAA7IaHWInolhDIlR5hSVShAgOqEaoaLAxhRJR6gpLxO/DEy+OcpysB4zKU9JILWDUjxkej3jwjIuOYvz7DirReg+AGmfQE8ODDlhUDf9MVAffQd8HglIG2oxAT4ZJ6PI8CmPY5IM8pSZ5CKGslyiXUmKoBVPCrxAOY1cjBHgon8CSaDcZVpUalIytQKMMqp5NM6qI82YFL+91oF9ZoCVu/Ro78853E/HgQwJBNzLYBHBkyAArBiuCGh7gIQjW6i7fAczC3po2ailtx33322PPcgOXnZoAqzr8+lcAqYxqnhvhCDvoMlqoroN3KEk06sqqhGC9Q5JBkJYwTMpyqiAk5/U0bVRkDoB4yqiEhH/ichabBiIuX85bmeH8BwJ828EGDgd5F+aWbuReIjMudUgnKOZ1FX1EhbMu0yf6MsoOSFwtwOyQVgXYqkgElp0kRSmjQVPPx6weU1chxVMbEkGMyEdMFKV1CC+dV4AQNrgtkAHvcjQQAHKh/nMAow/6J+pBYMGgQYfLPDyIAcMCIp+K1zNq/Eo938AEa0SowXWPz4joUkxUijMY8xtVNvz549bTn6QirI+kj5oOx9gSgtEv1oGllwNZZcSRYOMv3QfFQCqoh8PM1PRfMyDSshYFqCWWjyAg+VDNUMAwCmbmVM5nMwPwmmBnCqUnKOOjDxa3naoK38yqOGeo0itqDvD+2oIYP6mU9RP/NA+shLAOMFaiFJ3eepZOYcUg7Aco57gsr4mk3on+bEl36UGnePlOub3pArwTwqowKsUoIB7HA4AsmSH2PDqEgvb+Kcfv/yns/vf8oiUQFEURP3AhzABMCoE6sov72WTV4CAJ3A6P6kllHuIYysS9FRwJj3D4j5SOSkcd/LdS3bhqmJIYAlmIoYDekISKBzF5YLxXri0wISU9dTAjo1cnj7jpk+yFgBKJlbklWN9N7n/g+mgEmakSFJb2aImSdSq/uD+QDsxIQy0weTKvwsKhlvc7WihV91vxwFcilgzBuZkvRmlpg5IrW6DXEAc5zhKFCCFDBmeqYkzSgMYIllRSxB+rqqEpwCJmlaliRNzxbztpNgCc4L7vFLgQLGvJ4hSdMzHcBKgbiuSkcBY6ZkSNLrmWJmi9Tq6uZgjiUcBUqSAsZMypCkKZli3nIAK0nCurocBaCAMRMzJGlyppg3RWp1cRLMsYWjQElSwJjXMiRpUqaYNxzASpKwri5HAShgzKsZkjQxU8yM0gXYtm3bZPr06XaZDqsCyKwYILM0h8WnLCvyrm1jrVtQZhVCYdkNr6NALFDAmJd3S9KrGWKmidTqXDoqIuBiLVxaWprdN+QFGN6K2rZta/1ZADIHsFhgC9eHkqJALsBeyRDzukitTvkB7KQiL5ViDZyCiy0YCi6vBGPDooKMrR4KsiDpxbnCpBfXXXIUiAUKmKQJGZL0coaYqQVIsEpFA5gXXGz6Y5FoEMBQE/FsBMjuv/9+u3kPkDmAxQKLuD4UhwLGjN8tSS9liJlcgAQrAsBYqa2SC3BlZ2cXCDDmX4CsXbt2IZA5gBVnaN29sUABY8ZlSNL4TDETRWp1LDkVEYDhSIV51+ECDP+CqIoOYLHAIq4PxaGASXpxp1QYtzt3DpaPkeOoo4quInpBFo2KqOByKmJxhtXdGysUMEmvHhAzReSEEd9L3eZtArerVK78h2IZORRkhRk52FIfC0YOjCQ4qsH/BVI0KOHwheu6ORGXaKXtkwL6ef14sMX//fffD+qeOxcjFDDHj/hRqncZLg1Smx0CV55fDt3RXByAsUUeM72CDPdeauiAOdVMD7hixUzPFn0YmQ2VXj8ZOmZ6HT8ZbLMHkPjYYLt9foDUe4tzZJOn+ldEG6C9whzzFKc9d2/xKWAaNm6SCyyPLw71LqUAq1Sp6BIMgGHgiKcPzTAvzmoAGN59/WZ/nM9wTZmdYcBiSi7N5ABWmtQtnbqtX8TC3LZVqnRykVVEBVg0VsRYWcnhBRgg8gIHsOGjHYDhQEYlGB6oCAXEdbKCgXL4qvd6vcU3hrp7w+007rAVxBzxBY8bNe4dM2ZMyMuT1kmbQRKM+1AbuQ8LrgaLQGPAxyI+8dEkuO4PFsELUH3q41ELl9qa6BPOcbRu/OerPw/qZt68fPlyLW77/+STT4akOW7qcIpKu7SPap0oyaQ0bhw271Lp5fWLmIgAQ/0CBKiKXp+H6jAUXxwqwWBAry953KDBTDjFwfUa5XB1hkoMWKkTcDKnglkpq45z1E8hwMKbLtdQn1E9CwKYtsl9fLin/7QDEBWM1EW/eRnwv7rKRuVFYtNP2lDw65xyzpw5tjzepAAa9eqLh7r57VWl8dGofvLVGxV14iOfIBa0TXTMREhRuc6udFTiSTAYlDWSeL8FHOp+DQblN8znBRhAUe++SALe9lhCSURK4S2PRycFiUpFwImPe5hXgaAed7kXxlW/i3pvkATD7TWA1KTehTHWaL3e6zyHgkDrLahP9I++kijHs0Of/ACmbrx5idB/jdqCpCROmVfiaZ/L4zE6gCWgigjAcMypIXxgdGUmzuNoNAhgSBrUK97SMBZxwFQSwKBIGL8fRdRo6lbGRW0cOnSoPPLIIyG17Ntvvw2BMwhgMCcg03hitE/29tvrGhtQKQhQbSmLFEZ1pG1+A0CeU+tRAKjEZn6K6h8kwbRufSbqoDySujQNQdrHWDlGCbDiGznibQ4GwHBbDTPBLIT6gTkADfOP1atX5wswBnfjxo32fp23ECgPKaiSLojJ1Ic9ZWn7tddesxlVE1VLJU0QwJAmMDFlsdRSVoGhLwa/GsdzIWXpE88F0LTNKVOmWAri80UAABNxSURBVPV2xYoVth7/nIx7AGQQwLzghRa8QGbPnm1X6NAn1GOdw8UKEEqrHw5gAZSFIQGYmsBRc2AMss5bAEOQBINhmeOom2uqZ16lZWE+3vgwnSYCKTDP0Xa9cz7KaNn8AKYSBemjSVVErwQLApjO7dTjr97Pc1Cv9snrRlzPQR/9ZOGtm+dRKU3oJsCqSeewSORESA5gAaMM03gBxsdvQKESgVv8AAN4OgfjzQ6gYC6CKDAn4zdec72TfurAIEC9SCAYGhWS31j8YEakit5bEMC0DV4GWBO1v0gzAFGQGodVkzYJqIc6i9WP8oS8pU8aFpeXAHMnno/y9J+6MZBwL9ZBPnxzDSsm4NXnQ63meVTSqtocQP5ydcoBLGA4YRp/8AdUL6+xww8wVZlgKoCkTAizKdi0KRiYc1wj88ZXlRE1kigoeg3VDaCSkIRIGupXxoZxSYAElU/vQ5rxP2otZXlheKUMYFUpw/2sRFFQch8vDJWc9AnDi9ZN370qI/3zXkMtVoABUNROvc6RjbecT4RkmjTVFRyR5vqS/NAcT3Owkhp4vhEhDYOYCUBxTa2T/jb13vyu+8vrb0DBvUVN9IkclKiXHPQ8fIIo6HkKux7UXnk4Z7r2HhSxREq/hSnAKpfASo5EBFh5YBD3DMWjgOk96ElpldbFgizVt1zKAax4xHV3OwqYTnc9JB16DpYmzQ7FB/NEunQAcwziKFA8Cpj23QdbgN14S1qEqugAVjziursdBUxat/ukXY8B0qJtF0nxSC/vWkQ3B3OM4ihQNAqYNl17y62d75aW7e+Qxhqv+dACYCfBikZUd5ejgFLA3Naxi7Roe4eVYKUBsOyMDNmzI132bt0i+zZvlAObNsiBjettPrh5gxzYskkOpG+TA7t3yf6cnJDLNlYSYMoOypiJC8v6gO7oKFCWFDAtWt8mqS3S5MbWaZKS2jRs60qeBPvj4e0Hy8iQ7G1bZe+G9SILvxZ5+Z8ifduLND5P5AKDP+HcfLYRqXeqSO9bRF54XOS7z0U2b5CDu3fK/r17A8EF4AoDV9B3mrIksms7cSlgUlJTpG6jG6TRDc2lkW9vmAKsUqUoAbZ7t2Rt2Sz7ly0SefZRkcs8YFJQFXb8qxEZfp/Iku9FdqbLgX37IoDmAJa4DBtvT27q1LlKrri6ntRt2EiuT0kJlGDRACxz+zbZ9/MSkWH35kmowsBU2PX7Oogs/UEkc7cc8KiMDmDxxmaJ219zyaWXSa2/15Zr6tWTlMbBAKtc6X8KVBEzN/4mMuNlkeOilFjVjMhZUZYFhKiYWzaGpJkDWOIybLw9ubngwmSpccmlUve668KkV7iZPh+A7dghWatXiPRJy19qXWFEhvUR+ehtObhmhezJzg7zKnVw43qRL/4t8swjIinn5F9P+/oiK5fJwb25a+EKA1m8DYTrb/mkgDnznHPlouRkqd+g3uEBLD1dcpYuEmlSPRgUbeqKzJsj2Tt32E150a1F3Cvy/Vci99wWXGctI/LjNyJRgKx8Dpd7qnijgDnz7HPksssulVSfgaNgCZYu2T/9KHLt/0YCoaYRmTtTspBuWVk2A67oAJYXH0z++6VIs4si6z/DiPzwjci+vQVaE+NtIFx/yycFzDnnVZeatWpKamr4/MsLsEq+OVjmmhUijc6NZP4eN8ueNSslMyPDbl0oDsD4DiaZGcFGkwuNyIqlcvDQrtsgdbF8Dpd7qnijgKl+0cVyznkXyKWX1pLGKY3C1EQ103uNHDs3bRTpcXMkuIbfZ030eE7SPUXFBZh+ZJbJz0e21/JykU2/ycF8vovF20C4/pZPCpiLLr5YLrjwIjnv/OpyZe0rgwFW+U/WipiO59qXn4pk9hEDJHPLJuuWrDQABtBk6tjIdp9+SGT3rkBVsXwOl3uqeKOAuaB6dbm4Rg258OJkueLKggGW/cO3kUzeu7VkbvjNbmMHXKUFMAuyJwZHtv/Np4HzsXgbCNff8kkBc97558uFF18sF15UQ2rX/kewBKv0J0nfslmkZ4twBq9dSbJW/Sy7du08IgA7uCdHpO214X1oXVtk2+YIKVY+h8s9VbxRwFx1VR2p/Y+r5Ko6daRBgwbBAKv8J9n76UfhjG2MHJw/V3Zt32ZDDuGIpbQlmJViK5eJnOj7SP3hbJFDviLU4BFvA+H6Wz4pEJVXqaqV/iTSvXk4wO5tKxkb1tuQQ7g1O1IAsyAb83B4XzB4bN8aJsXK53C5p4o3CkQFsJpVTgxnaGNkz/cLZOeO9LIBWPo2kVN9UmzhVyL79oVAFm8D4fpbPikQFcBG+Bfl9rhZdq//1YKLoHlHWoKhBsrI/uGgf7yvSMZuB7Dyyadx+1SFAqxmjWRZ4gfYv2bJzq1byxZgy38MB9jFJszYEbcj4jperihgmjZrJuQmTZtGLJfiQ3ODiy4IZ+QkI5mrV9jAc0ivspJgBw8eELnOt1Rr+aLQ6o5yNUruYeKWAoVKsIF/OyUcYN2bW/WQCB+FAQy/7PPnz7e+0vGXTkAEMpE18BCLt1fNeLAls0RKMwaNoByyFI7wqYlvvCKSk23VxLgdkUI6zrMT19oaewop6y6XPQXMgKHDZfDjo6Vn3/7SpMmheM0epzeT/ugzJowbJbs2bSxUghEk4PTTTw/M119/vQWZgotjkQD2wVvh4H+ol0hG7sqOsidtZA9mzZolLVq0iCrj215Tenq6DZrw2GOPSVpamo0BRhAJfMI3b948lJ977jm9xR1jhAJmUXqO/JwjsmDdeml7e6eI72DzffOvAx+9Izu3bS0UYMOHDw8El4Kudu3a0rJly1C+5ZZbRDPxsaJxesOC35B/D/rZ7jrrZsAaQYpJ4Pvvvz8sYIE3eIH3f+I1R5umTp1qo6dgFEIDIG6zPwMmrnv9wxNYjyAQRMr0+qpHOxgyZIjVBoh8MnLkyGi74sodIQqYz1etlwXrt8iXK3+VTt3uiADYMh/Ashf9V3akp0cNMD5e33zzzTYX9PZWsCHdqlWrZgPIBamHnAupiFkZ4QBjc2d67vew4tAP5vaCqLD/iYIZTQJghAIiEcaHHQv6UuEIDZBI/gTACB7uT0Rl0XCzc+fOdQDzEygGfpuPl62Sr9ZskI+XrZTbu3SNANh6H8AyVyy34CpsDqYSjIDch7MfjHA7AIxwo4UBzEqqYzwqLN/Gtm0pkTlYEKiI2UUcLP81Qv9Ek/wAGz9+fNht0Ck/gNWvX1+aNWtmM6Fdmce2adPGzseo5Msvv7QAJRj65s2bw+p1P8qOAmbe4p/l0+Wr5ePFywMBts0HsIyVP8cWwM73AIy+HlqXWFyS+kHEbxLzIP+1ogKsY8eONnwrscXIjz76aL4A80swoksyp9OE6khkzGeeecYGxtPz7li2FDBfrlwn835cJh99v0Q6dM6NsoLqohsut8Y6wM6NT4Bt2rRJFixYEJGZZ/kTKmL37t1tkHP+J5g5MaKRqP5MTGWXYocCZsJbc2T+Tyvkva++kw6dOkeoiL/6AJb5y7LYkWDsE/P278ySVxFh4KCE1FJJdrgSjDCvSCTNAIbolfqb45IlS0LNAirmZ0hP8rhx42wo17vuukvuuecemTBhgs233nqrfPjhh6H73D9lTwHTukMn+XjJLzL7ky+kQ+dIgPlXceQsXHBYRo7SnIPJrh3hALvmZJH0bSU6B7v33ntDahzDhWEBdQ7rYVEBRkhVQIFxZOjQofY7IfMx1D7OYRlkLqopPyPH0qVLpXXr1vZbIvGRCe1qXS3oje5Y5hQwNS+5RGb+51OZ/fEX0q5jpJn+Q6+EYIvKe2/Izq1borYilirAfloYDrCuTQTQlYSZXsHjPTJaJTEHA2CzZ8+2g//000+HAEbcZNKoUaNCAAMw0JC4x59++qkFOH1A6pH69esnkyZNsjGYNZazveD+xAQFzLl/O1smTJshs+d/Jm3bd4hQEV86xTfHGfOI7Nq0ITYA9vaUcIDhcjszd8FvcanrBZb+j8TwSi49f7gqIgC77bbbLGj4hMEqFyQYVkGAdNNNN4UABmiYDzdt2tRKthdffFHmzZtnv5XxjBs2bLD7+Hr27FncR3b3lwIFTHKNi+TpceNl5ofzJa1d+wiA3X3uqeFM3LaeZKxbGzXAnn/++YilUrpkijeyZlQiMvOLaM30MqR7eN/enSayJ6fUJJgCyn88HIC98MILdu8cRg7NOAfi47L+5ojJXlOQioiUZr6Fijho0CCrHvJphA/VLsUOBUzNmskyeux4mT5nbiDArr74QtnvUxOzfv5JdhzaC5bfYt+Clkrpao6gI+AiYyUr6DsYzkflUp90Xf1zyMtUcUkc7UoOykWbZsyYISygjjazQ5zkBxibW7t27SrdunWThQsX2jKY6V955RW58cYbQ+pjtP1y5UqPAuaKK6+Qpya8KhPfmBkIsBo1kuVrH8Bk5muyc8vmqBb7Mn9gSY930S8qkXfxLxLNK8kAV2FLpWyoI2+/rj0lZOAoiTkYJEcyFZZLb2jyakYqLV68OO+EiF02FfScGElycnLCyrofZUcBk9L0Bnl+0lQZ99rEwDkYABvoZWT+b32VZKxdXSjASsovol+S4XBUBnYKVw+fHyaSlWHVwyDGKzsSu5YTmQLmnkFD5LkJL8uz4ydI2/aRczAAdlbVP4scHa6O7f9snuzavr1M9oPJ+tXh4AL0y38M7QVzAEtklo6tZzcjxoyVUf98SsaMHStp7dpFGDkAWOUqp4oM6hbO1O3qS+baVUccYERXkSE9wvvSo3nIPA+4HMBii8kSuTfm8SdGy7ARI+TJMc9Im7Zt8wVY9vdfhzM1UmPWZNm9dcsR9MmxPzfMrF9l/Wp+hPPRRB5U9+yxQwHz8NBH5JFHH5WRo5+UNmlpgQCrUuVUu29JHrwzHGR/MrL3x29l144dR8Rtm2zfItLgr+F96N0qQno5CRY7DJboPTH3PzBEhjw4RB4fObJQgO1esUzkovC5mLSqLTkrlsvuXbtK1fEoHqOEkLJ+6bUsfO7lVMREZ+nYen4zcNBAGTx4kCDJWrVuHSDBaopKMHbfyizf6gkY/t52krN6hWQc8u5b4tFVANdTD0aCa8pYkeyskOVQweUkWGwxWSL3xjxw//3y8MMPycABA+xmPt2qottVatQAYKeFtrbblQL4vvBLkj5psnflz5J5aLs7ICu2mR5z/M50kSfvj2zvrmDVUEGWyIPqnj12KGBw18ZO2capqdKoUVB8sEiA7dy6WaRjSiTT31hLDnz/tWRv3yaZmRnFAtiB7CyR9WtEerWMbIewtVs2hFZtKKi8x9ghsetJIlOgULdtmOn9Egx3AbvXrRVJuy6S+ZFsE5+TvWtXSc6OdMnKyjwslwEHWIOXvlUEj1EX+OZ71N3gDJFfV8nBA/sDVUMFWSIPqnv22KGASU1NFc1e9VBVxOTkmnLsceeGqYgAjJzx2zqRbs2CQXbV8SKvj5P9q3+RvVs3y56dO2RPVqb1gIRPxJBfxJwc2ZeZIQdQBbdsEPlglgjBHPwqKL+bXyqyDnDlOb7xr/LQ3wo0d8z9LujoUDZ0KFSCAbATTzg/EGB2oe+2bSJ+B6B+cNzZIjdC5befycF1q+XAhnU2H9ywTmTRtyKzp4gM7ipyeoDE0rpYGrV9q10AHA2zxM47zPUkkSkQFcB+f+xZ+QJMV9PLf94TueYPwZJHQVKU4zlG5N3pcjA7K7S63gEskVk2vp69UIDlWhH/WijA2EKRtWWTyPjRwXOnwwXX74zIkw9YtfHA/v0hcKECOoDFF5Mlcm+jA1jV06MCmEa4zAFoM14WueWKw5dojc4WefVpkc2/iR9YhzO/SuRBdc8eOxQwjRunhn1c9ho62BhoJdhhAsz7oXnfujUic6aJEMAcg8gNNUTqHCfyjyoiqeeL3N5I5LG+wh4zWbtC9u/dG3Xwh4IkWeyQ2PUkkSlgJVhKPiALAezow5NgXoDxsflwPPuy0VKzSiz/sSBg6bVEHlT37LFDAdOo2U25Eiw1UpKFAFa12mGpiA5gsTPAridlSwFz+qh5YtXEggDmJFjZjpJrPW4pYCq+J3Jx37FWiqWkNg2bjzkJFrfj6joeIxQwZobIsVM3y7Wtcr36pqTmBeFzAIuRUXLdiFsKmKTJWZL0jsi590/OlWJN86SYA1jcjqvreIxQwCRNyhLzlsjJLy6WBs1aBqqIRx/jjBwxMl6uG3FGASvBzPS9UnnqDvlHWi8HsDgbQNfd2KaAMVMyJWlKtiTNFLmk46BAgFVxZvrYHkXXu5ilgDGvZUqFKVlSYbZIctehDmAxO1SuY/FIAfPnaRmSNDFTKgKwLg8FAuzoqme4D83xOLquz2VOAXPLB+mS9Fq2VJyxTy5r3y8QYFUdwMp8oFwH4pMCJvmNrWKm7pOqr66Xq26JDMDHYl8HsPgcXNfrsqeAqTAhXcwskT+O+kwaNsoNfq4r6vU7mDPTl/1AuR7EJwVM0qSdkvTGATm/+2NWPUxp0iykJirAqhzj5mDxObyu12VNAWPeOCDHPf2DNGicu4LDu3UlBLDfnemMHGU9Uq79uKSAqTh1t1zS5u5c6eVbUa8AO9oBLC4H13W67Clgzu027BC48hb5RszBHMDKfqRcD+KSAv8fHbo7Z6RoypMAAAAASUVORK5CYII=)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "MXp98PijHkrk"
+ },
+ "source": [
+ "There should be a file named `Minori.jpg`, if you do not see it, click the icon in the middle (refresh button)
\n",
+ " ![](https://i.imgur.com/CNBTH23.png)\n",
+ "
\n",
+ "You can double click on the file to view the image.\n",
+ "\n",
+ "\n",
+ " \n",
+ "![](https://i.imgur.com/h2PLMrq.png)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "k_gmTo9NKtu9"
+ },
+ "source": [
+ "**2. Mounting Google Drive**\n",
+ "\n",
+ " One advantage of using google colab is that connection with other google services such as Google Drive is simple. By mounting google drive, the working files can be stored permanantly. After executing the following code block, log in to the google account and copy the authentication code to the input box to finish the process."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ImETTQKkL2l4"
+ },
+ "source": [
+ "from google.colab import drive # Import a library named google.colab\n",
+ "drive.mount('/content/drive', force_remount=True) # mount the content to the directory `/content/drive`"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "BmvzTF5IJ6TL"
+ },
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/drive')"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "AkmayCmGMD03"
+ },
+ "source": [
+ "After mounting the drive, the content of the google drive will be under a directory named `MyDrive`, check the file structure for such a folder to confirm the execution of the code."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "kDrO_DjBMW5D"
+ },
+ "source": [
+ "There is also an icon for mounting google drive. The icon will automatically generate the code above.\n",
+ "\n",
+ "![](https://i.imgur.com/hM9Jgi7.png) \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "UhKhwipoMvXF"
+ },
+ "source": [
+ "After mounting the drive, all the chnages will be synced with the google drive.\n",
+ "Since models could be quite large, make sure that your google drive has enough space. You can apply for a gsuite drive which has unlimited space using your studentID (until 2022/07). \n",
+ "https://www.cc.ntu.edu.tw/chinese/services/serv_i06.asp\n",
+ "http://www.cc.ntu.edu.tw/english/spotlight/2016/a105038.asp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "UT0TEPRS7KF6"
+ },
+ "source": [
+ "%cd /content/drive/MyDrive \r\n",
+ "#change directory to google drive\r\n",
+ "!mkdir ML2021 #make a directory named ML2021\r\n",
+ "%cd ./ML2021 \r\n",
+ "#change directory to ML2021"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Oj13Q58QerAx"
+ },
+ "source": [
+ "Use bash command pwd to output the current directory"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "-S8l1-ReepkS"
+ },
+ "source": [
+ "!pwd #output the current directory"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "qSSvrDaBiDrP"
+ },
+ "source": [
+ "Repeat the downloading process, this time, the file will be stored permanently in your google drive."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "b39YMYicASvP"
+ },
+ "source": [
+ "# Download the file with file_id \"1duQU7xqXRsOSPYeOR0zLiSA8g_LCFzoV\", and rename it to Minori.jpg\r\n",
+ "!gdown --id '1duQU7xqXRsOSPYeOR0zLiSA8g_LCFzoV' --output Minori.jpg"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "D0URgikZXl5I"
+ },
+ "source": [
+ "TA will provide the homework data using code similar to the code above. The data could also be stored in the google drive and loaded from there."
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/01 Introduction/范例/Colab/Google_Colab_Tutorial.pdf b/01 Introduction/范例/Colab/Google_Colab_Tutorial.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ec52ef9376fe33c13e8ef9fc6003167137b3bc2b
GIT binary patch
literal 2979025
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