Files
PyTorch-Tutorial/tutorial-contents-notebooks/403_RNN_regressor.ipynb
2017-06-22 23:05:34 +02:00

265 lines
90 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 403 RNN Regressor\n",
"\n",
"View more, visit my tutorial page: https://morvanzhou.github.io/tutorials/\n",
"My Youtube Channel: https://www.youtube.com/user/MorvanZhou\n",
"\n",
"Dependencies:\n",
"* torch: 0.1.11\n",
"* matplotlib\n",
"* numpy"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import torch\n",
"from torch import nn\n",
"from torch.autograd import Variable\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<torch._C.Generator at 0x7f9888178930>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.manual_seed(1) # reproducible"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Hyper Parameters\n",
"TIME_STEP = 10 # rnn time step\n",
"INPUT_SIZE = 1 # rnn input size\n",
"LR = 0.02 # learning rate"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\noihJ+H8Lckc7eouA8QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9831f53208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# show data\n",
"steps = np.linspace(0, np.pi*2, 100, dtype=np.float32)\n",
"x_np = np.sin(steps) # float32 for converting torch FloatTensor\n",
"y_np = np.cos(steps)\n",
"plt.plot(steps, y_np, 'r-', label='target (cos)')\n",
"plt.plot(steps, x_np, 'b-', label='input (sin)')\n",
"plt.legend(loc='best')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class RNN(nn.Module):\n",
" def __init__(self):\n",
" super(RNN, self).__init__()\n",
"\n",
" self.rnn = nn.RNN(\n",
" input_size=INPUT_SIZE,\n",
" hidden_size=32, # rnn hidden unit\n",
" num_layers=1, # number of rnn layer\n",
" batch_first=True, # input & output will has batch size as 1s dimension. e.g. (batch, time_step, input_size)\n",
" )\n",
" self.out = nn.Linear(32, 1)\n",
"\n",
" def forward(self, x, h_state):\n",
" # x (batch, time_step, input_size)\n",
" # h_state (n_layers, batch, hidden_size)\n",
" # r_out (batch, time_step, hidden_size)\n",
" r_out, h_state = self.rnn(x, h_state)\n",
"\n",
" outs = [] # save all predictions\n",
" for time_step in range(r_out.size(1)): # calculate output for each time step\n",
" outs.append(self.out(r_out[:, time_step, :]))\n",
" return torch.stack(outs, dim=1), h_state"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RNN (\n",
" (rnn): RNN(1, 32, batch_first=True)\n",
" (out): Linear (32 -> 1)\n",
")\n"
]
}
],
"source": [
"rnn = RNN()\n",
"print(rnn)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"optimizer = torch.optim.Adam(rnn.parameters(), lr=LR) # optimize all cnn parameters\n",
"loss_func = nn.MSELoss()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"h_state = None # for initial hidden state"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982fc30c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(1, figsize=(12, 5))\n",
"plt.ion() # continuously plot"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982fbd9240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for step in range(60):\n",
" start, end = step * np.pi, (step+1)*np.pi # time range\n",
" # use sin predicts cos\n",
" steps = np.linspace(start, end, TIME_STEP, dtype=np.float32)\n",
" x_np = np.sin(steps) # float32 for converting torch FloatTensor\n",
" y_np = np.cos(steps)\n",
"\n",
" x = Variable(torch.from_numpy(x_np[np.newaxis, :, np.newaxis])) # shape (batch, time_step, input_size)\n",
" y = Variable(torch.from_numpy(y_np[np.newaxis, :, np.newaxis]))\n",
"\n",
" prediction, h_state = rnn(x, h_state) # rnn output\n",
" # !! next step is important !!\n",
" h_state = Variable(h_state.data) # repack the hidden state, break the connection from last iteration\n",
"\n",
" loss = loss_func(prediction, y) # cross entropy loss\n",
" optimizer.zero_grad() # clear gradients for this training step\n",
" loss.backward() # backpropagation, compute gradients\n",
" optimizer.step() # apply gradients\n",
"\n",
" # plotting\n",
" plt.plot(steps, y_np.flatten(), 'r-')\n",
" plt.plot(steps, prediction.data.numpy().flatten(), 'b-')\n",
" plt.draw(); plt.pause(0.05)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}