Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33197fde36 | ||
|
|
6d425c04d4 | ||
|
|
57c95132d3 | ||
|
|
2b0ac95740 | ||
|
|
d5f198f2d8 | ||
|
|
4edd8c923d | ||
|
|
3801b8d52d | ||
|
|
dc6b346bda | ||
|
|
5eb264540d | ||
|
|
7ba844f2b5 | ||
|
|
d101aa428b | ||
|
|
8c6e40daee | ||
|
|
efafb942eb | ||
|
|
b10a2b6940 | ||
|
|
ede7247a0c | ||
|
|
c3b97af456 | ||
|
|
e1df2156a3 | ||
|
|
f887835646 | ||
|
|
e9c8d846f2 | ||
|
|
b7869e8b41 | ||
|
|
747ec9efe1 | ||
|
|
58dfb0390c | ||
|
|
3aeb8db4cd | ||
|
|
305a055079 | ||
|
|
87cf590af9 | ||
|
|
ccedbb72e7 | ||
|
|
b423a67855 | ||
|
|
3c8dab14e6 |
@@ -4,7 +4,6 @@
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": [],
|
||||
"authorship_tag": "ABX9TyNioITtfAcfxEfM3UOfQyb9",
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
@@ -62,7 +61,7 @@
|
||||
"source": [
|
||||
"The number of regions $N$ created by a shallow neural network with $D_i$ inputs and $D$ hidden units is given by Zaslavsky's formula:\n",
|
||||
"\n",
|
||||
"\\begin{equation}N = \\sum_{j=0}^{D_{i}}\\binom{D}{j}=\\sum_{j=0}^{D_{i}} \\frac{D!}{(D-j)!j!} \\end{equation} <br>\n",
|
||||
"\\begin{equation}N = \\sum_{j=0}^{D_{i}}\\binom{D}{j}=\\sum_{j=0}^{D_{i}} \\frac{D!}{(D-j)!j!} \\end{equation} \n",
|
||||
"\n"
|
||||
],
|
||||
"metadata": {
|
||||
@@ -221,7 +220,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"# Now let's plot the graph from figure 3.9a (takes ~1min)\n",
|
||||
"# Now let's plot the graph from figure 3.9b (takes ~1min)\n",
|
||||
"dims = np.array([1,5,10,50,100])\n",
|
||||
"regions = np.zeros((dims.shape[0], 200))\n",
|
||||
"params = np.zeros((dims.shape[0], 200))\n",
|
||||
|
||||
@@ -130,7 +130,8 @@
|
||||
"\n",
|
||||
" print('Iter %d, a=%3.3f, b=%3.3f, c=%3.3f, d=%3.3f'%(n_iter, a,b,c,d))\n",
|
||||
"\n",
|
||||
" # Rule #1 If the HEIGHT at point A is less than the HEIGHT at points B, C, and D then halve values of B, C, and D\n",
|
||||
" # Rule #1 If the HEIGHT at point A is less than the HEIGHT at points B, C, and D then move them to they are half\n",
|
||||
" # as far from A as they start\n",
|
||||
" # i.e. bring them closer to the original point\n",
|
||||
" # TODO REPLACE THE BLOCK OF CODE BELOW WITH THIS RULE\n",
|
||||
" if (0):\n",
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"colab_type": "text",
|
||||
"id": "view-in-github"
|
||||
"id": "view-in-github",
|
||||
"colab_type": "text"
|
||||
},
|
||||
"source": [
|
||||
"<a href=\"https://colab.research.google.com/github/udlbook/udlbook/blob/main/Notebooks/Chap06/6_2_Gradient_Descent.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "el8l05WQEO46"
|
||||
@@ -111,7 +109,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "QU5mdGvpTtEG"
|
||||
@@ -140,7 +137,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "eB5DQvU5hYNx"
|
||||
@@ -162,7 +158,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "F3trnavPiHpH"
|
||||
@@ -218,7 +213,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "s9Duf05WqqSC"
|
||||
@@ -252,7 +246,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "RS1nEcYVuEAM"
|
||||
@@ -290,7 +283,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "5EIjMM9Fw2eT"
|
||||
@@ -333,11 +325,11 @@
|
||||
" print('Iter %d, a=%3.3f, b=%3.3f, c=%3.3f, d=%3.3f'%(n_iter, a,b,c,d))\n",
|
||||
" print('a %f, b%f, c%f, d%f'%(lossa,lossb,lossc,lossd))\n",
|
||||
"\n",
|
||||
" # Rule #1 If point A is less than points B, C, and D then halve points B,C, and D\n",
|
||||
" # Rule #1 If point A is less than points B, C, and D then halve distance from A to points B,C, and D\n",
|
||||
" if np.argmin((lossa,lossb,lossc,lossd))==0:\n",
|
||||
" b = b/2\n",
|
||||
" c = c/2\n",
|
||||
" d = d/2\n",
|
||||
" b = a+ (b-a)/2\n",
|
||||
" c = a+ (c-a)/2\n",
|
||||
" d = a+ (d-a)/2\n",
|
||||
" continue;\n",
|
||||
"\n",
|
||||
" # Rule #2 If point b is less than point c then\n",
|
||||
@@ -412,8 +404,8 @@
|
||||
],
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"include_colab_link": true,
|
||||
"provenance": []
|
||||
"provenance": [],
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"colab_type": "text",
|
||||
"id": "view-in-github"
|
||||
"id": "view-in-github",
|
||||
"colab_type": "text"
|
||||
},
|
||||
"source": [
|
||||
"<a href=\"https://colab.research.google.com/github/udlbook/udlbook/blob/main/Notebooks/Chap06/6_3_Stochastic_Gradient_Descent.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "el8l05WQEO46"
|
||||
@@ -122,7 +120,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "QU5mdGvpTtEG"
|
||||
@@ -150,7 +147,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "eB5DQvU5hYNx"
|
||||
@@ -172,7 +168,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "F3trnavPiHpH"
|
||||
@@ -228,7 +223,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "s9Duf05WqqSC"
|
||||
@@ -279,7 +273,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "RS1nEcYVuEAM"
|
||||
@@ -316,7 +309,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "5EIjMM9Fw2eT"
|
||||
@@ -359,11 +351,11 @@
|
||||
" print('Iter %d, a=%3.3f, b=%3.3f, c=%3.3f, d=%3.3f'%(n_iter, a,b,c,d))\n",
|
||||
" print('a %f, b%f, c%f, d%f'%(lossa,lossb,lossc,lossd))\n",
|
||||
"\n",
|
||||
" # Rule #1 If point A is less than points B, C, and D then halve points B,C, and D\n",
|
||||
" # Rule #1 If point A is less than points B, C, and D then change B,C,D so they are half their current distance from A\n",
|
||||
" if np.argmin((lossa,lossb,lossc,lossd))==0:\n",
|
||||
" b = b/2\n",
|
||||
" c = c/2\n",
|
||||
" d = d/2\n",
|
||||
" b = a+ (b-a)/2\n",
|
||||
" c = a+ (c-a)/2\n",
|
||||
" d = a+ (d-a)/2\n",
|
||||
" continue;\n",
|
||||
"\n",
|
||||
" # Rule #2 If point b is less than point c then\n",
|
||||
@@ -577,9 +569,8 @@
|
||||
],
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"authorship_tag": "ABX9TyNk5FN4qlw3pk8BwDVWw1jN",
|
||||
"include_colab_link": true,
|
||||
"provenance": []
|
||||
"provenance": [],
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": [],
|
||||
"authorship_tag": "ABX9TyM2kkHLr00J4Jeypw41sTkQ",
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
@@ -230,8 +229,8 @@
|
||||
"# We'll need the indicator function\n",
|
||||
"def indicator_function(x):\n",
|
||||
" x_in = np.array(x)\n",
|
||||
" x_in[x_in>=0] = 1\n",
|
||||
" x_in[x_in<0] = 0\n",
|
||||
" x_in[x_in>0] = 1\n",
|
||||
" x_in[x_in<=0] = 0\n",
|
||||
" return x_in\n",
|
||||
"\n",
|
||||
"# Main backward pass routine\n",
|
||||
|
||||
@@ -1,28 +1,10 @@
|
||||
{
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": [],
|
||||
"gpuType": "T4",
|
||||
"authorship_tag": "ABX9TyOuKMUcKfOIhIL2qTX9jJCy",
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
"name": "python3",
|
||||
"display_name": "Python 3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
},
|
||||
"accelerator": "GPU"
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "view-in-github",
|
||||
"colab_type": "text"
|
||||
"colab_type": "text",
|
||||
"id": "view-in-github"
|
||||
},
|
||||
"source": [
|
||||
"<a href=\"https://colab.research.google.com/github/udlbook/udlbook/blob/main/Notebooks/Chap08/8_1_MNIST_1D_Performance.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
||||
@@ -30,6 +12,9 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "L6chybAVFJW2"
|
||||
},
|
||||
"source": [
|
||||
"# **Notebook 8.1: MNIST_1D_Performance**\n",
|
||||
"\n",
|
||||
@@ -38,25 +23,27 @@
|
||||
"Work through the cells below, running each cell in turn. In various places you will see the words \"TO DO\". Follow the instructions at these places and make predictions about what is going to happen or write code to complete the functions.\n",
|
||||
"\n",
|
||||
"Contact me at udlbookmail@gmail.com if you find any mistakes or have any suggestions."
|
||||
],
|
||||
"metadata": {
|
||||
"id": "L6chybAVFJW2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"# Run this if you're in a Colab to install MNIST 1D repository\n",
|
||||
"%pip install git+https://github.com/greydanus/mnist1d"
|
||||
],
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "ifVjS4cTOqKz"
|
||||
},
|
||||
"execution_count": null,
|
||||
"outputs": []
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Run this if you're in a Colab to install MNIST 1D repository\n",
|
||||
"%pip install git+https://github.com/greydanus/mnist1d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "qyE7G1StPIqO"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import torch, torch.nn as nn\n",
|
||||
"from torch.utils.data import TensorDataset, DataLoader\n",
|
||||
@@ -64,44 +51,42 @@
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import mnist1d"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "qyE7G1StPIqO"
|
||||
},
|
||||
"execution_count": null,
|
||||
"outputs": []
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"Let's generate a training and test dataset using the MNIST1D code. The dataset gets saved as a .pkl file so it doesn't have to be regenerated each time."
|
||||
],
|
||||
"metadata": {
|
||||
"id": "F7LNq72SP6jO"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"Let's generate a training and test dataset using the MNIST1D code. The dataset gets saved as a .pkl file so it doesn't have to be regenerated each time."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "YLxf7dJfPaqw"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"!mkdir ./sample_data\n",
|
||||
"\n",
|
||||
"args = mnist1d.data.get_dataset_args()\n",
|
||||
"data = mnist1d.data.get_dataset(args, path='./sample_data/mnist1d_data.pkl', download=False, regenerate=False)\n",
|
||||
"data = mnist1d.data.get_dataset(args, path='./mnist1d_data.pkl', download=False, regenerate=False)\n",
|
||||
"\n",
|
||||
"# The training and test input and outputs are in\n",
|
||||
"# data['x'], data['y'], data['x_test'], and data['y_test']\n",
|
||||
"print(\"Examples in training set: {}\".format(len(data['y'])))\n",
|
||||
"print(\"Examples in test set: {}\".format(len(data['y_test'])))\n",
|
||||
"print(\"Length of each example: {}\".format(data['x'].shape[-1]))"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "YLxf7dJfPaqw"
|
||||
},
|
||||
"execution_count": null,
|
||||
"outputs": []
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "FxaB5vc0uevl"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"D_i = 40 # Input dimensions\n",
|
||||
"D_k = 100 # Hidden dimensions\n",
|
||||
@@ -122,15 +107,15 @@
|
||||
"\n",
|
||||
"# Call the function you just defined\n",
|
||||
"model.apply(weights_init)\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "FxaB5vc0uevl"
|
||||
},
|
||||
"execution_count": null,
|
||||
"outputs": []
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "_rX6N3VyyQTY"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# choose cross entropy loss function (equation 5.24)\n",
|
||||
"loss_function = torch.nn.CrossEntropyLoss()\n",
|
||||
@@ -139,9 +124,9 @@
|
||||
"# object that decreases learning rate by half every 10 epochs\n",
|
||||
"scheduler = StepLR(optimizer, step_size=10, gamma=0.5)\n",
|
||||
"x_train = torch.tensor(data['x'].astype('float32'))\n",
|
||||
"y_train = torch.tensor(data['y'].transpose().astype('long'))\n",
|
||||
"y_train = torch.tensor(data['y'].transpose().astype('int64'))\n",
|
||||
"x_test= torch.tensor(data['x_test'].astype('float32'))\n",
|
||||
"y_test = torch.tensor(data['y_test'].astype('long'))\n",
|
||||
"y_test = torch.tensor(data['y_test'].astype('int64'))\n",
|
||||
"\n",
|
||||
"# load the data into a class that creates the batches\n",
|
||||
"data_loader = DataLoader(TensorDataset(x_train,y_train), batch_size=100, shuffle=True, worker_init_fn=np.random.seed(1))\n",
|
||||
@@ -186,15 +171,15 @@
|
||||
"\n",
|
||||
" # tell scheduler to consider updating learning rate\n",
|
||||
" scheduler.step()"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "_rX6N3VyyQTY"
|
||||
},
|
||||
"execution_count": null,
|
||||
"outputs": []
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "yI-l6kA_EH9G"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Plot the results\n",
|
||||
"fig, ax = plt.subplots()\n",
|
||||
@@ -215,25 +200,38 @@
|
||||
"ax.set_title('Train loss %3.2f, Test loss %3.2f'%(losses_train[-1],losses_test[-1]))\n",
|
||||
"ax.legend()\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "yI-l6kA_EH9G"
|
||||
},
|
||||
"execution_count": null,
|
||||
"outputs": []
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "q-yT6re6GZS4"
|
||||
},
|
||||
"source": [
|
||||
"**TO DO**\n",
|
||||
"\n",
|
||||
"Play with the model -- try changing the number of layers, hidden units, learning rate, batch size, momentum or anything else you like. See if you can improve the test results.\n",
|
||||
"\n",
|
||||
"Is it a good idea to optimize the hyperparameters in this way? Will the final result be a good estimate of the true test performance?"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "q-yT6re6GZS4"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"metadata": {
|
||||
"accelerator": "GPU",
|
||||
"colab": {
|
||||
"authorship_tag": "ABX9TyOuKMUcKfOIhIL2qTX9jJCy",
|
||||
"gpuType": "T4",
|
||||
"include_colab_link": true,
|
||||
"provenance": []
|
||||
},
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
}
|
||||
|
||||
@@ -107,10 +107,7 @@
|
||||
" # Initialize the parameters with He initialization\n",
|
||||
" if isinstance(layer_in, nn.Linear):\n",
|
||||
" nn.init.kaiming_uniform_(layer_in.weight)\n",
|
||||
" layer_in.bias.data.fill_(0.0)\n",
|
||||
"\n",
|
||||
"# Call the function you just defined\n",
|
||||
"model.apply(weights_init)"
|
||||
" layer_in.bias.data.fill_(0.0)\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "JfIFWFIL33eF"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": [],
|
||||
"authorship_tag": "ABX9TyNAcc98STMeyQgh9SbVHWG+",
|
||||
"authorship_tag": "ABX9TyORZF8xy4X1yf4oRhRq8Rtm",
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
@@ -65,10 +65,19 @@
|
||||
"source": [
|
||||
"# Run this once to load the train and test data straight into a dataloader class\n",
|
||||
"# that will provide the batches\n",
|
||||
"\n",
|
||||
"# (It may complain that some files are missing because the files seem to have been\n",
|
||||
"# reorganized on the underlying website, but it still seems to work). If everything is working\n",
|
||||
"# properly, then the whole notebook should run to the end without further problems\n",
|
||||
"# even before you make changes.\n",
|
||||
"batch_size_train = 64\n",
|
||||
"batch_size_test = 1000\n",
|
||||
"\n",
|
||||
"# TODO Change this directory to point towards an existing directory\n",
|
||||
"myDir = '/files/'\n",
|
||||
"\n",
|
||||
"train_loader = torch.utils.data.DataLoader(\n",
|
||||
" torchvision.datasets.MNIST('/files/', train=True, download=True,\n",
|
||||
" torchvision.datasets.MNIST(myDir, train=True, download=True,\n",
|
||||
" transform=torchvision.transforms.Compose([\n",
|
||||
" torchvision.transforms.ToTensor(),\n",
|
||||
" torchvision.transforms.Normalize(\n",
|
||||
@@ -77,7 +86,7 @@
|
||||
" batch_size=batch_size_train, shuffle=True)\n",
|
||||
"\n",
|
||||
"test_loader = torch.utils.data.DataLoader(\n",
|
||||
" torchvision.datasets.MNIST('/files/', train=False, download=True,\n",
|
||||
" torchvision.datasets.MNIST(myDir, train=False, download=True,\n",
|
||||
" transform=torchvision.transforms.Compose([\n",
|
||||
" torchvision.transforms.ToTensor(),\n",
|
||||
" torchvision.transforms.Normalize(\n",
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
"# Choose random values for the parameters\n",
|
||||
"omega = np.random.normal(size=(D,D))\n",
|
||||
"beta = np.random.normal(size=(D,1))\n",
|
||||
"phi = np.random.normal(size=(1,2*D))"
|
||||
"phi = np.random.normal(size=(2*D,1))"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "79TSK7oLMobe"
|
||||
|
||||
51
Trees/LinearRegression_LeastSquares.ipynb
Normal file
51
Trees/LinearRegression_LeastSquares.ipynb
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": [],
|
||||
"authorship_tag": "ABX9TyM1pe3HkxLrjbeKezq1MlM5",
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
"name": "python3",
|
||||
"display_name": "Python 3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "view-in-github",
|
||||
"colab_type": "text"
|
||||
},
|
||||
"source": [
|
||||
"<a href=\"https://colab.research.google.com/github/udlbook/udlbook/blob/main/Trees/LinearRegression_LeastSquares.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"# Least Squares Loss"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "uORlKyPv02ge"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "bbF6SE_F0tU8"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
51
Trees/LinearRegression_LossFunction.ipynb
Normal file
51
Trees/LinearRegression_LossFunction.ipynb
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": [],
|
||||
"authorship_tag": "ABX9TyMIJ9DpOBppPZXAJ5wms6s8",
|
||||
"include_colab_link": true
|
||||
},
|
||||
"kernelspec": {
|
||||
"name": "python3",
|
||||
"display_name": "Python 3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "view-in-github",
|
||||
"colab_type": "text"
|
||||
},
|
||||
"source": [
|
||||
"<a href=\"https://colab.research.google.com/github/udlbook/udlbook/blob/main/Trees/LinearRegression_LossFunction.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"# Loss function"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "uORlKyPv02ge"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "bbF6SE_F0tU8"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
BIN
UDL_Errata.pdf
BIN
UDL_Errata.pdf
Binary file not shown.
Reference in New Issue
Block a user