pytorch-stuff/Visualize_Training.ipynb

290 lines
442 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"import matplotlib.pyplot as plt\n",
"import sklearn.datasets"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"x, y = sklearn.datasets.make_moons(200, noise=0.2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x[:,0],x[:,1], s=40, c=y, cmap=plt.cm.Spectral)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"x = torch.FloatTensor(x)\n",
"y = torch.LongTensor(y)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"class FeedForward(torch.nn.Module):\n",
" \n",
" def __init__(self, input_neurons, hidden_neurons, output_neurons):\n",
" super(FeedForward, self).__init__()\n",
" self.hidden = nn.Linear(input_neurons, hidden_neurons)\n",
" self.out = nn.Linear(hidden_neurons, output_neurons)\n",
" \n",
" def forward(self, x):\n",
" x = self.hidden(x)\n",
" x = F.relu(x)\n",
" x = self.out(x)\n",
" return x\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(y.unique())"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"network = FeedForward(input_neurons=x.shape[1], hidden_neurons=50, output_neurons=len(y.unique()))\n",
"optimizer = torch.optim.SGD(network.parameters(), lr=0.02)\n",
"loss_function = torch.nn.CrossEntropyLoss()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhgAAAD4CAYAAACuX5+7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd1hUV/rA8e+dYRh6kyJSRRDFggV7b7EllhSj6b1vstnsbspuyiabzaZvsqn+0jbZxNXEWGPvvWABQQFBECnSe51yf3+gI+PMUId+Ps+TJ86ZWw6I3HdOeV9JlmUEQRAEQRCsSdHRHRAEQRAEofsRAYYgCIIgCFYnAgxBEARBEKxOBBiCIAiCIFidCDAEQRAEQbA6m47ugCWenp5ycHBwR3dDEAShSzlx4kS+LMteHd0PQei0AUZwcDDR0dEd3Q1BEIQuRZKkix3dB0EAMUUiCIIgCEIbEAGGIAiCIAhWJwIMQRAEQRCsTgQYgiAIgiBYnQgwBEEQBEGwuk67i0ToOaqrNKxZEcPxw+nYqpVMnRXG7AUDkSSpo7smCIIgtJAIMIQO99n7+4mJzjS8XvHtCaoqNSxeFtmBvRIEQRBaQ0yRCB3qcmapUXBx1fbfEtDr9B3QI0EQBMEaRIAhdKiS4iqz7RXltWi1IsAQBEHoqkSAIXSovmGeODrbmrSHD/LGVi1m8ARBELoqEWAIHcrWVsl9j41Bpbr2o+jmbs89j4zuwF4JgiAIrSU+Igodasu6s6xdGYtGUzcdIkkQ2NddjF4IgiB0cWIEQ+gwMdGZhh0jV8kyxJ7M4t3XdqITizwFQRC6LBFgCB3m4N4LFt/LvVxGfEx2O/ZGEARBsCYxDt1JxERncujKA3f8lBAio/w6uEftQJYbfLv+yIYgCILQtYgAoxPYvPYs//vuhOH1kf1p3H7fCOYtGtSBvWp74yb35eiBi2bfs7VVMniYbzv3SBAEQbAWMUXSwWpqtKxfFWvSvmHVGWprtB3Qo/YzfHQAS+4ZjtrOOM61d1Dx6LMTcXRSd1DPBEEQhNYSIxgdrKigkkozUwGVlRoKCyrp3celA3rVfubfPJiZ88IpLKikvKyW6ioN/Qd6obZTdXTXBEEQhFYQAUYH6+XliLOLmrLSGqN2Z1c1vbwcO6hX7Uttp8LXz7WjuyEIgiBYkZgi6WAqlZIl94ygfuFQSYIld49ApVJ2XMcEQRAEoRXECEYnMHlmKP5BbhzelwrULX4MCfO0eHx5aQ0rvo02Km++eFkkSqWIFwVBEITOQQQYnURImGeDQUV9H7+9h8T4XABqqrVs+CUOjUbPsvtHtmUXBUEQBKHJxEfeLiYjvdgQXNS3Z9t5kflSEARB6DTECEYXU1lRa7a9plqDTqtvcJpEp9OzbUMCRw+mobJRMmlGPybPDG2rrgqCIAg9mAgwupiQ0F64utlRUlxt1D4o0rfRAmHffXaEfTtTDK+TzuVSmF+Bj68Ll9KLCOrrwcixgdjYiIEtQRAEoXVEgNHF2KiUPPaHiXzy7j4qyupGM3r3ceHex8Y0eF5xYSUHdpvW/li36gx6/bWU3WEDvfjzazNFNdM2JssyCXE5ZGeW0q+/J0EhHh3dJUEQBKsST5FORlNRRU1+KY6B3kj1967WEzHUl399dQvnzuRgq1YSPsgHhcL8sVcVFlQaBRJXXd92/lweB/dcYNrs/i3/IoQG1dRo+eCNXSTE5RjapswK5YEnx3VgrwRBEKxLBBidhCzLnPzL15z99xq0FdU49+vDuM+ewW9WlNnjbdU2zSqI5h/ohqOzrWHUoyHnE/IMAYZOp+dyVilu7vYdnrpbr9OzbtUZ9mw7T02NlpFjA1l230icXDq2XwV5FeTnlhMY4oG9feMZSHduSjQKLgD2bk9m1Pgghgzv01bdFARBaFciwOgkEr/cSOw/Vxhel6VksXPRK9x24b/Y+7R++NxWbcM9j4xm+b8OotPVjVoolZLhz/X5+DoDcPLoJf7z5VGKC6uwsVEwbXYYdzw4qtHREkv0epnDe1M5eewSDg4qps4Oo19/ryafv/qnGDaujjO8PrArhdzLZfzlH7Nb1J/W0un0fPPpEQ7uuYCsl7GzV7HsgZFMnRXW4Hlxp82XoY87nS0CDEEQug0RYLSz6rxikn/YTtXlQvrMGmkYoUj+YZvJsbqqGlJ/3kfEU4uscu+xk/oSGu5F9JF0VDZKwgZ6885r2ykruZam3M3dnqk3hFGYX8Gn7+5Dq63b+qrV6tn+WyI+vi7MunFAi+7/3edH2Ls92fD6wO4L/O75KYwYE9DouXq9zK7NiSbtSWdzuZRWRECwe4v61Bo7fkvkwK5ri2arqzR89/lRwiO8G0x97uZhb77d3Xy7JQV5FezemkRBfiUDB/swfmqIWKArCEKnIQKMdlR87iKbpjxLTX4JAHHvrWLA4wsY9+kzyBZyWMg6nVX74OntxJwFEYbXr74zj83rznIprYigEA/mLozA1c2ebRvOGYKL+g7vT21RgJGTXca+HclGbXq9zOofTzNiTAAx0ZmcOJqOnb2KSdP7mQQMer1MVZVpUTiA8rIas+1t7fhh01Lzsl4m+nA6N906xOJ5s+YP4Mj+NHT1vr/OLmomTAtp8r0zLxXz9xe2GrYtH9pzgWOHLvLcy9Mtrt0RBEFoTyLAaCOyLFOWkoXawxm1R11F1FOvfmcILq5K+Hw94Y/dRMiy6eQfSzB6T2GrIvjWyVbrk14vs3F1HDs3J1JZUcvwUf7c8UAU9zwy2uRYSw+plj68sjNKkE1nY8jMKGHV9yf57dd4Q9uOTYk8/cIUhkX5G9psbBQMHt6HMyezjM53dlETOqDp0yzWZGtrvlaMuoEdOFkZJZw5lcWUmaFkXCymIL+Cfv09WbwsEhdXuybfe/2qMyY5Uc6czCI+JpvBw8Q0iyAIHU+Mp7aBy/tjWR1+L6v738P/fG/jwEPvoavVkHv4rNnj846co/eUSNwG9+Vq1TN7Xw+mrnwZRz/rPTw3ro5j9Y+nKS6sorZGx9EDF3n/jV3IZp78oyYEmX2A+ge68u+39/Lpu/uIic5s8r0D+7qbXbvhH+jGlnXG3xedVs/P358yOfbeR0cbla93cFDx6LMTO6wo3BQzay3s7GwYMynY7PH7dibz0tMbWP3jaXZtSSItpYAHnxrHk3+aTB//5lWTTU8tMt+eZr5dEAShvVllBEOSpG+AG4FcWZYHm3lfAj4C5gGVwH2yLJ+0xr07G01ZJTsXvkxtcTkAeo2W899sxtHPE5f+/lRm5puco62sZuPYp9DXXpsC8B4bQdDCCVbt204zaxjSU4s4n5BH/4HeRu1u7vY8/eJUvv/yGLmXy1Db2RAY7M6ebdemOY4dvMhdD40ymTLR6/RculiMg6MtXj5OAHh4OjJ3UYTRSIXKVsm4ycGsMhNMZKQXo9fpUdTLTOrl48xbnywgMT6H6ioNEUN7o7ZrfNdGa1VXaTh57BK1NTqGjfI3rJUYMzGYkqIqNq6Oo6S4mqAQD+58MApXN9O1FDU1WlZ8HY1cb1twba2O/351nLf+vaDZfQro605WRolpe1D7r0URBEEwx1pTJN8BnwDfW3h/LhB25b8xwOdX/t/tXPrtiCG4qC/lxx2MX/4cOfvPIGuvravoPW0Y6WsPGgUXABfXHCD/RBKeI5ufjyI1uYDdW5MoK60hcqQfk2b0Q6lUUFlufouqpfYhw/vwzucLKcyvRJIknn9irckx61bFMm12GDZXRhGSzuXy5QcHyM+rACAyyo/H/zARewdbltwzgoFDenPy6CXsHVVMnh6KrVrJL/89bZKPo4+/q1FwcZVCITFwSO9mfT9a4+KFQt792w7DQlgbGwWP/H4CYyYGA3DDTQOZOX8AtTVa7BrYoppxsZjKStM1JFmXSigvrWn2VtsFtw7mzIlMo2sOivRl8DDfZl1HEAShrVglwJBleZ8kScENHLIQ+F6uG4s/IkmSmyRJvrIsm9+v1x1JEn2mD2f+/o84+8kaqi4X4TdrJAOfWsSq4DvMnlIUl9rsACPudBYfvLH
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.ion()\n",
"for epoch in range(10000):\n",
" out = network(x)\n",
" loss = loss_function(out,y)\n",
" optimizer.zero_grad()\n",
" loss.backward()\n",
" optimizer.step()\n",
" \n",
" if epoch%1000 == 0:\n",
" # Show learning process till this moment\n",
" max_value, prediction = torch.max(out,1)\n",
" predicted_y = prediction.data.numpy()\n",
" target_y = y.data.numpy()\n",
" plt.scatter(x.data.numpy()[:,0],x.data.numpy()[:,1], s=40, c=predicted_y, lw=0, cmap=plt.cm.Spectral)\n",
" accuracy = (predicted_y==target_y).sum() / target_y.size\n",
" plt.text(3,-1, \"Accuracy = {:.2f}\".format(accuracy), fontdict={'size':14})\n",
" plt.pause(0.1)\n",
" \n",
"plt.ioff()\n",
"plt.show()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}