|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043 |
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 多层神经网络\n",
- "\n",
- "本节在前面学习线性回归模型的基础上,我们学习如何利用PyTorch实现多层神经网络。"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 1. 多层神经网络\n",
- "在前面的线性回归中,我们的公式是 $y = w x + b$,而在 Logistic 回归中,我们的公式是 $y = Sigmoid(w x + b)$,其实它们都可以看成单层神经网络,其中 Sigmoid 被称为激活函数。"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 1.1 神经网络的结构\n",
- "神经网络就是很多个神经元堆在一起形成一层神经网络,那么多个层堆叠在一起就是深层神经网络\n",
- "\n",
- "\n",
- "\n",
- "可以看到,神经网络的结构其实非常简单,主要有输入层,隐藏层,输出层构成,输入层需要根据特征数目来决定,输出层根据解决的问题来决定,那么隐藏层的网路层数以及每层的神经元数就是可以调节的参数,而不同的层数和每层的参数对模型的影响非常大,我们看看这个网站的示例 [demo](http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html)\n",
- "\n",
- "神经网络向前传播也非常简单,就是一层一层不断做运算即可。"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 1.2 示例程序"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import torch\n",
- "import numpy as np\n",
- "from torch import nn\n",
- "from torch.autograd import Variable\n",
- "import torch.nn.functional as F\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "from sklearn import datasets\n",
- "\n",
- "# generate sample data\n",
- "np.random.seed(0)\n",
- "data_x, data_y = datasets.make_moons(200, noise=0.20)\n",
- "\n",
- "# plot data\n",
- "plt.scatter(data_x[:, 0], data_x[:, 1], c=data_y, cmap=plt.cm.Spectral)\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [],
- "source": [
- "def plot_decision_boundary(model, x, y):\n",
- " # Set min and max values and give it some padding\n",
- " x_min, x_max = x[:, 0].min() - 1, x[:, 0].max() + 1\n",
- " y_min, y_max = x[:, 1].min() - 1, x[:, 1].max() + 1\n",
- " h = 0.01\n",
- " # Generate a grid of points with distance h between them\n",
- " xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
- " # Predict the function value for the whole grid .c_按行连接两个矩阵,左右相加。\n",
- " Z = model(np.c_[xx.ravel(), yy.ravel()])\n",
- " Z = Z.reshape(xx.shape)\n",
- " # Plot the contour and training examples\n",
- " plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)\n",
- " plt.ylabel('x2')\n",
- " plt.xlabel('x1')\n",
- " plt.scatter(x[:, 0], x[:, 1], c=y.reshape(-1), s=40, cmap=plt.cm.Spectral)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "这次我们仍然处理一个二分类问题,但是比前面的 logistic 回归更加复杂。我们可以先尝试用 logistic 回归来解决这个问题"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 变量\n",
- "x = torch.from_numpy(data_x).float()\n",
- "y = torch.from_numpy(data_y).float().unsqueeze(1)\n",
- "\n",
- "# 定义参数\n",
- "w = nn.Parameter(torch.randn(2, 1))\n",
- "b = nn.Parameter(torch.zeros(1))\n",
- "\n",
- "# 优化器\n",
- "optimizer = torch.optim.SGD([w, b], 1e-1)\n",
- "\n",
- "def logistic_regression(x):\n",
- " return torch.mm(x, w) + b\n",
- " \n",
- "criterion = nn.BCEWithLogitsLoss()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "epoch: 20, loss: 0.6910861730575562\n",
- "epoch: 40, loss: 0.5803939700126648\n",
- "epoch: 60, loss: 0.5160364508628845\n",
- "epoch: 80, loss: 0.4751732349395752\n",
- "epoch: 100, loss: 0.44716107845306396\n"
- ]
- }
- ],
- "source": [
- "for e in range(100):\n",
- " #更新并自动计算\n",
- " out = logistic_regression(Variable(x))\n",
- " loss = criterion(out, Variable(y))\n",
- " \n",
- " optimizer.zero_grad()\n",
- " loss.backward()\n",
- " optimizer.step()\n",
- " \n",
- " if (e + 1) % 20 == 0:\n",
- " print('epoch: {}, loss: {}'.format(e+1, loss.item()))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
- "source": [
- "def plot_logistic(x):\n",
- " x = Variable(torch.from_numpy(x).float())\n",
- " out = F.sigmoid(logistic_regression(x))\n",
- " out = (out > 0.5) * 1\n",
- " return out.data.numpy()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/bushuhui/anaconda3/envs/dl/lib/python3.7/site-packages/torch/nn/functional.py:1351: UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.\n",
- " warnings.warn(\"nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.\")\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "Text(0.5, 1.0, 'logistic regression')"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "plot_decision_boundary(lambda x: plot_logistic(x), x.numpy(), y.numpy())\n",
- "plt.title('logistic regression')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 1.3 多层神经网络示例程序\n",
- "\n",
- "可以看到,logistic 回归并不能很好的区分开这个复杂的数据集,如果你还记得前面的内容,你就知道 logistic 回归是一个线性分类器。接下来我们用两层神经网络来对同样的数据进行处理,看看效果如何。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 定义两层神经网络的参数\n",
- "w1 = nn.Parameter(torch.randn(2, 4) * 0.01) # 隐藏层神经元个数 2\n",
- "b1 = nn.Parameter(torch.zeros(4))\n",
- "\n",
- "w2 = nn.Parameter(torch.randn(4, 1) * 0.01)\n",
- "b2 = nn.Parameter(torch.zeros(1))\n",
- "\n",
- "# 定义模型\n",
- "def two_network(x):\n",
- " x1 = torch.mm(x, w1) + b1\n",
- " x1 = torch.tanh(x1) # 使用 PyTorch 自带的 tanh 激活函数\n",
- " x2 = torch.mm(x1, w2) + b2\n",
- " return x2\n",
- "\n",
- "optimizer = torch.optim.SGD([w1, w2, b1, b2], 1.)\n",
- "\n",
- "criterion = nn.BCEWithLogitsLoss()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/bushuhui/anaconda3/envs/dl/lib/python3.7/site-packages/torch/nn/functional.py:1340: UserWarning: nn.functional.tanh is deprecated. Use torch.tanh instead.\n",
- " warnings.warn(\"nn.functional.tanh is deprecated. Use torch.tanh instead.\")\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "epoch: 100, loss: 0.30548951029777527\n",
- "epoch: 200, loss: 0.3037661612033844\n",
- "epoch: 300, loss: 0.30283141136169434\n",
- "epoch: 400, loss: 0.30222681164741516\n",
- "epoch: 500, loss: 0.3017694056034088\n",
- "epoch: 600, loss: 0.30137133598327637\n",
- "epoch: 700, loss: 0.3009776175022125\n",
- "epoch: 800, loss: 0.30053412914276123\n",
- "epoch: 900, loss: 0.2999470829963684\n",
- "epoch: 1000, loss: 0.29893115162849426\n"
- ]
- }
- ],
- "source": [
- "# 我们训练 1000 次\n",
- "for e in range(1000):\n",
- " out = two_network(Variable(x))\n",
- " loss = criterion(out, Variable(y))\n",
- " optimizer.zero_grad()\n",
- " loss.backward()\n",
- " optimizer.step()\n",
- " if (e + 1) % 100 == 0:\n",
- " print('epoch: {}, loss: {}'.format(e+1, loss.item()))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "def plot_network(x):\n",
- " x = Variable(torch.from_numpy(x).float())\n",
- " x1 = torch.mm(x, w1) + b1\n",
- " x1 = F.tanh(x1)\n",
- " x2 = torch.mm(x1, w2) + b2\n",
- " out = F.sigmoid(x2)\n",
- " out = (out > 0.5) * 1\n",
- " return out.data.numpy()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Text(0.5, 1.0, '2 layer network')"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "plot_decision_boundary(lambda x: plot_network(x), x.numpy(), y.numpy())\n",
- "plt.title('2 layer network')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "可以看到神经网络能够非常好地分类这个复杂的数据,和前面的 logistic 回归相比,神经网络因为有了激活函数的存在,成了一个非线性分类器,所以神经网络分类的边界更加复杂。"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 2. Sequential 和 Module"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "前面讲了数据处理,模型构建,loss 函数设计等等内容,但是目前为止我们还没有准备好构建一个完整的机器学习系统,一个完整的机器学习系统需要我们不断地读写模型。在现实应用中,一般我们会将模型在本地进行训练,然后保存模型,接着我们会将模型部署到不同的地方进行应用。"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "对于前面的线性回归模型、 Logistic回归模型和神经网络,在构建的时候定义了需要的参数。这对于比较小的模型是可行的,但是对于大的模型,比如100 层的神经网络,这个时候再去手动定义参数就显得非常麻烦,所以 PyTorch 提供了两个模块来帮助我们构建模型,一个是Sequential,一个是 Module。\n",
- "\n",
- "Sequential 允许我们构建序列化的模块,而 Module 是一种更加灵活的模型定义方式,我们下面分别用 Sequential 和 Module 来定义上面的神经网络。"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 2.1 Sequential"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Sequential\n",
- "seq_net = nn.Sequential(\n",
- " nn.Linear(2, 4), # PyTorch 中的线性层,wx + b\n",
- " nn.Tanh(),\n",
- " nn.Linear(4, 1)\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Linear(in_features=2, out_features=4, bias=True)"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# 序列模块可以通过索引访问每一层\n",
- "\n",
- "seq_net[0] # 第一层"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Parameter containing:\n",
- "tensor([[-0.6391, -0.3023],\n",
- " [ 0.4236, -0.2388],\n",
- " [ 0.1976, -0.0334],\n",
- " [ 0.5111, 0.4610]], requires_grad=True)\n"
- ]
- }
- ],
- "source": [
- "# 打印出第一层的权重\n",
- "\n",
- "w0 = seq_net[0].weight\n",
- "print(w0)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 通过 parameters 可以取得模型的参数\n",
- "param = seq_net.parameters()\n",
- "\n",
- "# 定义优化器\n",
- "optim = torch.optim.SGD(param, 1.)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "epoch: 1000, loss: 0.07238173484802246\n",
- "epoch: 2000, loss: 0.06331096589565277\n",
- "epoch: 3000, loss: 0.059657540172338486\n",
- "epoch: 4000, loss: 0.057460710406303406\n",
- "epoch: 5000, loss: 0.055878859013319016\n",
- "epoch: 6000, loss: 0.05458137020468712\n",
- "epoch: 7000, loss: 0.053432758897542953\n",
- "epoch: 8000, loss: 0.05238530784845352\n",
- "epoch: 9000, loss: 0.051434148102998734\n",
- "epoch: 10000, loss: 0.05058830603957176\n"
- ]
- }
- ],
- "source": [
- "# 我们训练 10000 次\n",
- "for e in range(10000):\n",
- " out = seq_net(Variable(x))\n",
- " loss = criterion(out, Variable(y))\n",
- " optim.zero_grad()\n",
- " loss.backward()\n",
- " optim.step()\n",
- " if (e + 1) % 1000 == 0:\n",
- " print('epoch: {}, loss: {}'.format(e+1, loss.item()))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "可以看到,训练 10000 次 loss 比之前的更低,这是因为 PyTorch 自带的模块比我们写的更加稳定,同时也有一些初始化的问题在里面,关于参数初始化,我们会在后面的课程中讲到"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "metadata": {},
- "outputs": [],
- "source": [
- "def plot_seq(x):\n",
- " out = F.sigmoid(seq_net(Variable(torch.from_numpy(x).float()))).data.numpy()\n",
- " out = (out > 0.5) * 1\n",
- " return out"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Text(0.5, 1.0, 'sequential')"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "plot_decision_boundary(lambda x: plot_seq(x), x.numpy(), y.numpy())\n",
- "plt.title('sequential')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 2.2 保存模型参数\n",
- "\n",
- "保存模型在 PyTorch 中有两种方式,一种是将模型结构和参数都保存在一起,一种是只将参数保存下来。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 将参数和模型保存在一起\n",
- "torch.save(seq_net, 'save_seq_net.pth')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "上面就是保存模型的方式,`torch.save`里面有两个参数,第一个是要保存的模型,第二个参数是保存的路径,读取模型的方式也非常简单"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 读取保存的模型\n",
- "seq_net1 = torch.load('save_seq_net.pth')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Sequential(\n",
- " (0): Linear(in_features=2, out_features=4, bias=True)\n",
- " (1): Tanh()\n",
- " (2): Linear(in_features=4, out_features=1, bias=True)\n",
- ")"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "seq_net1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Parameter containing:\n",
- "tensor([[-5.7823, 5.7006],\n",
- " [ 5.3129, 3.6949],\n",
- " [ 3.5471, -0.7431],\n",
- " [ 2.4003, 1.7605]], requires_grad=True)\n"
- ]
- }
- ],
- "source": [
- "print(seq_net1[0].weight)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "我们可以看到我们重新读入了模型,并且将其命名为 seq_net1,并且打印了第一层的参数\n",
- "\n",
- "下面我们看看第二种保存模型的方式,只保存参数而不保存模型结构"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 保存模型参数\n",
- "torch.save(seq_net.state_dict(), 'save_seq_net_params.pth')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "通过上面的方式,我们保存了模型的参数,如果要重新读入模型的参数,首先我们需要重新定义一次模型,接着重新读入参数"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "<All keys matched successfully>"
- ]
- },
- "execution_count": 24,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "seq_net2 = nn.Sequential(\n",
- " nn.Linear(2, 4),\n",
- " nn.Tanh(),\n",
- " nn.Linear(4, 1)\n",
- ")\n",
- "\n",
- "seq_net2.load_state_dict(torch.load('save_seq_net_params.pth'))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Sequential(\n",
- " (0): Linear(in_features=2, out_features=4, bias=True)\n",
- " (1): Tanh()\n",
- " (2): Linear(in_features=4, out_features=1, bias=True)\n",
- ")"
- ]
- },
- "execution_count": 25,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "seq_net2"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 26,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Parameter containing:\n",
- "tensor([[-5.7823, 5.7006],\n",
- " [ 5.3129, 3.6949],\n",
- " [ 3.5471, -0.7431],\n",
- " [ 2.4003, 1.7605]], requires_grad=True)\n"
- ]
- }
- ],
- "source": [
- "print(seq_net2[0].weight)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "通过这种方式我们也重新读入了相同的模型,打印第一层的参数对比,发现和前面的办法是一样"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "有这两种保存和读取模型的方法,我们推荐使用**第二种**,因为第二种可移植性更强"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 2.3 Module\n",
- "下面我们再用 Module 定义这个模型,下面是使用 Module 的模板\n",
- "\n",
- "```\n",
- "class 网络名字(nn.Module):\n",
- " def __init__(self, 一些定义的参数):\n",
- " super(网络名字, self).__init__()\n",
- " self.layer1 = nn.Linear(num_input, num_hidden)\n",
- " self.layer2 = nn.Sequential(...)\n",
- " ...\n",
- " \n",
- " 定义需要用的网络层\n",
- " \n",
- " def forward(self, x): # 定义前向传播\n",
- " x1 = self.layer1(x)\n",
- " x2 = self.layer2(x)\n",
- " x = x1 + x2\n",
- " ...\n",
- " return x\n",
- "```\n",
- "\n",
- "注意的是,Module 里面也可以使用 Sequential,同时 Module 非常灵活,具体体现在 forward 中,如何复杂的操作都能直观的在 forward 里面执行\n",
- "\n",
- "下面我们照着模板实现一下上面的神经网络"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "metadata": {},
- "outputs": [],
- "source": [
- "class module_net(nn.Module):\n",
- " def __init__(self, num_input, num_hidden, num_output):\n",
- " super(module_net, self).__init__()\n",
- " self.layer1 = nn.Linear(num_input, num_hidden)\n",
- " \n",
- " self.layer2 = nn.Tanh()\n",
- " \n",
- " self.layer3 = nn.Linear(num_hidden, num_output)\n",
- " \n",
- " def forward(self, x):\n",
- " x = self.layer1(x)\n",
- " x = self.layer2(x)\n",
- " x = self.layer3(x)\n",
- " return x"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "metadata": {},
- "outputs": [],
- "source": [
- "mo_net = module_net(2, 4, 1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Linear(in_features=2, out_features=4, bias=True)\n"
- ]
- }
- ],
- "source": [
- "# 访问模型中的某层可以直接通过名字\n",
- "\n",
- "# 第一层\n",
- "l1 = mo_net.layer1\n",
- "print(l1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Parameter containing:\n",
- "tensor([[-0.0458, -0.6043],\n",
- " [ 0.0567, -0.6961],\n",
- " [ 0.5034, 0.2557],\n",
- " [ 0.2466, -0.5245]], requires_grad=True)\n"
- ]
- }
- ],
- "source": [
- "# 打印出第一层的权重\n",
- "print(l1.weight)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 定义优化器\n",
- "optim = torch.optim.SGD(mo_net.parameters(), 1.)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 32,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "epoch: 1000, loss: 0.07277397811412811\n",
- "epoch: 2000, loss: 0.06705372780561447\n",
- "epoch: 3000, loss: 0.06257135421037674\n",
- "epoch: 4000, loss: 0.056195128709077835\n",
- "epoch: 5000, loss: 0.050691165030002594\n",
- "epoch: 6000, loss: 0.04715902358293533\n",
- "epoch: 7000, loss: 0.0447952002286911\n",
- "epoch: 8000, loss: 0.04309132695198059\n",
- "epoch: 9000, loss: 0.04179977998137474\n",
- "epoch: 10000, loss: 0.040784407407045364\n"
- ]
- }
- ],
- "source": [
- "# 我们训练 10000 次\n",
- "for e in range(10000):\n",
- " out = mo_net(Variable(x))\n",
- " loss = criterion(out, Variable(y))\n",
- " optim.zero_grad()\n",
- " loss.backward()\n",
- " optim.step()\n",
- " if (e + 1) % 1000 == 0:\n",
- " print('epoch: {}, loss: {}'.format(e+1, loss.item()))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 33,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 保存模型\n",
- "torch.save(mo_net.state_dict(), 'module_net.pth')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "可以看到我们得到了相同的结果,而且使用 Sequential 和 Module 来定义模型更加方便\n",
- "\n",
- "在这一节中我们还是使用梯度下降法来优化参数,在神经网络中,这种优化方法有一个特别的名字,反向传播算法,下一次课我们会讲一讲什么是反向传播算法"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**小练习:改变网络的隐藏层神经元数目,或者试试定义一个 5 层甚至更深的模型,增加训练次数,改变学习率,看看结果会怎么样**"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "下面举个例子"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "metadata": {},
- "outputs": [],
- "source": [
- "net = nn.Sequential(\n",
- " nn.Linear(2, 10),\n",
- " nn.Tanh(),\n",
- " nn.Linear(10, 10),\n",
- " nn.Tanh(),\n",
- " nn.Linear(10, 10),\n",
- " nn.Tanh(),\n",
- " nn.Linear(10, 1)\n",
- ")\n",
- "\n",
- "optim = torch.optim.SGD(net.parameters(), 0.1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 35,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "epoch: 1000, loss: 0.07510872185230255\n",
- "epoch: 2000, loss: 0.0662045031785965\n",
- "epoch: 3000, loss: 0.062202777713537216\n",
- "epoch: 4000, loss: 0.053606368601322174\n",
- "epoch: 5000, loss: 0.047997504472732544\n",
- "epoch: 6000, loss: 0.045905228704214096\n",
- "epoch: 7000, loss: 0.044531650841236115\n",
- "epoch: 8000, loss: 0.04245807230472565\n",
- "epoch: 9000, loss: 0.0403163880109787\n",
- "epoch: 10000, loss: 0.03822056204080582\n",
- "epoch: 11000, loss: 0.03605899214744568\n",
- "epoch: 12000, loss: 0.033822499215602875\n",
- "epoch: 13000, loss: 0.031671419739723206\n",
- "epoch: 14000, loss: 0.029688959941267967\n",
- "epoch: 15000, loss: 0.02786232717335224\n",
- "epoch: 16000, loss: 0.026174388825893402\n",
- "epoch: 17000, loss: 0.024574236944317818\n",
- "epoch: 18000, loss: 0.022980017587542534\n",
- "epoch: 19000, loss: 0.021339748054742813\n",
- "epoch: 20000, loss: 0.019654229283332825\n"
- ]
- }
- ],
- "source": [
- "# 我们训练 20000 次\n",
- "for e in range(20000):\n",
- " out = net(Variable(x))\n",
- " loss = criterion(out, Variable(y))\n",
- " optim.zero_grad()\n",
- " loss.backward()\n",
- " optim.step()\n",
- " if (e + 1) % 1000 == 0:\n",
- " print('epoch: {}, loss: {}'.format(e+1, loss.item()))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 36,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Text(0.5, 1.0, 'sequential')"
- ]
- },
- "execution_count": 36,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "def plot_net(x):\n",
- " out = F.sigmoid(net(Variable(torch.from_numpy(x).float()))).data.numpy()\n",
- " out = (out > 0.5) * 1\n",
- " return out\n",
- "\n",
- "plot_decision_boundary(lambda x: plot_net(x), x.numpy(), y.numpy())\n",
- "plt.title('sequential')"
- ]
- }
- ],
- "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.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
|