{"id":49,"date":"2025-09-01T16:45:24","date_gmt":"2025-09-01T08:45:24","guid":{"rendered":"http:\/\/www.zxlearning.space\/?p=49"},"modified":"2025-09-01T16:45:26","modified_gmt":"2025-09-01T08:45:26","slug":"%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0","status":"publish","type":"post","link":"http:\/\/www.zxlearning.space\/?p=49","title":{"rendered":"\u6df1\u5ea6\u5b66\u4e60"},"content":{"rendered":"\n<div class=\"wp-block-jetpack-markdown\"><h2>\u4e00\u3001PyTorch<\/h2>\n<h3>\uff08\u4e00\uff09\u5f20\u91cf\u7684\u521b\u5efa<\/h3>\n<h4>1.\u6982\u5ff5<\/h4>\n<ul>\n<li>\u5728PyTorch\u4e2d\uff0c\u6240\u6709\u6570\u636e\u88ab\u5c01\u88c5\u4e3a\u5f20\u91cf\u53c2\u4e0e\u8fd0\u7b97<\/li>\n<li>\u5f20\u91cf\u662f\u6307\u4e00\u4e2a\u540c\u7c7b\u578b\u6570\u636e\u7684\u591a\u7ef4\u77e9\u9635\uff0c\u9ed8\u8ba4\u7c7b\u578b\u4e3a<code>float32<\/code><\/li>\n<li>\u5728PyTorch\u4e2d\u5bf9\u5f20\u91cf\u7684\u8fd0\u7b97\u662f\u901a\u8fc7\u7c7b\u5b9e\u73b0\u7684\uff0c\u7c7b\u4e2d\u5c01\u88c5\u4e86\u5bf9\u5f20\u91cf\u8fdb\u884c\u8fd0\u7b97\u7684\u4e00\u4e9b\u51fd\u6570<\/li>\n<\/ul>\n<h4>2.\u57fa\u672c\u521b\u5efa<\/h4>\n<ul>\n<li>\n<p>\u901a\u8fc7tensor\u51fd\u6570\u8fdb\u884c\u521b\u5efa<\/p>\n<ul>\n<li>\n<p>\u9002\u7528\u4e8e\u5df2\u6709\u5177\u4f53\u6570\u636e\uff0c\u6839\u636e\u6570\u636e\u521b\u5efa\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">\t#1.\u521b\u5efa\u6807\u91cf\n    data = torch.tensor(10)\n    print(data)\n    #2.\u4f7f\u7528NumPy\u6570\u7ec4\u521b\u5efa\n    data = np.random.randn(2,3)\n    data = torch.tensor(data)\n    print(data)\n    #3.\u4f7f\u7528list\u521b\u5efa\n    data = [[10.,20.,30.],[10.,20.,30.]]\n    data = torch.tensor(data)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u901a\u8fc7Tensor\u7c7b\u8fdb\u884c\u521b\u5efa<\/p>\n<ul>\n<li>\n<p>\u9002\u7528\u4e8e\u6839\u636e\u5f62\u72b6\u521b\u5efa\u5f20\u91cf\uff0c\u4e5f\u53ef\u4ee5\u7528\u4e8e\u6307\u5b9a\u6570\u636e\u521b\u5efa\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">\t#1.\u6839\u636e\u5f62\u72b6\u521b\u5efa\u5f20\u91cf\n    data = torch.Tensor(2,3)\n    print(data)\n    #2.\u6839\u636e\u6570\u636e\u521b\u5efa\u5f20\u91cf\n    data = torch.Tensor([2,3])\n    print(data)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u901a\u8fc7\u5177\u4f53\u7c7b\u522b\u51fd\u6570\u521b\u5efa<\/p>\n<ul>\n<li>\n<p>\u9002\u7528\u4e8e\u521b\u5efa\u6307\u5b9a\u7c7b\u578b\u7684\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">\tdata = torch.IntTensor(2,3)#\u9ed8\u8ba4int32\n    print(data)\n    &quot;&quot;&quot;\n    ShortTensor:int16\n    LongTensor:int64\n    FloatTensor:float32\n    &quot;&quot;&quot;\n    \n    #\u82e5\u4f20\u5165\u6570\u636e\u7c7b\u578b\u4e0d\u5339\u914d\uff0c\u4f1a\u53d1\u751f\u7c7b\u578b\u8f6c\u6362\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>3.\u521b\u5efa\u7ebf\u6027\u5f20\u91cf<\/h4>\n<ul>\n<li>\n<p>\u6307\u5b9a\u6b65\u957f<\/p>\n<pre><code class=\"language-python\">    #1.\u6307\u5b9a\u6b65\u957f\n    &quot;&quot;&quot;\n    torch.arange()\n    :param1:\u5f00\u59cb\u503c\n    :param2:\u7ed3\u675f\u503c\n    :param3:\u6b65\u957f\n    :return:\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.arange(0,10,3)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u6307\u5b9a\u533a\u95f4\u6307\u5b9a\u5143\u7d20\u4e2a\u6570<\/p>\n<pre><code class=\"language-python\">    #2.\u5728\u6307\u5b9a\u533a\u95f4\u4e2d\u6307\u5b9a\u5143\u7d20\u4e2a\u6570\n    &quot;&quot;&quot;\n    torch.linspace()\n    :param1:\u5f00\u59cb\u503c\n    :param2:\u7ed3\u675f\u503c\n    :param3:\u5143\u7d20\u4e2a\u6570\n    :return:\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.linspace(0,10,5)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>4.\u521b\u5efa\u968f\u673a\u5f20\u91cf<\/h4>\n<ul>\n<li>\n<p>\u968f\u673a\u521b\u5efa<\/p>\n<pre><code class=\"language-python\">    #1.\u521b\u5efa\u968f\u673a\u5f20\u91cf\n    &quot;&quot;&quot;\n    torch.randn()\n    :param1:\u884c\u6570\n    :param2:\u5217\u6570\n    :return:\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.randn(2,3)\n    print(data)\n    #2.\u56fa\u5b9a\u968f\u673a\u6570\u79cd\u5b50\n    torch.random.manual_seed(0)#\u56fa\u5b9a\u968f\u673a\u6570\u79cd\u5b50\u4e3a0\n    \n    #3.int\u7c7b\u578b\u7b49\u5176\u4ed6\u7c7b\u578b\u793a\u4f8b\n    &quot;&quot;&quot;\n    torch.randint()\n    :param1:\u8d77\u59cb\u70b9\n    :param2:\u7ed3\u675f\u70b9\n    :param3:\u5f62\u72b6\n    :return: \u8fd4\u56deint\u7c7b\u578b\u7684\u968f\u673a\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.randint(0,10,[3,3])\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>5.\u521b\u5efa\u6307\u5b9a\u503c\u5f20\u91cf<\/h4>\n<ul>\n<li>\n<p>\u521b\u5efa\u51680\u5f20\u91cf<\/p>\n<ul>\n<li>\n<p>\u6307\u5b9a\u5f62\u72b6<\/p>\n<pre><code class=\"language-python\">    #1.\u6307\u5b9a\u5f62\u72b6\n    &quot;&quot;&quot;\n    torch.zeros()\n    :param1:\u884c\u6570\n    :param2:\u5217\u6570\n    :return:\u51680\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.zeros(2,3)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u6a21\u4eff\u6837\u677f\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">    #2.\u6839\u636e\u5176\u4ed6\u5f20\u91cf\u5f62\u72b6\u521b\u5efa\n    &quot;&quot;&quot;\n    torch.zeros_like()\n    :param:\u6837\u677f\u5f20\u91cf\n    :return:\u540c\u5f62\u72b6\u7684\u51680\u5f20\u91cf\n    &quot;&quot;&quot;\n    data2 = torch.zeros_like(data)\n    print(data2)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u521b\u5efa\u51681\u5f20\u91cf<\/p>\n<ul>\n<li>\n<p>\u6307\u5b9a\u5f62\u72b6<\/p>\n<pre><code class=\"language-python\">    #1.\u6307\u5b9a\u5f62\u72b6\n    &quot;&quot;&quot;\n    torch.ones()\n    :param1:\u884c\u6570\n    :param2:\u5217\u6570\n    :return:\u51681\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.ones(2,3)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u6a21\u4eff\u6837\u677f\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">    #2.\u6839\u636e\u5176\u4ed6\u5f20\u91cf\u5f62\u72b6\u521b\u5efa\n    &quot;&quot;&quot;\n    torch.ones_like()\n    :param:\u6837\u677f\u5f20\u91cf\n    :return:\u540c\u5f62\u72b6\u7684\u51681\u5f20\u91cf\n    &quot;&quot;&quot;\n    data2 = torch.ones_like(data)\n    print(data2)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u521b\u5efa\u6307\u5b9a\u503c\u7684\u5f20\u91cf<\/p>\n<ul>\n<li>\n<p>\u6307\u5b9a\u5f62\u72b6<\/p>\n<pre><code class=\"language-python\">    #1.\u6307\u5b9a\u503c\u548c\u5f62\u72b6\n    &quot;&quot;&quot;\n    torch.full()\n    :param1:\u4f20\u5165\u5f62\u72b6\u4fe1\u606f\uff0c\u4f7f\u7528\u5217\u8868\u6216\u5143\u7ec4\n    :param2:\u4f20\u5165\u6307\u5b9a\u503c\n    :return: \u6307\u5b9a\u503c\u548c\u5f62\u72b6\u7684\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = torch.full([2,3],2)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u6a21\u4eff\u6837\u677f\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">    #2.\u6839\u636e\u5176\u4ed6\u5f20\u91cf\u5f62\u72b6\u521b\u5efa\n    &quot;&quot;&quot;\n    torch.full()\n    :param1:\u4f20\u5165\u5f62\u72b6\u4fe1\u606f\uff0c\u4f7f\u7528\u6837\u677f\u5f20\u91cf\n    :param2:\u4f20\u5165\u6307\u5b9a\u503c\n    :return: \u6307\u5b9a\u503c\u548c\u5f62\u72b6\u7684\u5f20\u91cf\n    &quot;&quot;&quot;\n    data2 = torch.full_like(data,2)\n    print(data2)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\uff08\u4e8c\uff09\u5f20\u91cf\u7684\u5143\u7d20\u7c7b\u578b\u8f6c\u6362<\/h3>\n<h4>1.type\u51fd\u6570<\/h4>\n<pre><code class=\"language-python\">        data = torch.zeros(2,3)\n        print(data.dtype)#\u6b64\u65f6\u7c7b\u578b\u4e3afloat32\n        &quot;&quot;&quot;\n        data.type()\n        :param1:\u5177\u4f53\u7684\u4e00\u4e2a\u6570\u636e\u7c7b\u578b\u7684Tensor\u7c7b\n        :return:\u65b0\u7684\u6307\u5b9a\u7c7b\u578b\u7684\u5f20\u91cf\n        &quot;&quot;&quot;\n        data = data.type(torch.DoubleTensor)\n        print(data.dtype)\n<\/code><\/pre>\n<h4>2.\u5177\u4f53\u7c7b\u578b\u51fd\u6570<\/h4>\n<pre><code class=\"language-python\">        data = torch.zeros(2,3)\n        print(data.dtype)#\u6b64\u65f6\u7c7b\u578b\u4e3afloat32\n        &quot;&quot;&quot;\n        data.double()\n        :return:double\u7c7b\u578b\u7684\u65b0\u5f20\u91cf\n        \u5982\u679c\u8981\u8f6c\u6362\u4e3a\u5176\u4ed6\u7c7b\u578b\uff0c\u53ef\u4ee5\u8c03\u7528\u76f8\u5e94\u7684\u5177\u4f53\u7c7b\u578b\u51fd\u6570\n        &quot;&quot;&quot;\n        data = data.double()\n        print(data.dtype)\n<\/code><\/pre>\n<h3>\uff08\u4e09\uff09\u5f20\u91cf\u7684\u8ba1\u7b97<\/h3>\n<h4>1.\u5f20\u91cf\u7684\u57fa\u672c\u8fd0\u7b97<\/h4>\n<ul>\n<li>\n<p>\u751f\u6210\u65b0\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">    #1.\u751f\u6210\u65b0\u5f20\u91cf\n    data = torch.randint(0,10,[3,3])\n    print(data)\n    &quot;&quot;&quot;\n    data.add()\n    :param:\u6570\u503c\n    :return:\u5c06data\u52a0\u4e0a\u8be5\u6570\u503c\u540e\uff0c\u8fd4\u56de\u65b0\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = data.add(10)\n    print(data)\n    &quot;&quot;&quot;\n    data.sub():\u51cf\u6cd5\n    data.mul():\u4e58\u6cd5\n    data.div():\u9664\u6cd5\n    data.neg():\u53d6\u53cd\n    &quot;&quot;&quot;\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f5c\u7528\u4e8e\u539f\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">    #2.\u4f5c\u7528\u5728\u539f\u5f20\u91cf\n    data = torch.randint(0,10,[3,3])\n    print(data)\n    &quot;&quot;&quot;\n    data.add_()\n    :param:\u6570\u503c\n    :return:\u5c06data\u52a0\u4e0a\u8be5\u6570\u503c\u540e\uff0c\u8fd4\u56de\u539f\u5f20\u91cf\n    &quot;&quot;&quot;\n    data.add_(10)#\u6ce8\u610f\uff1a\u5e26\u4e86\u4e0b\u5212\u7ebf\uff0c\u5176\u4ed6\u7684\u540c\u7406\n    print(data)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>2.\u963f\u8fbe\u739b\u79ef<\/h4>\n<ul>\n<li>\n<p>\u6982\u5ff5\uff1a\u963f\u8fbe\u739b\u79ef\u662f\u6307\u77e9\u9635\u5bf9\u5e94\u4f4d\u7f6e\u7684\u5143\u7d20\u76f8\u4e58<\/p>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>mul<\/code>\u51fd\u6570<\/p>\n<pre><code class=\"language-python\">    #1.\u4f7f\u7528mul\u51fd\u6570\n    data1 = torch.tensor([[6,1],[2,3]])\n    data2 = torch.tensor([[2,4],[6,8]])\n    &quot;&quot;&quot;\n    data.mul()\n    :param:\u6307\u5b9a\u76f8\u4e58\u7684\u7b2c\u4e8c\u4e2a\u77e9\u9635\n    :return:\u4e24\u4e2a\u77e9\u9635\u7684\u963f\u8fbe\u739b\u79ef\uff0c\u8fd4\u56de\u65b0\u5f20\u91cf\n    &quot;&quot;&quot;\n    data = data1.mul(data2)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>*<\/code>\u8fd0\u7b97\u7b26<\/p>\n<pre><code class=\"language-python\">    #2.\u4f7f\u7528*\u8fd0\u7b97\u7b26\n    data1 = torch.tensor([[6,1],[2,3]])\n    data2 = torch.tensor([[2,4],[6,8]])\n    data = data1*data2\n    print(data)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>3.\u70b9\u79ef\u8fd0\u7b97<\/h4>\n<ul>\n<li>\n<p>\u6982\u5ff5\uff1a\u7ebf\u6027\u4ee3\u6570\u4e2d\u7684\u77e9\u9635\u76f8\u4e58\u8fd0\u7b97\uff0c\u7b26\u5408\u7ebf\u6027\u4ee3\u6570\u77e9\u9635\u76f8\u4e58\u7684\u8981\u6c42<\/p>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>@<\/code>\u8fd0\u7b97\u7b26<\/p>\n<pre><code class=\"language-python\">    #1.\u4f7f\u7528@\u8fd0\u7b97\u7b26\n    data1 = torch.tensor([[6,1],[2,3]])\n    data2 = torch.tensor([[2,4],[6,8]])\n    data = data1@data2\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>mm<\/code>\u51fd\u6570<\/p>\n<pre><code class=\"language-python\">    #2.\u4f7f\u7528mm\u51fd\u6570\n    &quot;&quot;&quot;\n    \u8981\u6c42\u77e9\u9635\u7684\u7ef4\u6570\u90fd\u662f\u4e8c\u7ef4\uff08\u884c\uff0c\u5217\uff09\n    \u4e5f\u5c31\u662f\u8bf4\uff0c\u6ca1\u6709\u6279\u6b21\u8fd9\u4e2a\u7ef4\u6570\uff0c\u53ea\u8fdb\u884c\u4e24\u4e2a\u77e9\u9635\u7684\u76f8\u4e58\uff0c\u5bf9\u6bd4bmm\u51fd\u6570\n    \u5e76\u4e0d\u4ee3\u8868\u9650\u5236\u77e9\u9635\u7684\u7ef4\u6570\n    &quot;&quot;&quot;\n    data1 = torch.tensor([[6,1],[2,3]])\n    data2 = torch.tensor([[2,4],[6,8]])\n    &quot;&quot;&quot;\n    torch.mm()\n    :param1:\u5de6\u4fa7\u7684\u77e9\u9635\n    :param2;\u53f3\u4fa7\u7684\u77e9\u9635\n    :return:\u76f8\u4e58\u540e\u7684\u65b0\u77e9\u9635\n    &quot;&quot;&quot;\n    data = torch.mm(data1,data2)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>bmm<\/code>\u51fd\u6570<\/p>\n<pre><code class=\"language-python\">    #3.\u4f7f\u7528bmm\u51fd\u6570\n    &quot;&quot;&quot;\n    \u8981\u6c42\u77e9\u9635\u7684\u7ef4\u6570\u90fd\u662f\u4e09\u7ef4\uff08\u6279\u6b21\uff0c\u884c\uff0c\u5217\uff09\n    \u7b2c\u4e00\u4e2a\u7ef4\u5ea6\uff1a\u8868\u793a\u6279\u6b21\n    \u4f8b\u5982\u6279\u6b21\u4e3an\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u5217\u8868\uff0c\u5217\u8868\u4e2d\u5b58\u6709n\u4e2a\u77e9\u9635\n    \u4e24\u4e2a\u5217\u8868\u4e2d\u5bf9\u5e94\u4f4d\u7f6e\u7684\u77e9\u9635\u76f8\u4e58\uff0c\u8fd4\u56den\u4e2a\u7ed3\u679c\n    \u7b2c\u4e8c\u4e2a\u7ef4\u5ea6\uff1a\u884c\u6570\n    \u7b2c\u4e09\u4e2a\u7ef4\u5ea6\uff1a\u5217\u6570\n    &quot;&quot;&quot;\n    data1 = torch.randn(3,4,5)\n    data2 = torch.randn(3,5,3)\n    &quot;&quot;&quot;\n    torch.bmm()\n    :param1:\u5de6\u4fa7\u7684\u77e9\u9635\n    :param2;\u53f3\u4fa7\u7684\u77e9\u9635\n    :return:\u76f8\u4e58\u540e\u7684\u65b0\u77e9\u9635\n    &quot;&quot;&quot;\n    data = torch.bmm(data1,data2)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>matmul<\/code>\u51fd\u6570<\/p>\n<pre><code class=\"language-python\">    #4.\u4f7f\u7528matmul\u51fd\u6570\n    &quot;&quot;&quot;\n    \u9002\u7528\u4e8e\u591a\u79cd\u7ef4\u6570\n    torch.matmul()\n    :param1:\u5de6\u4fa7\u77e9\u9635\n    :param2:\u53f3\u4fa7\u77e9\u9635\n    :return:\u76f8\u4e58\u540e\u7684\u65b0\u77e9\u9635\n    &quot;&quot;&quot;\n    #\u4e8c\u7ef4\n    data1 = torch.randn(4,5)\n    data2 = torch.randn(5,3)\n    data = torch.matmul(data1,data2)\n    print(data)\n    #\u4e09\u7ef4\n    data3 = torch.randn(3,4,5)\n    data4 = torch.randn(3,5,3)\n    data = torch.matmul(data3,data4)\n    print(data)\n    #\u7ef4\u6570\u4e0d\u540c\u7684\n    data1 = torch.randn(4, 5)#\u5728\u8fd0\u7b97\u65f6\u4f1a\u89c6\u4e3a3\u4e2a\u76f8\u540c\u77e9\u9635\uff0c\u6279\u6b21\u4e3a3\n    data3 = torch.randn(3, 5, 5)\n    data = torch.matmul(data1,data3)\n    print(data)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>4.\u6307\u5b9a\u8fd0\u7b97\u8bbe\u5907<\/h4>\n<ul>\n<li>\n<p>\u6ce8\u610f\u70b9<\/p>\n<ul>\n<li>\u6ce8\u610f\u8981\u5b89\u88c5\u5bf9\u5e94GPU\u7248\u672c\u7684PyTorch\uff0c\u5b89\u88c5\u5bf9\u5e94\u7684CUDA<\/li>\n<li>\u9ed8\u8ba4\u5c06\u5f20\u91cf\u521b\u5efa\u5728CPU\u63a7\u5236\u7684\u5185\u5b58\u4e2d\uff0c\u7b80\u79f0\u521b\u5efa\u5728CPU\u4e0a<\/li>\n<li>\u4e0d\u540c\u8bbe\u5907\u4e0a\u7684\u5f20\u91cf\u4e0d\u80fd\u76f4\u63a5\u8fdb\u884c\u8fd0\u7b97<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>cuda<\/code>\u51fd\u6570<\/p>\n<pre><code class=\"language-python\">    # 1.\u4f7f\u7528CUDA\n    data = torch.randint(0,10,[5,5])\n    print(data.device)#\u6253\u5370device\u5c5e\u6027\uff0c\u8868\u793a\u5f20\u91cf\u5b58\u50a8\u7684\u8bbe\u5907\uff0c\u6b64\u65f6\u662fCPU\n    &quot;&quot;&quot;\n    data.cuda()\n    \u5c06\u6570\u636e\u653eGPU\u4e0a\n    :return:\u6253\u5370\u65f6\u8fd4\u56de\u5176\u5728CUDA\u4e2d\u7684\u7f16\u53f7\uff08cuda:n\uff0cn\u4ece0\u5f00\u59cb\uff0c\u8868\u793a\u7f16\u53f7n\u7684\u663e\u5361\uff09\n    &quot;&quot;&quot;\n    data = data.cuda()\n    print(data.device)#\u6b64\u65f6\u5728GPU\u4e0a\n    &quot;&quot;&quot;\n    data.cpu()\n    \u5c06\u6570\u636e\u653eCPU\u4e0a\n    :return:\u6253\u5370\u65f6\u663e\u793acpu\n    &quot;&quot;&quot;\n    data = data.cpu()\n    print(data.device)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u76f4\u63a5\u521b\u5efa\u5728GPU\u4e0a<\/p>\n<pre><code class=\"language-python\">        #2.\u76f4\u63a5\u5728GPU\u4e0a\u521b\u5efa\u5f20\u91cf\n        &quot;&quot;&quot;\n        \u5728\u521b\u5efa\u65f6\u4f20\u5165device\u53c2\u6570\n        &quot;&quot;&quot;\n        data = torch.randint(0,10,[5,5],device=&quot;cuda:0&quot;)\n        print(data.device)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>to<\/code>\u65b9\u6cd5<\/p>\n<pre><code class=\"language-python\">        #3.\u4f7f\u7528to\u65b9\u6cd5 \n     \tdata = torch.randint(0,10,[5,5])\n        print(data.device)#\u6253\u5370device\u5c5e\u6027\uff0c\u8868\u793a\u5f20\u91cf\u5b58\u50a8\u7684\u8bbe\u5907\uff0c\u6b64\u65f6\u662fCPU\n        &quot;&quot;&quot;\n        data.to()\n        :param:\u8981\u79fb\u52a8\u5230\u7684\u8bbe\u5907\n        &quot;&quot;&quot;\n        data = data.to(&quot;cuda:0&quot;)\n        print(data.device)#\u6b64\u65f6\u5728GPU\u4e0a\n        data = data.to(&quot;cpu&quot;)\n        print(data.device)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>\uff08\u56db\uff09\u5f20\u91cf\u7c7b\u578b\u8f6c\u6362<\/h3>\n<h4>1.\u5f20\u91cf\u8f6c\u6362\u4e3aNumPy\u6570\u7ec4<\/h4>\n<ul>\n<li>\u4f7f\u7528<code>numpy<\/code>\u51fd\u6570<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    #1.\u4f7f\u7528numpy\u51fd\u6570\n    data = torch.randint(0,10,[2,2])\n    &quot;&quot;&quot;\n    data.numpy()\n    :return:\u5c06data\u8f6c\u6362\u4e3andarray\u7c7b\u578b\n    \u6ce8\u610f\uff1a\u8f6c\u6362\u524d\u540e\u7684\u5bf9\u8c61\u662f\u5171\u4eab\u5185\u5b58\u7684\uff01\n    &quot;&quot;&quot;\n    data_numpy = data.numpy()\n    print(type(data))\n    print(type(data_numpy))\n<\/code><\/pre>\n<ul>\n<li>\u8ffd\u52a0<code>copy<\/code>\u51fd\u6570<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    #2.\u4f7f\u7528copy\u51fd\u6570\n    data2 = torch.randint(0, 10, [2, 2])\n    &quot;&quot;&quot;\n    \u5728numpy\u51fd\u6570\u540e\u9762\u52a0\u4e0acopy\u51fd\u6570\uff0c\n    \u4f7f\u5f97\u8f6c\u6362\u524d\u540e\u7684\u5bf9\u8c61\u4e0d\u5171\u4eab\u5185\u5b58\u7a7a\u95f4\n    &quot;&quot;&quot;\n    data_numpy2 = data2.numpy().copy()\n    print(type(data2))\n    print(type(data_numpy2))\n<\/code><\/pre>\n<h4>2.NumPy\u6570\u7ec4\u8f6c\u6362\u4e3a\u5f20\u91cf<\/h4>\n<ul>\n<li>\n<p>\u4f7f\u7528<code>from_numpy<\/code><\/p>\n<pre><code class=\"language-python\">    data_numpy = np.array([1,2,3,4])\n    &quot;&quot;&quot;\n    torch.from_numpy()\n    :param:numpy\u6570\u7ec4\n    :return:\u5f20\u91cf\n    \u6ce8\u610f\uff1a\u9ed8\u8ba4\u662f\u5171\u4eab\u5185\u5b58\u7684\uff0c\u53ef\u4ee5\u4f7f\u7528copy\u89e3\u51b3\n    &quot;&quot;&quot;\n    data_tensor1 = torch.from_numpy(data_numpy)\n    print(type(data_tensor1))\n    data_tensor2 = torch.from_numpy(data_numpy.copy())#\u6ce8\u610fcopy\u7684\u4f4d\u7f6e\u5728\u62ec\u53f7\u5185\n    print(type(data_tensor2))\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4f7f\u7528<code>torch.tensor<\/code><\/p>\n<pre><code class=\"language-python\">    data_numpy = np.array([1, 2, 3, 4])\n    &quot;&quot;&quot;\n    \u76f4\u63a5\u5411torch.tensor\u4e2d\u4f20\u9012numpy\u6570\u7ec4\n    \u9ed8\u8ba4\u4e0d\u5171\u4eab\u5185\u5b58\n    &quot;&quot;&quot;\n    date_tensor = torch.tensor(data_numpy)\n    print(type(date_tensor))\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>3.\u6807\u91cf\u5f20\u91cf\u4e0e\u6570\u5b57\u7684\u8f6c\u6362<\/h4>\n<ul>\n<li>\n<p>\u63d0\u53d6\u5355\u4e2a\u5143\u7d20\u7684\u5f20\u91cf<\/p>\n<pre><code class=\"language-python\">    data1 = torch.tensor(10)\n    data2 = torch.tensor([10])\n    data3 = torch.tensor([[10]])\n    &quot;&quot;&quot;\n    data.item()\n    :return:\u5c06tensor\u4e2d\u7684\u5143\u7d20\u8f6c\u4e3a\u6807\u91cf\u8fd4\u56de\n    \u6ce8\u610f\uff1atensor\u4e2d\u53ea\u80fd\u6709\u4e00\u4e2a\u5143\u7d20\uff0c\u7ef4\u5ea6\u4efb\u610f\n    &quot;&quot;&quot;\n    print(data1.item())\n    print(data2.item())\n    print(data3.item())\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>\uff08\u4e94\uff09\u5f20\u91cf\u62fc\u63a5\u64cd\u4f5c<\/h3>\n<h4>1.torch.cat<\/h4>\n<pre><code class=\"language-python\">    data1 = torch.randint(0,10,[3,4,5])\n    data2 = torch.randint(0,10,[3,4,5])\n    print(data1)\n    print(data2)\n    &quot;&quot;&quot;\n    torch.cat()\n    :param1:\u8981\u62fc\u63a5\u7684\u5f20\u91cf\uff0c\u4f7f\u7528\u5217\u8868\n    :dim:\u62fc\u63a5\u7684\u7ef4\u6570\uff0c\u7ed3\u5408\u4e0d\u540c\u7ef4\u6570\u7684\u4f5c\u7528\u6765\u8003\u8651\n    :return:\u62fc\u63a5\u540e\u7684\u5f20\u91cf\n    \n    \u4ece\u8fd9\u4e2a\u4f8b\u5b50\u4e0a\u770b\uff0c\n    \u7ef4\u6570\u4e3a0\uff1a\u8868\u793a\u4e2a\u6570\u8fdb\u884c\u62fc\u63a5\uff0c\u6240\u6709\u77e9\u9635\u653e\u5230\u4e00\u4e2a\u5217\u8868\u91cc\n    \u7ef4\u6570\u4e3a1\uff1a\u6309\u884c\u62fc\u63a5\uff0c\u5bf9\u5e94\u77e9\u9635\u7eb5\u5411\u62fc\u63a5\u5230\u4e00\u8d77\n    \u7ef4\u6570\u4e3a2\uff1a\u6309\u5217\u62fc\u63a5\uff0c\u5bf9\u5e94\u77e9\u9635\u6a2a\u5411\u62fc\u63a5\u5230\u4e00\u8d77\n    &quot;&quot;&quot;\n    # 1.\u6309\u71670\u7ef4\u5ea6\u8fdb\u884c\u62fc\u63a5\n    data = torch.cat([data1,data2],dim=0)\n    print(data)\n    # 2.\u6309\u71671\u7ef4\u5ea6\u8fdb\u884c\u62fc\u63a5\n    data = torch.cat([data1,data2],dim=1)\n    print(data)\n    # 3.\u6309\u71672\u7ef4\u5ea6\u8fdb\u884c\u62fc\u63a5\n    data = torch.cat([data1,data2],dim=2)\n    print(data)\n<\/code><\/pre>\n<h4>2.torch.stack<\/h4>\n<pre><code class=\"language-python\">    data1 = torch.randint(0,10,[4,5])\n    data2 = torch.randint(0,10,[4,5])\n    print(data1)\n    print(data2)\n    &quot;&quot;&quot;\n    torch.stack()\n    :param1:\u8981\u62fc\u63a5\u7684\u5f20\u91cf\uff0c\u4f7f\u7528\u5217\u8868\n    :dim:\u62fc\u63a5\u7684\u7ef4\u6570\uff0c\u7ed3\u5408\u4e0d\u540c\u7ef4\u6570\u7684\u4f5c\u7528\u6765\u8003\u8651\n    :return:\u62fc\u63a5\u540e\u7684\u5f20\u91cf\n    \n    \u4ece\u8fd9\u4e2a\u4f8b\u5b50\u4e0a\u770b\uff0c\n    \u7ef4\u6570\u4e3a0\uff1a\u8868\u793a\u4e2a\u6570\u8fdb\u884c\u62fc\u63a5\uff0c\u6240\u6709\u77e9\u9635\u653e\u5230\u4e00\u4e2a\u5217\u8868\u91cc\n    \u7ef4\u6570\u4e3a1\uff1a\u6309\u884c\u62fc\u63a5\uff0c\u5bf9\u5e94\u77e9\u9635\u7684\u5bf9\u5e94\u884c\u6309\u7167\u884c\u62fc\u63a5\u5728\u4e00\u8d77\n    \u7ef4\u6570\u4e3a2\uff1a\u6309\u5217\u62fc\u63a5\uff0c\u5bf9\u5e94\u77e9\u9635\u7684\u5bf9\u5e94\u884c\u6309\u7167\u5217\u62fc\u63a5\u5728\u4e00\u8d77\n    &quot;&quot;&quot;\n    # 1.\u6309\u71670\u7ef4\u5ea6\u8fdb\u884c\u62fc\u63a5\n    data = torch.stack([data1,data2],dim=0)\n    print(data)\n    # 2.\u6309\u71671\u7ef4\u5ea6\u8fdb\u884c\u62fc\u63a5\n    data = torch.stack([data1,data2],dim=1)\n    print(data)\n    # 3.\u6309\u71672\u7ef4\u5ea6\u8fdb\u884c\u62fc\u63a5\n    data = torch.stack([data1,data2],dim=2)\n    print(data)\n<\/code><\/pre>\n<h3>\uff08\u516d\uff09\u5f20\u91cf\u7d22\u5f15\u64cd\u4f5c<\/h3>\n<h4>1.\u884c\u5217\u7d22\u5f15<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[5,5])\n    print(data)\n    #1.\u884c\u7d22\u5f15\n    &quot;&quot;&quot;\n    data[n]\n    n\u4ece0\u5f00\u59cb\uff0c\u8868\u793a\u7b2cn\u884c\n    &quot;&quot;&quot;\n    print(data[0])\n    #2.\u5217\u7d22\u5f15\n    &quot;&quot;&quot;\n    data[:,n]\n    \u5192\u53f7\uff1a\u8868\u793a\u4ece...\u5230...\uff0c\u7701\u7565\u524d\u9762\u8868\u793a\u4ece\u5934\u90e8\u5f00\u59cb\uff0c\u7701\u7565\u540e\u9762\u8868\u793a\u5230\u672b\u5c3e\u7ed3\u675f\n    \u9017\u53f7\uff1a\u9017\u53f7\u524d\u4e3a\u884c\uff0c\u9017\u53f7\u540e\u4e3a\u5217\n    &quot;&quot;&quot;\n    print(data[:,0])\n    #3.\u6307\u5b9a\u884c\u5217\n    &quot;&quot;&quot;\n    data[:,:]\n    \u7075\u6d3b\u4f7f\u7528\u5192\u53f7\uff0c\u53ef\u4ee5\u5f97\u5230\u5c40\u90e8\u6570\u636e\n    &quot;&quot;&quot;\n    print(data[0:2,0:3])\n<\/code><\/pre>\n<h4>2.\u5217\u8868\u7d22\u5f15<\/h4>\n<pre><code class=\"language-python\">def test02():\n    data = torch.randint(0,10,[5,5])\n    print(data)\n    #\u5217\u8868\u7d22\u5f15\n    &quot;&quot;&quot;\n    data([],[])\n    :param1:\u8868\u793a\u884c\u5750\u6807\n    :param1:\u8868\u793a\u5217\u5750\u6807\n    :return:\u7ec4\u5408\u5bf9\u5e94\u7684\u884c\u5217\u5750\u6807\u4ece\u77e9\u9635\u4e2d\u53d6\u503c\uff0c\u8fd4\u56de\u4e00\u4e2a\u5217\u8868\n    \u6ce8\u610f\uff1a\u884c\u5217\u5750\u6807\u4e2a\u6570\u8981\u76f8\u7b49\uff01\n    &quot;&quot;&quot;\n    print(data[[0,2,4],[0,2,4]])\n<\/code><\/pre>\n<h4>3.\u5e03\u5c14\u7d22\u5f15<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[5,5])\n    print(data)\n    #\u5e03\u5c14\u7d22\u5f15\n    &quot;&quot;&quot;\n    data\u53ef\u4ee5\u4e0e\u6570\u5b57\u8fdb\u884c\u6bd4\u8f83\uff0c\n    \u7ed3\u679c\u662f\u6ee1\u8db3\u6761\u4ef6\u7684\u4f4d\u7f6e\u4e3aTrue\uff0c\u4e0d\u6ee1\u8db3\u7684\u4f4d\u7f6e\u4e3aFalse\u7684\u5f20\u91cf\n    \u7136\u540e\u4f7f\u7528data[\u6761\u4ef6]\u8fdb\u884c\u7d22\u5f15\uff0c\u5bf9\u5e94True\u7684\u4f4d\u7f6e\u8fdb\u884c\u8f93\u51fa\n    \u8fd4\u56de\u7684\u662f\u4e00\u4e2a\u4e00\u7ef4\u7684\u5f20\u91cf\n    &quot;&quot;&quot;\n    print(data[data&gt;3])\n    print(data[data[:,3]&gt;3]) #\u8fd4\u56de\u6240\u6709\u884c\u4e2d\uff0c\u7f16\u53f73\u7684\u5217&gt;3\u7684\u6240\u6709\u884c\n    print(data[:,data[3]&gt;3])#\u8fd4\u56de\u6240\u6709\u5217\u4e2d\uff0c\u7f16\u53f73\u7684\u884c&gt;3\u7684\u6240\u6709\u5217\n<\/code><\/pre>\n<h4>4.\u591a\u7ef4\u7d22\u5f15<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[3,5,5])\n    print(data)\n    #\u591a\u7ef4\u7d22\u5f15\n    &quot;&quot;&quot;\n    data[]\n    \u6211\u4eec\u53ef\u4ee5\u8ba4\u4e3a\u591a\u7ef4\u5f20\u91cf\u662f\u591a\u4e2a\u5f20\u91cf\u7684\u5217\u8868\n    :param1:\u8868\u793a\u9009\u62e9\u7b2c\u51e0\u4e2atensor\n    :param2:\u884c\u7d22\u5f15\n    :param3:\u5217\u7d22\u5f15\n    &quot;&quot;&quot;\n    print(data[0,:,2:3])\n<\/code><\/pre>\n<h3>\uff08\u4e03\uff09\u5f20\u91cf\u5f62\u72b6\u64cd\u4f5c<\/h3>\n<h4>1.\u67e5\u770b\u5f20\u91cf\u5f62\u72b6<\/h4>\n<pre><code class=\"language-python\">    data = torch.tensor([[1,2,3],[4,5,6]])\n    print(data)\n    #1.shape\n    &quot;&quot;&quot;\n    data.shape[]\n    :param:\u53ef\u9009\uff0c\u8868\u793a\u6307\u5b9a\u7ef4\u6570\n    :return:\u5f20\u91cf\u7684\u5f62\u72b6\n    &quot;&quot;&quot;\n    print(data.shape)\n    #2.size\n    &quot;&quot;&quot;\n    data.size()\n    :param:\u53ef\u9009\uff0c\u8868\u793a\u6307\u5b9a\u7ef4\u6570\n    :return:\u5f20\u91cf\u7684\u5f62\u72b6\n    &quot;&quot;&quot;\n    print(data.size())\n<\/code><\/pre>\n<h4>2.reshape<\/h4>\n<pre><code class=\"language-python\">    data = torch.tensor([[1,2,3],[4,5,6]])\n    print(data)\n    &quot;&quot;&quot;\n    data.reshape()\n    :param1:\u8f6c\u6362\u540e\u5f20\u91cf\u7684\u884c\u6570\n    :param2:\u8f6c\u6362\u540e\u5f20\u91cf\u7684\u5217\u6570\n    :return:\u8f6c\u6362\u540e\u7684\u5f20\u91cf\n    \u6ce8\u610f\uff1a\u8f6c\u6362\u524d\u540e\u7684\u5f20\u91cf\u5143\u7d20\u4e2a\u6570\u8981\u76f8\u7b49\uff01\n    \u6280\u5de7\uff1a\u53ef\u4ee5\u5bf9\u884c\u5217\u4e2d\u4f7f\u7528-1\u6765\u8ba9\u7a0b\u5e8f\u81ea\u52a8\u8ba1\u7b97\u53e6\u4e00\u4e2a\u6570\u503c\uff0c\u524d\u63d0\u662f\u884c\u5217\u6709\u4e00\u4e2a\u5df2\u7ecf\u88ab\u6307\u5b9a\n    &quot;&quot;&quot;\n    data_new = data.reshape(3,2)\n    print(data_new)\n    data_new = data.reshape(3,-1)\n    print(data_new)\n<\/code><\/pre>\n<h4>3.transpose<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[3,4,5])\n    print(data)\n    #transpose\n    &quot;&quot;&quot;\n    torch.transpose()\n    :param1:\u8981\u64cd\u4f5c\u7684\u5f20\u91cf\n    :param2:\u8981\u4ea4\u6362\u7684\u7ef4\u5ea61\n    :param3:\u8981\u4ea4\u6362\u7684\u7ef4\u5ea62\n    :return:\u4ea4\u6362\u7ef4\u5ea61\u548c\u7ef4\u5ea62\uff0c\u8fd4\u56de\u4ea4\u6362\u540e\u7684\u5f20\u91cf\n    \u7f3a\u70b9\uff1a\u4e00\u6b21\u53ea\u80fd\u4ea4\u6362\u4e24\u4e2a\u7ef4\u5ea6\n    &quot;&quot;&quot;\n    data_new = torch.transpose(data,0,1)\n    print(data_new)\n<\/code><\/pre>\n<h4>4.permute<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[3,4,5])\n    print(data)\n    &quot;&quot;&quot;\n    torch.permute()\n    :param1:\u8981\u64cd\u4f5c\u7684\u5f20\u91cf\n    :param2:\u7ef4\u5ea6\u4ea4\u6362\u5217\u8868\uff0c\u5bf9\u5e94\u4f4d\u7f6e\u4ea4\u6362\u4e3a\u5bf9\u5e94\u7684\u7ef4\u6570\n    :return:\u4ea4\u6362\u540e\u7684\u5f20\u91cf\n    \u53ef\u4ee5\u4e00\u6b21\u4ea4\u6362\u591a\u4e2a\u7ef4\u5ea6\n    &quot;&quot;&quot;\n    data_new = torch.permute(data,[2,0,1])\n    #\u8868\u793a\u5c06\u539f\u6765\u7684\u7ef4\u6570\u987a\u5e8f(0,1,2)\u4ea4\u6362\u4e3a(2,0,1)\n    print(data_new)\n<\/code><\/pre>\n<h4>5.view\u548ccontiguous<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[4,5])\n    print(data)\n    &quot;&quot;&quot;\n    data.is_contiguous()\n    \u5224\u65ad\u5f20\u91cf\u662f\u5426\u5b58\u50a8\u5728\u8fde\u7eed\u7684\u7a7a\u95f4\u4e2d\n    :return:True\/False\n    &quot;&quot;&quot;\n    print(data.is_contiguous())\n    &quot;&quot;&quot;\n    data.view()\n    :param1:\u7ef4\u5ea6\u6570\u503c\n    :param2:\u7ef4\u5ea6\u6570\u503c\n    :return:\u4ea4\u6362\u7ef4\u5ea6\u6570\u503c\u540e\u7684\u5f20\u91cf\n    \u6ce8\u610f\uff1aview\u53ea\u80fd\u7528\u4e8e\u8fde\u7eed\u7a7a\u95f4\u5b58\u50a8\u7684\u5f20\u91cf\n    &quot;&quot;&quot;\n    data_new = data.view(5,4)\n    print(data_new)\n\n    data_test = torch.transpose(data,1,0)\n    #\u4e00\u822c\u6765\u8bf4\uff0c\u7ecf\u8fc7transpose\u548cpermute\u4e4b\u540e\uff0c\u5f20\u91cf\u7684\u5b58\u50a8\u7a7a\u95f4\u4e0d\u518d\u8fde\u7eed\n    print(data_test.is_contiguous())\n    #\u53ef\u4ee5\u4f7f\u7528contiguous()\u4f7f\u5b58\u50a8\u7a7a\u95f4\u8fde\u7eed\n    data_new = data_test.contiguous().view(4,5)\n    print(data_new)\n<\/code><\/pre>\n<h4>6.squeeze\u548cunsqueeze<\/h4>\n<pre><code class=\"language-python\">    #1.squeeze\n    data = torch.randint(0,10,[1,2,3,4])\n    print(data)\n    &quot;&quot;&quot;\n    data.squeeze()\n    \u53bb\u9664\u7ef4\u6570\u4e3a1\u7684\u7ef4\u5ea6\n    :param:\u53ef\u9009\uff0c\u6307\u5b9a\u7ef4\u5ea6\n    :return:\u53bb\u9664\u7ef4\u5ea6\u540e\u7684\u5f20\u91cf\n    &quot;&quot;&quot;\n    data_new_1 = data.squeeze()\n    print(data_new_1)\n\n\n    #2.unsqueeze\n    data = torch.randint(0,10,[3,4])\n    print(data)\n    &quot;&quot;&quot;\n    data.unsqueeze()\n    \u589e\u52a0\u7ef4\u5ea6\uff0c\u7ef4\u6570\u4e3a1\n    :param:\u5728\u6307\u5b9a\u4f4d\u7f6e\u6dfb\u52a0\u7ef4\u5ea6\n    :return:\u6dfb\u52a0\u7ef4\u5ea6\u4e4b\u540e\u7684\u5f20\u91cf\n    &quot;&quot;&quot;\n    data_new_2 = data.unsqueeze(0)\n    print(data_new_2)\n<\/code><\/pre>\n<h3>\uff08\u516b\uff09\u5f20\u91cf\u8fd0\u7b97\u51fd\u6570<\/h3>\n<h4>1.\u5747\u503c<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0,10,[2,3],dtype=torch.float64)#\u751f\u6210\u6574\u6570\u968f\u673a\u6570\uff0c\u4ee5float64\u7c7b\u578b\u5b58\u50a8\n    print(data)\n    &quot;&quot;&quot;\n    data.mean()\n    :param dim:\u6307\u5b9a\u7ef4\u5ea6\uff0c\u8868\u793a\u6309\u8be5\u7ef4\u5ea6\u6c42\u5747\u503c\n    :return:\u5c06\u6240\u6709\u5143\u7d20\u76f8\u52a0\u6c42\u5747\u503c\uff0c\u8fd4\u56de\u5747\u503c\uff0c\u5f20\u91cf\u7c7b\u578b\n    &quot;&quot;&quot;\n    print(data.mean())\n    print(data.mean(dim=0))#\u6309\u884c\u8fd9\u4e2a\u7ef4\u5ea6\uff0c\u8868\u793a\u6bcf\u4e00\u5217\u6309\u884c\u76f8\u52a0\u6c42\u5747\u503c\n    print(data.mean(dim=1))#\u6309\u5217\u8fd9\u4e2a\u7ef4\u5ea6\uff0c\u8868\u793a\u6bcf\u4e00\u884c\u6309\u5217\u76f8\u52a0\u6c42\u5747\u503c\n<\/code><\/pre>\n<h4>2.\u6c42\u548c<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0, 10, [2, 3], dtype=torch.float64)\n    print(data)\n    &quot;&quot;&quot;\n    data.sum()\n    :param dim:\u6307\u5b9a\u7ef4\u5ea6\uff0c\u8868\u793a\u6309\u8be5\u7ef4\u5ea6\u6c42\u548c\n    :return:\u5c06\u6240\u6709\u5143\u7d20\u76f8\u52a0\uff0c\u8fd4\u56de\u548c\uff0c\u5f20\u91cf\u7c7b\u578b\n    &quot;&quot;&quot;\n    print(data.sum())\n    print(data.sum(dim=0))#\u6309\u884c\u8fd9\u4e2a\u7ef4\u5ea6\uff0c\u8868\u793a\u6bcf\u4e00\u5217\u6309\u884c\u76f8\u52a0\n    print(data.sum(dim=1))#\u6309\u5217\u8fd9\u4e2a\u7ef4\u5ea6\uff0c\u8868\u793a\u6bcf\u4e00\u884c\u6309\u5217\u76f8\u52a0\n<\/code><\/pre>\n<h4>3.\u6b21\u65b9<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0, 10, [2, 3], dtype=torch.float64)\n    print(data)\n    &quot;&quot;&quot;\n    data.pow()\n    :param:\u5c06\u5f20\u91cf\u7684\u6bcf\u4e00\u4e2a\u5143\u7d20\u8fdb\u884c\u5bf9\u5e94\u7684\u6b21\u65b9\n    :return:\u5e73\u65b9\u540e\u7684\u7ed3\u679c\uff0c\u5f20\u91cf\u7c7b\u578b\n    &quot;&quot;&quot;\n    data = data.pow(2)\n    print(data)\n<\/code><\/pre>\n<h4>4.\u5e73\u65b9\u6839<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0, 10, [2, 3], dtype=torch.float64)\n    print(data)\n    &quot;&quot;&quot;\n    data.sqrt()\n    \u5c06\u5f20\u91cf\u7684\u6bcf\u4e00\u4e2a\u5143\u7d20\u8fdb\u884c\u5f00\u5e73\u65b9\u6839\n    :return:\u5e73\u65b9\u6839\u540e\u7684\u7ed3\u679c\uff0c\u5f20\u91cf\u7c7b\u578b\n    &quot;&quot;&quot;\n    data = data.sqrt()\n    print(data)\n<\/code><\/pre>\n<h4>5.\u6307\u6570<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0, 10, [2, 3], dtype=torch.float64)\n    print(data)\n    &quot;&quot;&quot;\n    data.exp()\n    \u5c06\u5f20\u91cf\u7684\u6bcf\u4e00\u4e2a\u5143\u7d20\u4f5c\u4e3a\u6307\u6570\u8ba1\u7b97e^\u6307\u6570\u7684\u503c\n    :return:\u8fd0\u7b97\u540e\u7684\u7ed3\u679c\uff0c\u5f20\u91cf\u7c7b\u578b\n    &quot;&quot;&quot;\n    data = data.exp()\n    print(data)\n<\/code><\/pre>\n<h4>6.\u5bf9\u6570<\/h4>\n<pre><code class=\"language-python\">    data = torch.randint(0, 10, [2, 3], dtype=torch.float64)\n    print(data)\n    &quot;&quot;&quot;\n    data.log()\n    \u5c06\u5f20\u91cf\u7684\u6bcf\u4e00\u4e2a\u5143\u7d20\u8fdb\u884c\u5bf9\u6570\u8fd0\u7b97\uff0c\u9ed8\u8ba4\u4ee5e\u4e3a\u5e95\n    :return:\u8fd0\u7b97\u540e\u7684\u7ed3\u679c\uff0c\u5f20\u91cf\u7c7b\u578b\n    &quot;&quot;&quot;\n    data = data.log()\n    print(data)\n    data = data.log2()#\u4ee52\u4e3a\u5e95\n    print(data)\n<\/code><\/pre>\n<h3>\uff08\u4e5d\uff09\u68af\u5ea6\u8fd0\u7b97<\/h3>\n<h4>1.\u4e00\u5143\u7684\u68af\u5ea6\u8fd0\u7b97<\/h4>\n<ul>\n<li>\n<p>\u4e00\u5143\u6807\u91cf\u68af\u5ea6\u8fd0\u7b97\uff1a\u7c7b\u4f3c\u4e8e\u4e00\u5143\u51fd\u6570\u6c42\u5bfc\uff0c\u81ea\u53d8\u91cf\u53ea\u6709\u4e00\u4e2a\u503c<\/p>\n<pre><code class=\"language-python\">    &quot;&quot;&quot;\n    \u5bf9\u4e8e\u8981\u6c42\u5bfc\u7684\u5f20\u91cf\uff0c\u6211\u4eec\u9700\u8981\u8bbe\u7f6e\u4e00\u4e9b\u5c5e\u6027\uff1a\n    requires_gard:True\n    dtype:\u4e00\u822c\u8bbe\u7f6e\u4e3a\u6d6e\u70b9\u6570\n    &quot;&quot;&quot;\n    x = torch.tensor(10,requires_grad=True,dtype=torch.float64)\n    fx = x**2 + 1 #\u6784\u5efa\u8ba1\u7b97\u51fd\u6570\n    #\u81ea\u52a8\u5fae\u5206\n    &quot;&quot;&quot;\n    fx.backward()\n    \u5bf9fx\u8fdb\u884c\u6c42\u5bfc\u5f97\u5230\u5bfc\u51fd\u6570\n    \u5c06x=10\u4ee3\u5165\u6c42\u503c\n    &quot;&quot;&quot;\n    fx.backward()\n    #\u8bbf\u95ee\u68af\u5ea6\n    print(x.grad)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u4e00\u5143\u5411\u91cf\u68af\u5ea6\u8fd0\u7b97\uff1a\u7c7b\u4f3c\u4e8e\u4e00\u5143\u51fd\u6570\u6c42\u5bfc\uff0c\u81ea\u53d8\u91cf\u6709\u591a\u4e2a\u503c<\/p>\n<pre><code class=\"language-python\">    x = torch.tensor([10,20,30,40],requires_grad=True,dtype=torch.float64)\n    fx = x**2 + 1 #\u6b64\u65f6fx\u662f\u4e00\u4e2a\u5411\u91cf\n    gx = fx.mean() #\u6b64\u65f6fx\u662f\u4e00\u4e2a\u6807\u91cf\n    &quot;&quot;&quot;\n    backward()\n    \u5bf9\u4e8e\u5411\u91cf\u800c\u8a00\uff0c\u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528\uff0c\u9700\u8981\u4f7f\u7528mean\u6216\u8005sum\n    mean:\u6c42\u5e73\u5747\u635f\u5931\n    sum:\u6c42\u603b\u635f\u5931\n    \u8fc7\u7a0b\uff1a\n    1.fx\u67094\u4e2a\u53d8\u91cf\uff0c\u8c03\u7528mean\u5f97\u5230: gx = 1\/4 * fx\n    2.\u5bf9gx\u8fdb\u884c\u6c42\u5bfc\uff0c\u81ea\u53d8\u91cf\u4e3afx: g'x = 1\/4 * f'x\n    3.\u6839\u636e\u590d\u5408\u51fd\u6570\u6c42\u5bfc\u89c4\u5219: g'x = 1\/4 * 2x = 1\/2 * x\n    4.\u4ee3\u5165\u6bcf\u4e00\u4e2ax\u7684\u503c\u5373\u53ef\n    &quot;&quot;&quot;\n    gx.backward()\n    print(x.grad)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>2.\u591a\u5143\u7684\u68af\u5ea6\u8fd0\u7b97<\/h4>\n<ul>\n<li>\n<p>\u591a\u6807\u91cf\u68af\u5ea6\u8fd0\u7b97\uff1a\u5bf9\u591a\u5143\u51fd\u6570\u6c42\u504f\u5bfc\uff0c\u6bcf\u4e2a\u81ea\u53d8\u91cf\u53ea\u6709\u4e00\u4e2a\u503c<\/p>\n<pre><code class=\"language-python\">    x1 = torch.tensor(10,requires_grad=True,dtype=torch.float64)\n    x2 = torch.tensor(20, requires_grad=True, dtype=torch.float64)\n    #\u6784\u9020\u51fd\u6570\n    fx = x1**2 + x2**2 + 1\n    #\u6807\u91cf\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528backward\n    fx.backward()\n    print(x1.grad)\n    print(x2.grad)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u591a\u53d8\u91cf\u68af\u5ea6\u8fd0\u7b97\uff1a\u5bf9\u591a\u5143\u51fd\u6570\u6c42\u504f\u5bfc\uff0c\u6bcf\u4e2a\u81ea\u53d8\u91cf\u6709\u591a\u4e2a\u503c<\/p>\n<pre><code class=\"language-python\">    x1 = torch.tensor([10,20],requires_grad=True,dtype=torch.float64)\n    x2 = torch.tensor([30,40], requires_grad=True, dtype=torch.float64)\n    #\u6784\u9020\u51fd\u6570\n    fx = x1**2 + x2**2\n    gx = fx.sum()\n    gx.backward()\n    print(x1.grad)\n    print(x2.grad)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>\uff08\u5341\uff09\u63a7\u5236\u68af\u5ea6\u8fd0\u7b97<\/h3>\n<h4>1.\u63a7\u5236\u81ea\u52a8\u5fae\u5206<\/h4>\n<pre><code class=\"language-python\">    x = torch.tensor(10,requires_grad=True,dtype=torch.float64)\n    #1.\u65b9\u5f0f\u4e00\n    &quot;&quot;&quot;\n    with torch.no_grad()\n    \u662f\u4e00\u4e2a\u4e0a\u4e0b\u6587\u7ba1\u7406\u5668\n    \u4f5c\u7528\u662f\u5728\u5176\u4e2d\u8ba1\u7b97\u5f97\u5230\u7684\u5f20\u91cf\uff0c\u5176requires_grad=False\n    \u8fd9\u4e9b\u5f20\u91cf\u4e0d\u4f1a\u5728Tensor\u4e0a\u8ffd\u8e2a\u8ba1\u7b97\u5386\u53f2\uff0c\u4e0d\u4f1a\u7528\u4e8e\u81ea\u52a8\u5fae\u5206\n    \u9002\u7528\u4e8e\u4e0d\u9700\u8981\u8fdb\u884c\u68af\u5ea6\u8fd0\u7b97\u7684\u5f20\u91cf\uff0c\u51cf\u5c11\u5185\u5b58\u4f7f\u7528\u548c\u8ba1\u7b97\u65f6\u95f4\n    &quot;&quot;&quot;\n    with torch.no_grad():\n        y = x**2\n    print(y.requires_grad) #\u6b64\u65f6y\u7684requires_grad\u4e3aFalse\n\n    #2.\u65b9\u5f0f\u4e8c\n    &quot;&quot;&quot;\n    @torch.no_grad()\n    \u662f\u4e00\u4e2a\u8bed\u6cd5\u7cd6\n    \u4f5c\u7528\u662f\u5176\u4fee\u9970\u7684\u51fd\u6570\uff0c\u8fd4\u56de\u503c\u9ed8\u8ba4\u7684requires_grad=False\n    &quot;&quot;&quot;\n    @torch.no_grad()\n    def func(x):\n        return x**2\n    y = func(x)\n    print(y.requires_grad)\n\n    #3.\u65b9\u5f0f\u4e09\n    &quot;&quot;&quot;\n    torch.set_grad_enabled(False)\n    \u8fdb\u884c\u5168\u5c40\u8bbe\u7f6e\uff0c\u4e00\u822c\u4e0d\u4f7f\u7528\n    &quot;&quot;&quot;\n    torch.set_grad_enabled(False)\n    y = x**2\n    print(y.requires_grad)\n<\/code><\/pre>\n<h4>2.\u68af\u5ea6\u7d2f\u8ba1\u548c\u68af\u5ea6\u6e05\u96f6<\/h4>\n<pre><code class=\"language-python\">    x = torch.tensor([10,20,30,40],requires_grad=True,dtype=torch.float64)\n    #\u73b0\u8c61\uff1a\u8fde\u7eed\u8fd0\u7b97\u65f6\u4f1a\u53d1\u73b0x\u7684\u68af\u5ea6\u503c\u662f\u4f1a\u5c06\u5386\u53f2\u7684\u68af\u5ea6\u503c\u7d2f\u52a0\u7684\n    for _ in range(3):\n        f1 = x**2\n        f2=f1.mean()\n        f2.backward()\n        print(x.grad)\n    #\u907f\u514d\u7d2f\u52a0\u9700\u8981\u8fdb\u884c\u68af\u5ea6\u6e05\u96f6\n    for _ in range(3):\n        f1 = x**2\n        f2=f1.mean()\n        &quot;&quot;&quot;\n        \u5148\u5224\u65ad\uff1a\u5f53\u68af\u5ea6\u4e0d\u4e3a0\u65f6\n        \u6267\u884c\uff1a\u4f7f\u7528x.grad.data.zero_()\u5c06\u68af\u5ea6\u6e05\u96f6\n        &quot;&quot;&quot;\n        if x.grad is not None:\n            x.grad.data.zero_()\n        f2.backward()\n        print(x.grad)\n<\/code><\/pre>\n<h4>3.\u7b80\u5355\u7684\u68af\u5ea6\u4f18\u5316\u51fd\u6570<\/h4>\n<pre><code class=\"language-python\">    x = torch.tensor(10,requires_grad=True,dtype=torch.float64)\n    for _ in range(1000):\n        fx = x**2\n        if x.grad is not None:\n            x.grad.data.zero_()\n        fx.backward()\n        x.data = x.data - 0.001*x.grad\n        print(&quot;\n<\/code><\/pre>\n<h3>\uff08\u5341\u4e00\uff09\u81ea\u52a8\u5fae\u5206\u5f20\u91cf\u7684\u7c7b\u578b\u8f6c\u6362<\/h3>\n<h4>1.\u73b0\u8c61<\/h4>\n<p>\u5bf9\u4e00\u4e2a\u8bbe\u7f6e<code>requires_grad=True<\/code>\u7684\u5f20\u91cf\u4f7f\u7528<code>numpy<\/code>\u8fdb\u884c\u8f6c\u6362\u65f6\uff0c\u4f1a\u51fa\u73b0\u62a5\u9519\uff1a<\/p>\n<p><code>RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.<\/code><\/p>\n<h4>2.\u89e3\u51b3\u65b9\u6cd5\uff1adetach<\/h4>\n<pre><code class=\"language-python\">    x = torch.tensor(10, requires_grad=True, dtype=torch.float64)\n    &quot;&quot;&quot;\n    x.detach()\n    \u5206\u79bbx\uff0c\u4ea7\u751f\u4e00\u4e2a\u65b0\u7684\u5f20\u91cf\uff0c\u4e0ex\u5171\u4eab\u5185\u5b58\n    &quot;&quot;&quot;\n    data_numpy = x.detach().numpy()\n    print(data_numpy)\n<\/code><\/pre>\n<h3>\uff08\u5341\u4e8c\uff09\u6a21\u578b\u7ec4\u4ef6<\/h3>\n<h4>1.\u635f\u5931\u51fd\u6570<\/h4>\n<pre><code class=\"language-python\">    #\u5bfc\u5305\n    import torch.nn as nn\n\n    #\u521d\u59cb\u5316\u5e73\u65b9\u635f\u5931\u51fd\u6570\u5bf9\u8c61\n    &quot;&quot;&quot;\n    nn.MSELoss()\n    \u662f\u4e00\u4e2a\u7c7b\uff0c\n    \u7c7b\u4e2d\u91cd\u5199\u4e86__call__\u65b9\u6cd5\n    \u56e0\u6b64\u53ef\u4ee5\u4f5c\u4e3a\u4e00\u4e2a\u51fd\u6570\u4f7f\u7528\n    &quot;&quot;&quot;\n    criterion = nn.MSELoss()\n    y_pred = torch.randn(3,5,requires_grad=True)\n    y_true = torch.randn(3,5)\n    #\u8ba1\u7b97\u635f\u5931\n    &quot;&quot;&quot;\n    \u5c06\u8be5\u7c7b\u4f5c\u4e3a\u51fd\u6570\u4f7f\u7528\n    :param1:\u9884\u6d4b\u503c\n    :param2:\u771f\u5b9e\u503c\n    :return:\u5e73\u65b9\u635f\u5931,tensor\u7c7b\u578b\n    &quot;&quot;&quot;\n    loss = criterion(y_pred,y_true)\n    print(loss)\n<\/code><\/pre>\n<h4>2.\u5047\u8bbe\u51fd\u6570<\/h4>\n<pre><code class=\"language-python\">    #\u5bfc\u5305\n    import torch.nn as nn\n    \n    &quot;&quot;&quot;\n    nn.Linear()\n    :param1:\u8f93\u5165\u6570\u636e\u7684\u7279\u5f81\u6570\n    :param2:\u8f93\u51fa\u6570\u636e\u7684\u7279\u5f81\u6570\n    :return: Linear\u5bf9\u8c61\n    &quot;&quot;&quot;\n    model = nn.Linear(in_features=10,out_features=5)\n    #\u8f93\u5165\u6570\u636e\n    inputs = torch.randn(5,10)\n    &quot;&quot;&quot;\n    \u5c06\u8be5\u7c7b\u4f5c\u4e3a\u51fd\u6570\u4f7f\u7528\n    :param:\u8f93\u5165\u6570\u636e\n    :return:\u9884\u6d4b\u503c\n    &quot;&quot;&quot;\n    y_pred = model(inputs)\n\n<\/code><\/pre>\n<h4>3.\u4f18\u5316\u65b9\u6cd5<\/h4>\n<pre><code class=\"language-python\">\t#\u5bfc\u5305\n    import torch.optim as optim\n    \n    model = nn.Linear(in_features=10, out_features=5)\n    &quot;&quot;&quot;\n    optim.SGD()\n    :param1:\u4f20\u5165\u53c2\u6570\uff0c\u53ef\u4ee5\u4f7f\u7528model.parameters()\n    :param lr:\u5b66\u4e60\u7387\n    &quot;&quot;&quot;\n    optimizer = optim.SGD(model.parameters(),lr=0.001)\n    #\u8c03\u7528backward\u51fd\u6570\u5f97\u5230\u68af\u5ea6\u503c\n    #(\u7701\u7565\u4e00\u4e9b\u8c03\u7528\u903b\u8f91)\n    #\u8fdb\u884c\u68af\u5ea6\u6e05\u96f6\u53ef\u4ee5\u4f7f\u7528\uff1aoptimizer.zero_grad()\n    #\u66f4\u65b0\u6a21\u578b\u53c2\u6570\n    optimizer.step()\n<\/code><\/pre>\n<h3>\uff08\u5341\u4e09\uff09\u6570\u636e\u96c6\u5bf9\u8c61<\/h3>\n<h4>1.\u81ea\u5b9a\u4e49\u6570\u636e\u96c6\u5bf9\u8c61<\/h4>\n<pre><code class=\"language-python\">from torch.utils.data import Dataset\n\n#\u9700\u8981\u5b9e\u73b0\u4ee5\u4e0b\u65b9\u6cd5\nclass Data(Dataset):#\u7ee7\u627fDataset\n    def __init__:#\u521d\u59cb\u5316\n\n    def __len__:#\u8fd4\u56de\u957f\u5ea6\n\n    def __getitem__:#\u7d22\u5f15\n<\/code><\/pre>\n<h4>2.\u6784\u5efa\u6570\u636e\u52a0\u8f7d\u5668<\/h4>\n<pre><code class=\"language-python\">    from torch.utils.data import DataLoader\n    \n    #\u521b\u5efa\u6570\u636e\u96c6\n    x = torch.randn(100,8)\n    y = torch.randint(0,2,[x.size(0),])\n    #1.\u6784\u5efa\u6570\u636e\u7c7b\n    dataset = Data(x,y)\n    #2.\u6784\u5efa\u6570\u636e\u52a0\u8f7d\u5668\n    dataloader = DataLoader(dataset,batch_size=4,shuffle=True)\n<\/code><\/pre>\n<h4>3.\u7b80\u5355\u6570\u636e\u96c6<\/h4>\n<pre><code class=\"language-python\">    from torch.utils.data import TensorDataset\n    \n    x = torch.randn(100,8)\n    y = torch.randint(0,2,[x.size(0),])\n    dataset = TensorDataset(x,y)\n    dataloader = DataLoader(dataset,batch_size=4,shuffle=True)\n<\/code><\/pre>\n<h3>\uff08\u5341\u56db\uff09\u6a21\u578b\u4fdd\u5b58\u4e0e\u52a0\u8f7d<\/h3>\n<h4>1.\u6a21\u578b\u5bf9\u8c61<\/h4>\n<pre><code class=\"language-python\">class Model(nn.Module):\n\n    def __init__(self,input_size,output_size):\n        super(Model,self).__init__()\n        self.linear1 = nn.Linear(input_size,output_size*2)\n        self.linear2 = nn.Linear(input_size*2,output_size)\n\n    def forward(self,inputs):\n        &quot;&quot;&quot;\n        \u5f53\u6a21\u578b\u7c7b\u7ee7\u627f\u4e86nn.Model\u5e76\u5b9e\u73b0\u4e86forward\u51fd\u6570\n        \u6b64\u65f6\u53ef\u4ee5\u5c06\u6a21\u578b\u5bf9\u8c61\u4f5c\u4e3a\u51fd\u6570\u4f7f\u7528\n        :param inputs:\n        :return:\n        &quot;&quot;&quot;\n        inputs = self.linear1(inputs)\n        output = self.linear2(inputs)\n        return output\n<\/code><\/pre>\n<h4>2.\u76f4\u63a5\u5b58\u50a8\u65b9\u5f0f<\/h4>\n<pre><code class=\"language-python\">\t#\u5b58\u50a8\n    model = Model(64,10)\n    &quot;&quot;&quot;\n    torch.save\n    :param1:\u8981\u5b58\u50a8\u7684\u6a21\u578b\u5bf9\u8c61\n    :param2:\u5b58\u50a8\u7684\u4f4d\u7f6e\n    :param pickle_module:\u5b58\u50a8\u65b9\u5f0f\n    :param pickle_protocol:\u5b58\u50a8\u534f\u8bae\n    &quot;&quot;&quot;\n    torch.save(model,&quot;model\/model.pth&quot;,pickle_module=pickle,pickle_protocol=2)\n    \n    #\u52a0\u8f7d\n    &quot;&quot;&quot;\n    torch.load\n    :param1:\u52a0\u8f7d\u6a21\u578b\u7684\u5b58\u50a8\u4f4d\u7f6e\n    :param pickle_module:\u52a0\u8f7d\u65b9\u5f0f\n    :param map_location:\u52a0\u8f7d\u5230\u7684\u8bbe\u5907\n    &quot;&quot;&quot;\n    model = torch.load(&quot;model\/model.pth&quot;,pickle_module=pickle,map_location=&quot;cpu&quot;)\n<\/code><\/pre>\n<h4>3.\u5b58\u50a8\u6a21\u578b\u7684\u7f51\u7edc\u53c2\u6570<\/h4>\n<pre><code class=\"language-python\">\t#\u5b58\u50a8\n    #\u81ea\u5b9a\u4e49\u8981\u5b58\u50a8\u7684\u53c2\u6570\uff1a\u5b57\u5178\u5f62\u5f0f\n    #\u9009\u62e9\u8981\u5b58\u50a8\u7684\u53c2\u6570\u5373\u53ef\n    save_params = {\n        &quot;init_params&quot;:{&quot;input_size&quot;:64,&quot;output_size&quot;:10},\n        &quot;acc_score&quot;: 0.88,\n        &quot;avg_loss&quot;: 0.53,\n        &quot;item_num&quot;: 34,\n        &quot;optimizer_params&quot;:optimizer.state_dict(),\n        &quot;model_params&quot;:model.state_dict()\n    }\n    #\u5b58\u50a8\u6a21\u578b\u53c2\u6570\n    torch.save(save_params,&quot;model\/model.pth&quot;)\n    \n    #\u52a0\u8f7d\n    #\u4ece\u78c1\u76d8\u4e2d\u52a0\u8f7d\u5230\u5185\u5b58\n    model_params = torch.load(&quot;model\/model.pth&quot;)\n    #\u4f7f\u7528\u53c2\u6570\u521d\u59cb\u5316\u6a21\u578b\n    model = Model(model_params[&quot;init_params&quot;][&quot;input_size&quot;],model_params[&quot;init_params&quot;][&quot;output_size&quot;])\n    model.load_state_dict(model_params[&quot;model_params&quot;])\n    #\u4f7f\u7528\u53c2\u6570\u521d\u59cb\u5316\u4f18\u5316\u5668\n    optimizer = optim.Adam(model.parameters())\n    optimizer.load_state_dict(model_params[&quot;optimizer_params&quot;])\n    #\u5176\u4ed6\u53c2\u6570\u540c\u7406\n<\/code><\/pre>\n<h2>\u4e8c\u3001\u6df1\u5ea6\u5b66\u4e60\u57fa\u7840<\/h2>\n<h3>\uff08\u4e00\uff09\u795e\u7ecf\u7f51\u7edc\u7b80\u4ecb<\/h3>\n<pre><code class=\"language-mermaid\">graph LR\nid0(&quot;\u8f93\u5165&quot;)--&gt;id1(\u7b2c\u4e00\u5c42\u795e\u7ecf\u5143)--&gt;id2(\u7b2c\u4e8c\u5c42\u795e\u7ecf\u5143)--&quot;......&quot;--&gt;id3(\u7b2cn\u5c42\u795e\u7ecf\u5143)--&gt;id4(\u8f93\u51fa)\n<\/code><\/pre>\n<ul>\n<li>\n<p>\u6211\u4eec\u5c06\u8f93\u5165\u79f0\u4e3a\u8f93\u5165\u5c42\uff0c\u8f93\u51fa\u79f0\u4e3a\u8f93\u51fa\u5c42\uff0c\u4e2d\u95f4\u4f59\u4e0b\u7684\u5c42\u7ea7\u7edf\u79f0\u4e3a\u9690\u85cf\u5c42<\/p>\n<\/li>\n<li>\n<p>\u4fe1\u606f\u7ecf\u8fc7\u8f93\u5165\u5c42\u8fdb\u5165\u9690\u85cf\u5c42\uff0c\u9690\u85cf\u5c42\u901a\u8fc7\u65e2\u5b9a\u7b97\u6cd5\u5bf9\u4fe1\u606f\u8fdb\u884c\u5904\u7406\uff0c\u7136\u540e\u4f20\u9012\u5230\u8f93\u51fa\u5c42<\/p>\n<\/li>\n<li>\n<p>\u6bcf\u4e00\u5c42\u7531\u591a\u4e2a\u795e\u7ecf\u5143\u7ec4\u6210\uff0c\u540c\u4e00\u5c42\u7684\u795e\u7ecf\u5143\u4e00\u822c\u6765\u8bf4\u662f\u6ca1\u6709\u8fde\u63a5\u7684<\/p>\n<\/li>\n<\/ul>\n<h3>\uff08\u4e8c\uff09\u6fc0\u6d3b\u51fd\u6570<\/h3>\n<h4>1.\u4f5c\u7528<\/h4>\n<ul>\n<li>\u6fc0\u6d3b\u51fd\u6570\u7684\u4f5c\u7528\u662f\u4e3a\u6bcf\u4e00\u5c42\u7684\u8f93\u51fa\u6570\u636e\u8fdb\u884c\u53d8\u6362\uff0c\u4e3a\u5176\u6dfb\u52a0\u975e\u7ebf\u6027\u56e0\u7d20<\/li>\n<li>\u8fd9\u6837\u4e00\u6765\uff0c\u795e\u7ecf\u7f51\u7edc\u5c31\u53ef\u4ee5\u62df\u5408\u51fa\u66f2\u7ebf\u6a21\u578b\uff0c\u800c\u4e0d\u662f\u4ec5\u4ec5\u53ea\u80fd\u62df\u5408\u7ebf\u6027\u6a21\u578b<\/li>\n<\/ul>\n<h4>2.\u8981\u6c42<\/h4>\n<ul>\n<li>\u7531\u4e8e\u6211\u4eec\u5728\u66f4\u65b0\u7f51\u7edc\u53c2\u6570\u65f6\uff0c\u4f7f\u7528\u7684\u662f\u53cd\u5411\u4f20\u64ad\u7b97\u6cd5<\/li>\n<li>\u56e0\u6b64\u6211\u4eec\u8981\u6c42\u6fc0\u6d3b\u51fd\u6570\u53ef\u5fae<\/li>\n<\/ul>\n<h4>3.sigmoid\u6fc0\u6d3b\u51fd\u6570<\/h4>\n<p>$$\nf(x)=\\frac{1}{1+e^{-x}}\n$$<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.zxlearning.space\/wp-content\/uploads\/2025\/09\/sigmoid.png\" alt=\"\"><\/p>\n<ul>\n<li>sigmoid\u51fd\u6570\u5c06\u4efb\u610f\u8f93\u5165\u6620\u5c04\u5230(0,1)\n<ul>\n<li>\u5f53\u8f93\u5165\u503c\u5728[-6,6]\u65f6\uff0c\u8f93\u51fa\u503c\u624d\u4f1a\u6709\u660e\u663e\u5dee\u5f02<\/li>\n<li>\u5f53\u8f93\u5165\u503c\u5728[-3,3]\u65f6\uff0c\u8f93\u51fa\u503c\u624d\u4f1a\u6709\u8f83\u597d\u6548\u679c<\/li>\n<\/ul>\n<\/li>\n<li>sigmoid\u51fd\u6570\u5bfc\u6570\u7684\u6570\u503c\u8303\u56f4\u662f(0,0.25)\n<ul>\n<li>\u5f53\u8f93\u5165\u503c\u5728[-6,6]\u4e4b\u5916\u65f6\uff0c\u5bfc\u6570\u503c\u63a5\u8fd1\u4e8e0\uff0c\u6b64\u65f6\u7f51\u7edc\u53c2\u6570\u66f4\u65b0\u6781\u5176\u7f13\u6162<\/li>\n<li>\u5f53\u8f93\u5165\u503c\u8d8b\u4e8e0\u65f6\uff0c\u5bfc\u6570\u503c\u8d8b\u4e8e0.25<\/li>\n<\/ul>\n<\/li>\n<li>sigmoid\u795e\u7ecf\u7f51\u7edc\u57285\u5c42\u4e4b\u5185\u5c31\u4f1a\u4ea7\u751f\u68af\u5ea6\u6d88\u5931\u73b0\u8c61\uff0c\u56e0\u6b64\u6b64\u51fd\u6570\u7528\u5f97\u4e0d\u591a\uff0c\u4e00\u822c\u53ea\u7528\u4e8e\u4e8c\u5206\u7c7b\u95ee\u9898\n<ul>\n<li>\u68af\u5ea6\u6d88\u5931\uff1a\u795e\u7ecf\u7f51\u7edc\u7c7b\u4f3c\u4e8e\u591a\u5c42\u590d\u5408\u51fd\u6570\uff0c\u5bf9\u5176\u6c42\u68af\u5ea6\u9002\u7528\u94fe\u5f0f\u6cd5\u5219\uff0c\u800c\u591a\u91cdsigmoid\u51fd\u6570\u590d\u5408\uff0c\u56e0\u4e3a\u5176\u8303\u56f4(0.0.25)\uff0c\u6240\u4ee5\u503c\u4f1a\u63a5\u8fd1\u4e8e0<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>4.tanh\u6fc0\u6d3b\u51fd\u6570<\/h4>\n<p>$$\nf(x)=\\frac{1-e^{-2e}}{1+e^{-2e}}\n$$<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.zxlearning.space\/wp-content\/uploads\/2025\/09\/tanh.png\" alt=\"tanh\"><\/p>\n<ul>\n<li>tanh\u51fd\u6570\u5c06\u4efb\u610f\u8f93\u5165\u6620\u5c04\u5230(-1,1)\n<ul>\n<li>\u5f53\u8f93\u5165\u503c\u5728(-3,3)\u4e4b\u5916\u65f6\uff0c\u4f1a\u88ab\u6620\u5c04\u4e3a-1\u62161<\/li>\n<\/ul>\n<\/li>\n<li>tanh\u51fd\u6570\u5bfc\u6570\u7684\u6570\u503c\u8303\u56f4\u662f(0,1)\n<ul>\n<li>\u5f53\u8f93\u5165\u503c\u5728(-3,3)\u4e4b\u5916\u65f6\uff0c\u5bfc\u6570\u503c\u63a5\u8fd1\u4e8e0<\/li>\n<\/ul>\n<\/li>\n<li>tanh\u51fd\u6570\u4ee50\u4e3a\u4e2d\u5fc3\uff0c\u5176\u6536\u655b\u901f\u5ea6\u6bd4sigmoid\u5feb\uff0c\u4f46\u540c\u6837\u5b58\u5728\u68af\u5ea6\u6d88\u5931\u95ee\u9898<\/li>\n<li>\u5728\u5b9e\u9645\u4f7f\u7528\u65f6\uff0c\u53ef\u4ee5\u5728\u9690\u85cf\u5c42\u4f7f\u7528tanh\u51fd\u6570\uff0c\u5728\u8f93\u51fa\u5c42\u4f7f\u7528sigmoid\u51fd\u6570<\/li>\n<\/ul>\n<h4>5.ReLU\u6fc0\u6d3b\u51fd\u6570<\/h4>\n<p>$$\nf(x)=max(0,x)\n$$<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.zxlearning.space\/wp-content\/uploads\/2025\/09\/ReLU.png\" alt=\"ReLU\"><\/p>\n<ul>\n<li>ReLU\u51fd\u6570\u5c06\u8d1f\u503c\u6620\u5c04\u4e3a0\uff0c\u6b63\u503c\u4fdd\u6301\u4e0d\u53d8<\/li>\n<li>ReLU\u51fd\u6570\u8ba1\u7b97\u7b80\u5355\uff0c\u80fd\u591f\u63d0\u4f9b\u6a21\u578b\u7684\u8bad\u7ec3\u6548\u7387\n<ul>\n<li>\u4f46\u5f53\u7f51\u7edc\u53c2\u6570\u91c7\u7528\u968f\u673a\u521d\u59cb\u5316\u65f6\uff0c\u53ef\u80fd\u5b58\u5728\u8d1f\u503c\u7684\u53c2\u6570\uff0c\u8fd9\u53ef\u80fd\u5bfc\u81f4\u6b63\u8d1f\u503c\u4fdd\u7559\u60c5\u51b5\u51fa\u73b0\u9884\u6599\u4e4b\u5916\u7684\u6548\u679c<\/li>\n<\/ul>\n<\/li>\n<li>ReLU\u51fd\u6570\u5728x&gt;0\u65f6\u4e0d\u5b58\u5728\u9971\u548c\u95ee\u9898\uff08\u68af\u5ea6\u8d8b\u4e8e0\uff09\uff0c\u80fd\u591f\u4fdd\u6301\u68af\u5ea6\u4e0d\u8870\u51cf\uff0c\u7f13\u89e3\u68af\u5ea6\u6d88\u5931\u95ee\u9898\n<ul>\n<li>\u4f46\u5f53\u8bad\u7ec3\u6df1\u5165\u65f6\uff0c\u53ef\u80fd\u5b58\u5728\u90e8\u5206\u8f93\u5165\u8f6c\u53d8\u4e3a\u8d1f\u6570\uff0c\u5bfc\u81f4\u5bf9\u5e94\u6743\u91cd\u65e0\u6cd5\u66f4\u65b0\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3a\u795e\u7ecf\u5143\u6b7b\u4ea1<\/li>\n<li>\u4f46\u8fd9\u79cd\u60c5\u51b5\u4e0d\u4e00\u5b9a\u662f\u8d1f\u9762\u7684\uff0c\u90e8\u5206\u795e\u7ecf\u5143\u8f93\u51fa\u4e3a0\uff0c\u53ef\u4ee5\u51cf\u5c11\u53c2\u6570\u95f4\u7684\u4f9d\u5b58\u5173\u7cfb\uff0c\u4f7f\u7f51\u7edc\u66f4\u52a0\u7a00\u758f\uff0c\u51cf\u5c0f\u8fc7\u62df\u5408\u98ce\u9669<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>6.SoftMax\u6fc0\u6d3b\u51fd\u6570<\/h4>\n<p>$$\nsoftmax(z_i)=\\frac{e^{z_i}}{\\sum_j e^{z_j}}\n$$<\/p>\n<ul>\n<li>SoftMax\u51fd\u6570\u9002\u7528\u4e8e\u591a\u5206\u7c7b\u95ee\u9898\uff0c\u662f\u5bf9sigmoid\u51fd\u6570\u5728\u591a\u5206\u7c7b\u4e0a\u7684\u63a8\u5e7f\uff0c\u76ee\u7684\u5728\u4e8e\u5c06\u591a\u5206\u7c7b\u7684\u7ed3\u679c\u4ee5\u6982\u7387\u7684\u5f62\u5f0f\u8868\u793a<\/li>\n<li>SoftMax\u51fd\u6570\u5c06\u8f93\u51fa\u7684\u5206\u7c7b\u7ed3\u679c\u8f6c\u6362\u4e3a(0,1)\u4e4b\u95f4\u7684\u6982\u7387\u503c\uff0c\u6240\u6709\u7ed3\u679c\u7684\u6982\u7387\u548c\u4e3a1\n<ul>\n<li>\u7b80\u5355\u6765\u8bf4\uff0c\u51fd\u6570\u7684\u5206\u5b50\u662f\u5bf9\u67d0\u4e00\u7ed3\u679c\u53d6e\u7684\u6307\u6570\uff0c\u51fd\u6570\u7684\u5206\u6bcd\u662f\u5bf9\u6240\u6709\u7ed3\u679c\u53d6e\u7684\u6307\u6570\u518d\u6c42\u548c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>7.\u6fc0\u6d3b\u51fd\u6570\u7684\u9009\u62e9<\/h4>\n<ul>\n<li>\u5bf9\u5e94\u9690\u85cf\u5c42\uff1a\n<ul>\n<li>\u4f18\u5148\u8003\u8651ReLU\u51fd\u6570\u53ca\u5176\u53d8\u4f53\uff0c\u6ce8\u610f\u795e\u7ecf\u5143\u6b7b\u4ea1\u95ee\u9898<\/li>\n<li>\u4e0d\u8981\u4f7f\u7528sigmoid\u51fd\u6570\uff0c\u4f7f\u7528tanh\u51fd\u6570\u66ff\u4ee3<\/li>\n<\/ul>\n<\/li>\n<li>\u5bf9\u4e8e\u8f93\u51fa\u5c42\uff1a\n<ul>\n<li>\u4e8c\u5206\u7c7b\u95ee\u9898\uff1asigmoid\u51fd\u6570<\/li>\n<li>\u591a\u5206\u7c7b\u95ee\u9898\uff1aSoftMax\u51fd\u6570<\/li>\n<li>\u56de\u5f52\u95ee\u9898\uff1aidentity\u51fd\u6570\n<ul>\n<li>identity\uff1a$f(x)=x$<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\uff08\u4e09\uff09\u53c2\u6570\u521d\u59cb\u5316<\/h3>\n<h4>1.\u521d\u59cb\u5316\u53c2\u6570<\/h4>\n<ul>\n<li>\n<p>\u4e00\u822c\u6765\u8bf4\u6211\u4eec\u9700\u8981\u521d\u59cb\u5316\u7684\u53c2\u6570\u6709\uff1a<\/p>\n<ul>\n<li>\n<p>\u6743\u91cd\uff1a\u6bd4\u8f83\u91cd\u8981\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e00\u4e9b\u53c2\u6570\u521d\u59cb\u5316\u65b9\u6cd5<\/p>\n<\/li>\n<li>\n<p>\u504f\u7f6e\uff1a\u4e00\u822c\u4e3a0<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u4e00\u822c\u6765\u8bf4\u5b9e\u9645\u5f00\u53d1\u8fc7\u7a0b\u4e2d\uff0cPyTorch\u6846\u67b6\u4f1a\u7ed9\u6211\u4eec\u53c2\u6570\u5bf9\u5e94\u7684\u9ed8\u8ba4\u503c\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u6539\u52a8\uff0c\u9664\u975e\u6a21\u578b\u6548\u679c\u8f83\u5dee\u7684\u65f6\u5019\u8003\u8651\u6539\u52a8\u53c2\u6570<\/p>\n<\/li>\n<\/ul>\n<h4>2.\u5747\u5300\u5206\u5e03\u521d\u59cb\u5316<\/h4>\n<ul>\n<li>\u6743\u91cd\u53c2\u6570\u4ece\u533a\u95f4\u5185\u5747\u5300\u53d6\u503c\uff0c\u4e00\u822c\u662f\u5728$(-\\frac{1}{\\sqrt d},\\frac{1}{\\sqrt d})$\u533a\u95f4\u4e0a\uff0cd\u8868\u793a\u6bcf\u4e2a\u795e\u7ecf\u5143\u7684\u8f93\u5165\u6570\u91cf\uff0c\u4e5f\u5c31\u662f\u6709\u591a\u5c11\u6570\u636e\u8fdb\u5165\u4e00\u4e2a\u795e\u7ecf\u5143<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    #\u5148\u968f\u4fbf\u641e\u4e2a\u6a21\u578b\n    linear = nn.Linear(5,3)\n    #\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    nn\u4e2d\u6709\u4e00\u4e2ainit\u6a21\u5757\n    \u4ece\u4e2d\u8c03\u7528\u5404\u79cd\u521d\u59cb\u5316\u65b9\u5f0f\n    \u5747\u5300\u5206\u5e03\u5c31\u662funiform(\u5e26_\u8868\u793a\u5bf9\u539f\u6570\u636e\u4fee\u6539)\n    \u53c2\u6570\u662f\u6a21\u578b\u7684\u6743\u91cdlinear.weight\n    &quot;&quot;&quot;\n    nn.init.uniform_(linear.weight)\n    print(linear.weight)\n<\/code><\/pre>\n<h4>3.\u6b63\u6001\u5206\u5e03\u521d\u59cb\u5316<\/h4>\n<ul>\n<li>\u968f\u673a\u521d\u59cb\u5316\u4ece\u5747\u503c\u4e3a0\uff0c\u6807\u51c6\u5dee\u4e3a1\u7684\u9ad8\u65af\u5206\u5e03\u4e2d\u53d6\u503c\uff0c\u4e00\u822c\u6765\u8bf4\u8fd9\u4e9b\u503c\u5f88\u5c0f<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    linear = nn.Linear(5,3)\n    #\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    normal()\n    :param1:\u8f93\u5165\u6743\u91cd\n    :param mean:\u8981\u6307\u5b9a\u6b63\u6001\u5206\u5e03\u7684\u5747\u503c\n    :param std:\u8981\u6307\u5b9a\u6b63\u6001\u5206\u5e03\u7684\u6807\u51c6\u5dee\n    &quot;&quot;&quot;\n    nn.init.normal_(linear.weight,mean=0,std=1)\n    print(linear.weight)\n<\/code><\/pre>\n<h4>4.\u56fa\u5b9a\u503c\u521d\u59cb\u5316<\/h4>\n<ul>\n<li>\u6ca1\u5565\u597d\u8bf4\u7684\u2026\u8bbe\u7f6e\u4e00\u4e2a\u56fa\u5b9a\u503c\u4f5c\u4e3a\u521d\u59cb\u5316\u503c\uff0c\u5176\u5b9e\u8fd8\u6709\u4e2a\u5206\u7c7b\uff1a\n<ul>\n<li>\u51680\u521d\u59cb\u5316\uff1a\u56fa\u5b9a\u503c\u4e3a0\uff0c\u4e00\u822c\u53bb\u521d\u59cb\u5316\u504f\u7f6e\uff0c\u4e0d\u8981\u521d\u59cb\u5316\u6743\u91cd\uff0c\u6743\u91cd\u51680\u8fd9\u4e2a\u795e\u7ecf\u5143\u5c31\u4f1a\u8f93\u51fa0\uff0c\u5bfc\u81f4\u4e0b\u4e00\u5c42\u76f8\u5173\u795e\u7ecf\u5143\u4e5f\u53ef\u80fd\u4e3a0<\/li>\n<li>\u51681\u521d\u59cb\u5316\uff1a\u56fa\u5b9a\u503c\u4e3a1<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    linear = nn.Linear(5,3)\n    #\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    constant()\n    :param1:\u8f93\u5165\u6743\u91cd\n    :param2:\u8981\u6307\u5b9a\u7684\u56fa\u5b9a\u503c\n    &quot;&quot;&quot;\n    nn.init.constant_(linear.weight,5)\n    print(linear.weight)\n    &quot;&quot;&quot;\n    zeros()\n    \u51680\u521d\u59cb\u5316\n    :param:\u8f93\u5165\u6743\u91cd\n    &quot;&quot;&quot;\n    nn.init.zeros_(linear.weight)\n    print(linear.weight)\n    &quot;&quot;&quot;\n    ones()\n    \u51681\u521d\u59cb\u5316\n    :param:\u8f93\u5165\u6743\u91cd\n    &quot;&quot;&quot;\n    nn.init.ones_(linear.weight)\n    print(linear.weight)\n<\/code><\/pre>\n<h4>5.kaiming\u521d\u59cb\u5316<\/h4>\n<ul>\n<li>\u4e5f\u79f0\u4e3aHE\u521d\u59cb\u5316\uff0c\u5206\u4e3a\u6b63\u6001\u5206\u5e03\u7684HE\u521d\u59cb\u5316\u548c\u5747\u5300\u5206\u5e03\u7684HE\u521d\u59cb\u5316<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    linear = nn.Linear(5,3)\n    #\u6b63\u6001\u5206\u5e03\u7684kaiming\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    kaiming_normal()\n    :param:\u8f93\u5165\u6743\u91cd\n    &quot;&quot;&quot;\n    nn.init.kaiming_normal_(linear.weight)\n    print(linear.weight)\n    #\u5747\u5300\u5206\u5e03\u7684kaiming\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    kaiming_uniform()\n    :param:\u8f93\u5165\u6743\u91cd\n    &quot;&quot;&quot;\n    nn.init.kaiming_uniform_(linear.weight)\n    print(linear.weight)\n<\/code><\/pre>\n<h4>6.xavier\u521d\u59cb\u5316<\/h4>\n<ul>\n<li>\u4e5f\u79f0\u4e3aGlorot\u521d\u59cb\u5316\uff0c\u57fa\u672c\u601d\u8def\u662f\u8ba9\u6bcf\u4e00\u5c42\u7684\u6fc0\u6d3b\u503c\u548c\u68af\u5ea6\u7684\u65b9\u7a0b\u5728\u4f20\u64ad\u8fc7\u7a0b\u4e2d\u4fdd\u6301\u4e00\u81f4\uff0c\u540c\u6837\u5206\u4e3a\u6b63\u6001\u5206\u5e03\u7684xavier\u521d\u59cb\u5316\u548c\u5747\u5300\u5206\u5e03\u7684xavier\u521d\u59cb\u5316<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    linear = nn.Linear(5,3)\n    #\u6b63\u6001\u5206\u5e03\u7684xavier\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    xavier_normal()\n    :param:\u8f93\u5165\u6743\u91cd\n    &quot;&quot;&quot;\n    nn.init.xavier_normal_(linear.weight)\n    print(linear.weight)\n    #\u5747\u5300\u5206\u5e03\u7684xavier\u521d\u59cb\u5316\n    &quot;&quot;&quot;\n    xavier_uniform()\n    :param:\u8f93\u5165\u6743\u91cd\n    &quot;&quot;&quot;\n    nn.init.xavier_uniform_(linear.weight)\n    print(linear.weight)\n<\/code><\/pre>\n<h3>\uff08\u56db\uff09\u53cd\u5411\u4f20\u64ad<\/h3>\n<h4>1.\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5<\/h4>\n<p>$$\nw_{new}=w_{old}-\\eta \\frac{\\partial E}{\\partial w}\n$$<\/p>\n<ul>\n<li>$\\frac{\\partial E}{\\partial w}$\uff1a\u68af\u5ea6\uff0c\u5bfb\u627e\u8be5\u70b9\u589e\u957f\u6700\u5feb\u7684\u65b9\u5411\uff0c\u5b83\u7684\u53cd\u5411\u5c31\u662f\u4e0b\u964d\u6700\u5feb\u7684\u65b9\u5411<\/li>\n<li>$\\eta$\uff1a\u5b66\u4e60\u7387\uff0c\u4e5f\u5c31\u662f\u6bcf\u6b21\u8fd0\u52a8\u7684\u4e00\u4e2a\u8ddd\u79bb\uff0c\u5b66\u4e60\u7387\u592a\u5927\u5bb9\u6613\u9519\u8fc7\u6700\u4f18\u89e3\uff0c\u5b66\u4e60\u7387\u592a\u5c0f\u8bad\u7ec3\u6548\u7387\u5f88\u6162\uff0c\u6700\u597d\u968f\u7740\u8bad\u7ec3\u8fc7\u7a0b\u52a8\u6001\u8c03\u6574<\/li>\n<li>\u4e3e\u4e2a\u6817\u5b50\uff1a\n<ul>\n<li>\u6709\u4e00\u4e2a\u4e8c\u7ef4\u7684\u51fd\u6570$y=x^2$\uff0c\u5176\u5bfc\u6570\u5c31\u662f$y\u2019=2x$\uff0c\u76ee\u7684\u662f\u6c42\u6700\u5c0f\u503c\u7684\u70b9<\/li>\n<li>\u521d\u59cb\u70b9\u4e3a(4,16)\uff0c\u5b66\u4e60\u7387\u4e3a0.25\uff0c\u4e00\u6b21\u8fed\u4ee3\u5f97\u5230$w_{new}=4-0.25*(2*4)=2$\uff0c\u65b0\u7684\u70b9\u4e3a(2,4)<\/li>\n<li>\u7ee7\u7eed\uff1a$w_{new}=2-0.25*(2*2)=2$\uff0c\u65b0\u7684\u70b9\u4e3a(1,1)<\/li>\n<li>\u7ee7\u7eed\uff1a$w_{new}=1-0.25*(2*1)=0.5$\uff0c\u65b0\u7684\u70b9\u4e3a(0.5,0.25)<\/li>\n<li>\u7ee7\u7eed\uff1a$w_{new}=0.5-0.25*(2*0.5)=0.25$\uff0c\u65b0\u7684\u70b9\u4e3a(0.25,0.0625)<\/li>\n<li>\u91cd\u590d\u4e0d\u65ad\u5730\u903c\u8fd1(0,0)<\/li>\n<li>\u5bf9\u4e8e\u66f4\u9ad8\u7ef4\u5ea6\u7684\uff0c\u65e0\u975e\u5c31\u662f\u5bf9\u6bcf\u4e2a\u53c2\u6570\u6c42\u504f\u5bfc\uff0c\u7136\u540e\u5bf9\u5e94\u76f8\u51cf\u561b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2.\u4e09\u4e2a\u91cd\u8981\u6982\u5ff5<\/h4>\n<ul>\n<li>Epoch\uff1a\u6307\u7684\u662f\u5bf9\u6574\u4e2a\u6a21\u578b\u5b8c\u6210\u4e00\u6b21\u5b66\u4e60\uff0c\u79f0\u4e3a\u4e00\u4e2aEpoch\n<ul>\n<li>\u4ee5\u8bfb\u4e66\u4e3e\u4f8b\uff0c\u8868\u793a\u5c06\u4e00\u672c\u4e66\u8bfb\u5b8c\uff0c\u591a\u4e2aEpoch\u5c31\u8868\u793a\u53cd\u590d\u8bfb\u8fd9\u672c\u4e66\u591a\u6b21<\/li>\n<\/ul>\n<\/li>\n<li>Batch\uff1a\u6307\u7684\u662f\u5bf9\u4e00\u4e2a\u5b50\u6570\u636e\u96c6\u5b8c\u6210\u4e00\u6b21\u5b66\u4e60\uff0c\u79f0\u4e3a\u4e00\u4e2aBatch\n<ul>\n<li>\u4ee5\u8bfb\u4e66\u4e3e\u4f8b\uff0c\u8868\u793a\u4e00\u672c\u4e66\u6211\u6bcf\u6b21\u8bfb10\u9875\uff0c\u8fd910\u9875\u8bfb\u5b8c\u5c31\u5b8c\u6210\u4e00\u4e2aBatch\uff0c\u591a\u4e2aBatch\u5c31\u8868\u793a\u591a\u6b21\u8bfb10\u9875\u76f4\u5230\u628a\u4e66\u8bfb\u5b8c\u5457<\/li>\n<li>Batch\u7684\u6570\u91cf\uff0c\u5e94\u8be5\u662f\u6574\u4e2a\u6a21\u578b\u7684\u5927\u5c0f\u9664\u4ee5Batch\u7684\u5927\u5c0f\uff0c\u4e5f\u5c31\u662f\u6bcf\u6b21\u8bfb10\u9875\uff0c\u8981\u591a\u5c11\u6b21\u80fd\u8bfb\u5b8c\uff0c\u5f53\u7136\u6700\u540e\u4e00\u6b21\u5982\u679c\u5c0f\u4e8e10\u9875\u4e5f\u9700\u8981\u8bfb\u4e00\u6b21<\/li>\n<\/ul>\n<\/li>\n<li>Iteration\uff1a\u6307\u7684\u662f\u4f7f\u7528\u4e00\u4e2a\u5b50\u6570\u636e\u96c6\u5bf9\u53c2\u6570\u5b8c\u6210\u4e00\u6b21\u66f4\u65b0\uff0c\u79f0\u4e3a\u4e00\u4e2aIteraiton\n<ul>\n<li>\u4ee5\u8bfb\u4e66\u4e3e\u4f8b\uff0c\u6211\u5728\u8bfb\u4e66\u4e4b\u524d\u5bf9\u6574\u672c\u4e66\u505a\u4e00\u4e2a\u7b14\u8bb0\uff0c\u7136\u540e\u6bcf\u8bfb10\u9875\u6709\u4e86\u65b0\u7684\u4e86\u89e3\uff0c\u5c31\u5bf9\u8fd9\u4e2a\u7b14\u8bb0\u8fdb\u884c\u66f4\u6539\uff0cInteration\u7684\u4e2a\u6570\u4e0eBatch\u76f8\u540c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>3.\u591a\u79cd\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5<\/h4>\n<p>\u4e0d\u540c\u7684\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\u7684\u6839\u672c\u533a\u522b\u5c31\u5728\u4e8eBatch\u7684\u5927\u5c0f\u4e0d\u540c\uff0c\u4e5f\u5c31\u662f\u6bcf\u6b21\u8bfb\u7684\u9875\u6570\u4e0d\u540c<\/p>\n<ul>\n<li>BGD\uff1aBatch\u7684\u5927\u5c0f\u662f\u6574\u4e2a\u6837\u672c\uff0c\u4e5f\u5c31\u662f\u6bcf\u6b21\u6211\u90fd\u5c06\u4e66\u8bfb\u5b8c<\/li>\n<li>SGD\uff1aBatch\u7684\u5927\u5c0f\u662f\u4e00\u4e2a\u6837\u672c\uff0c\u4e5f\u5c31\u662f\u6bcf\u6b21\u6211\u90fd\u53ea\u8bfb\u4e00\u9875<\/li>\n<li>Mini-Batch\uff1aBatch\u7684\u5927\u5c0f\u662f\u6307\u5b9a\u7684\u4e00\u4e2a\u6570\uff0c\u5c31\u8bb0\u4e3an\u5427\uff0c\u4e5f\u5c31\u662f\u6bcf\u6b21\u6211\u90fd\u8bfbn\u9875<\/li>\n<\/ul>\n<h4>4.\u524d\u5411\u4f20\u64ad\u548c\u53cd\u5411\u4f20\u64ad\u7684\u6982\u5ff5<\/h4>\n<ul>\n<li>\u524d\u5411\u4f20\u64ad\uff1a\u6307\u7684\u662f\u6309\u7167\u8f93\u5165\u5c42\u2013\u9690\u85cf\u5c42\u2013\u8f93\u51fa\u5c42\u7684\u987a\u5e8f\u8fdb\u884c\u4f20\u64ad\uff0c\u9010\u5c42\u8fd0\u7b97\u4e4b\u540e\u5f97\u5230\u9884\u6d4b\u503c<\/li>\n<li>\u53cd\u5411\u4f20\u64ad\uff1a\u5f97\u5230\u524d\u5411\u4f20\u64ad\u7684\u9884\u6d4b\u503c\u4e4b\u540e\uff0c\u4e0e\u771f\u5b9e\u503c\u4e4b\u95f4\u7684\u5dee\u5f02\u7ed3\u5408\u5f97\u5230\u635f\u5931\u51fd\u6570\uff0c\u7531\u635f\u5931\u51fd\u6570\u53cd\u5411\u5730\u6c42\u5404\u4e2a\u53c2\u6570\u7684\u504f\u5bfc\uff0c\u5c31\u662f\u53cd\u5411\u4f20\u64ad<\/li>\n<\/ul>\n<h4>5.\u53cd\u5411\u4f20\u64ad\u7b97\u6cd5<\/h4>\n<p>BP\u7b97\u6cd5\uff0c\u53c8\u79f0\u4e3a\u8bef\u5dee\u53cd\u5411\u4f20\u64ad\u7b97\u6cd5\uff0c\u7528\u4e8e\u6c42\u89e3\u6a21\u578b\u7684\u53c2\u6570\u68af\u5ea6\uff0c\u4ece\u800c\u4f7f\u7528\u68af\u5ea6\u4e0b\u964d\u6cd5\u66f4\u65b0\u6a21\u578b\u53c2\u6570\uff1a<\/p>\n<ul>\n<li>\u901a\u8fc7\u6b63\u5411\u4f20\u64ad\u5f97\u5230\u9884\u6d4b\u503c\uff0c\u901a\u8fc7\u635f\u5931\u51fd\u6570\u8ba1\u7b97\u9884\u6d4b\u503c\u548c\u771f\u5b9e\u503c\u4e4b\u95f4\u7684\u8bef\u5dee<\/li>\n<li>\u901a\u8fc7\u53cd\u5411\u4f20\u64ad\u5c06\u8bef\u5dee\u4f20\u9012\u7ed9\u7f51\u7edc\u4e2d\u7684\u795e\u7ecf\u5143\uff0c\u5bf9\u795e\u7ecf\u5143\u7684\u53c2\u6570\u8fdb\u884c\u8c03\u6574\uff0c\u4ece\u800c\u7f29\u5c0f\u8bef\u5dee<\/li>\n<\/ul>\n<p>\u4e3e\u4e2a\u6817\u5b50\uff1a<\/p>\n<pre><code class=\"language-mermaid\">graph LR\nid0(&quot;\u8f93\u5165\uff1a\u4e24\u4e2a\u7279\u5f81&quot;)--&gt;id1(\u795e\u7ecf\u5143A)\nid0--&gt;id2(\u795e\u7ecf\u5143B)\nid1--&gt;id3(\u795e\u7ecf\u5143C)\nid1--&gt;id4(\u795e\u7ecf\u5143D)\nid2--&gt;id3\nid2--&gt;id4\nid3--&gt;id5(\u8f93\u51fa)\nid4--&gt;id5\n<\/code><\/pre>\n<ul>\n<li>\n<p>\u5047\u8bbe\uff1a<\/p>\n<ul>\n<li>\u8f93\u5165\uff1ai\u3001j<\/li>\n<li>\u4e0b\u5217\u8fd0\u7b97\u51fd\u6570\u4e2d\uff0cx\u4e3a\u81ea\u53d8\u91cf\uff0ck\u4e3a\u504f\u7f6e\u662f\u5e38\u6570\uff0cx\u7684\u7cfb\u6570a,b,c,d\u4e3a\u6743\u91cd\uff0c\u4e5f\u5c31\u662f\u8981\u66f4\u65b0\u7684\u53c2\u6570<\/li>\n<li>\u795e\u7ecf\u5143A\uff1a\u8fd0\u7b97\u51fd\u6570$O_1=a_1 x_1+a_2 x_2+k_{1}$<\/li>\n<li>\u795e\u7ecf\u5143B\uff1a\u8fd0\u7b97\u51fd\u6570$O_2=b_1 x_1+b_2 x_2+k_{2}$<\/li>\n<li>\u795e\u7ecf\u5143C\uff1a\u8fd0\u7b97\u51fd\u6570$O_3=c_1 x_1+c_2 x_2+k_{3}$<\/li>\n<li>\u795e\u7ecf\u5143D\uff1a\u8fd0\u7b97\u51fd\u6570$O_4=d_1 x_1+d_2 x_2+k_{4}$<\/li>\n<li>\u5047\u8bbe\u6240\u6709\u795e\u7ecf\u5143\u7684\u6fc0\u6d3b\u51fd\u6570\u662fsigmoid,\u4f8b\u5982\u795e\u7ecf\u5143A\u7684\u8f93\u51fa\u7ed3\u679c$O_1$\u4f1a\u7ecf\u8fc7\u6fc0\u6d3b\u51fd\u6570sigmoid\uff0c\u6709$M_1=sigmoid(O_1)$\u4f5c\u4e3a\u8be5\u795e\u7ecf\u5143\u6700\u7ec8\u7684\u8f93\u51fa\u7ed3\u679c<\/li>\n<li>\u5047\u8bbe\u6700\u7ec8\u635f\u5931\u51fd\u6570\u4e3a\u5e73\u65b9\u635f\u5931\uff0c\u7528L\u8868\u793a<\/li>\n<li>\u771f\u5b9e\u503c\u5206\u522b\u4e3a$t_1$\u548c $t_2$\uff0c\u4e3a\u5e38\u6570<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u8fc7\u7a0b\uff1a<\/p>\n<ul>\n<li>\n<p>\u6b63\u5411\u4f20\u64ad\uff1a<\/p>\n<ul>\n<li>i\u548cj\u4f20\u5165\u795e\u7ecf\u5143A\u548cB\uff0c\u8f93\u51fa$M_1$\u548c$M_2$<\/li>\n<li>$M_1$\u548c$M_2$\u4f5c\u4e3a\u65b0\u7684\u8f93\u5165\u503c\uff0c\u4f20\u5165\u795e\u7ecf\u5143C\u548cD\uff0c\u8f93\u51fa$M_3$\u548c$M_4$<\/li>\n<li>\u56e0\u4e3a\u540e\u7eed\u6ca1\u6709\u5176\u4ed6\u795e\u7ecf\u5143\uff0c\u5219$M_3$\u548c$M_4$\u4e3a\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\uff0c\u4e5f\u5c31\u662f\u9884\u6d4b\u503c<\/li>\n<li>\u8ba1\u7b97\u635f\u5931\u51fd\u6570$L=\\frac12((M_3-t_1)^2+(M_4-t2)^2)$<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u53cd\u5411\u4f20\u64ad\uff1a<\/p>\n<ul>\n<li>\u6211\u4eec\u7684\u76ee\u7684\u662f\u4f7f\u5f97L\u7684\u503c\u6700\u5c0f\uff0c\u65b9\u5f0f\u662f\u901a\u8fc7\u4fee\u6539\u53c2\u6570a\uff0cb\uff0cc\uff0cd<\/li>\n<li>\u4f8b\u5982\u66f4\u65b0\u795e\u7ecf\u5143C\u4e2d\u7684$c_1$\uff1a\n<ul>\n<li>\u5c06$c_1$\u89c6\u4e3a\u81ea\u53d8\u91cf\uff0c\u7528\u635f\u5931\u51fd\u6570L\u5bf9$c_1$\u6c42\u5bfc<\/li>\n<li>\u5206\u6790\u4e00\u4e0b\uff0cL\u662f$M_3$\u548c$M_4$\u7684\u51fd\u6570\uff0c\u5176\u4e2d$M_4$\u4e0e$c_1$\u65e0\u5173\uff0c\u6c42\u5bfc\u540e\u662f0\uff1b\u800c$M_3$\u4e0e$c_1$\u6709\u5173<\/li>\n<li>$M_3$\u662f$O_3$\u7684\u51fd\u6570\uff0c$O_3$\u662f$c_1$\u7684\u51fd\u6570<\/li>\n<li>\u90a3\u4e48\u672c\u8d28\u4e0a\uff0c\u4eceL\u5230$c_1$\u662f\u4e00\u4e2a\u590d\u5408\u51fd\u6570\u6c42\u5bfc\uff0c\u4f7f\u7528\u94fe\u5f0f\u6cd5\u5219<\/li>\n<li>$\\frac{\\partial L}{\\partial c_1}=\\frac{\\partial L}{\\partial M_3}\\frac{\\partial M_3}{\\partial O_3}\\frac{\\partial O_3}{\\partial c_1}$<\/li>\n<li>\u7531\u6b64\u6c42\u5f97$c_1$\u7684\u68af\u5ea6\uff0c\u4f7f\u7528\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\u66f4\u65b0$C_1$\u5373\u53ef<\/li>\n<\/ul>\n<\/li>\n<li>\u5176\u4ed6\u795e\u7ecf\u5143\u548c\u53c2\u6570\u7684\u5904\u7406\u540c\u7406\uff0c\u672c\u8d28\u4e0a\u5c31\u662f\u8fdb\u884c\u590d\u5408\u51fd\u6570\u6c42\u5bfc<\/li>\n<li>\u9700\u8981\u6ce8\u610f\u7684\u662f\u5728\u6c42\u795e\u7ecf\u5143A\u548c\u795e\u7ecf\u5143B\u7684\u53c2\u6570\u65f6\uff0c\u8981\u8003\u8651\u5230\u5176\u7ed3\u679c\u662f\u4f5c\u4e3a\u8f93\u5165\u4f20\u5165\u795e\u7ecf\u5143C\u548cD\u7684\uff0c\u56e0\u6b64$M_3$\u548c$M_4$\u5747\u4e0e\u4e4b\u76f8\u5173<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">import torch\nimport torch.nn as nn\nimport torch.optim as optim\n\n#\u81ea\u5b9a\u4e49\u7f51\u7edc\u7c7b\u9700\u8981\u7ee7\u627f\u7236\u7c7bnn.Module\nclass Net(nn.Module):\n    def __init__(self):\n        super(Net,self).__init__()\n        self.linear_1 = nn.Linear(in_features=2,out_features=2)#\u795e\u7ecf\u5143A\u548cB\n        self.linear_2 = nn.Linear(in_features=2,out_features=2)#\u795e\u7ecf\u5143C\u548cD\n\n        #\u67e5\u770b\u9ed8\u8ba4\u7684\u53c2\u6570\n        print(self.linear_1.weight.data,self.linear_1.bias.data)#\u795e\u7ecf\u5143A\u548cB\u7684\u53c2\u6570\u548c\u504f\u7f6e\n        print(self.linear_2.weight.data,self.linear_2.bias.data)#\u795e\u7ecf\u5143C\u548cD\u7684\u53c2\u6570\u548c\u504f\u7f6e\n        print(&quot;-&quot;*10)\n\n    #\u8fdb\u884c\u6b63\u5411\u4f20\u64ad\u7684\u51fd\u6570\n    def forward(self,x):\n        #\u7b2c\u4e00\u5c42\n        x=self.linear_1(x)#\u7ecf\u8fc7\u7b2c\u4e00\u5c42\u5f97\u5230\u8f93\u51fa\n        x=torch.sigmoid(x)#\u7ecf\u8fc7sigmoid\u5f97\u5230\u6700\u7ec8\u8f93\u51fa\n        #\u7b2c\u4e8c\u5c42\n        x=self.linear_2(x)\n        x=torch.sigmoid(x)\n\n        #\u8fd4\u56de\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\uff1a\u9884\u6d4b\u503c\n        return x\n\n\n#\u6a21\u62df\u4e00\u6b21\u53cd\u5411\u4f20\u64ad\ndef test():\n    #\u8f93\u5165\u6570\u636e\uff0c\u4e8c\u7ef4\u5217\u8868\u8868\u793a\u4e00\u6279\u6570\u636e\n    inputs = torch.tensor([[1,2]],dtype=torch.float)\n    #\u771f\u5b9e\u503c\n    target = torch.tensor([[2,5]],dtype=torch.float)\n    #\u521d\u59cb\u5316\u7f51\u7edc\u5bf9\u8c61\n    net = Net()\n    #\u5f97\u5230\u9884\u6d4b\u503c\n    output = net(inputs)#\u56e0\u4e3a\u7236\u7c7b\u4e2d\u5b9e\u73b0\u4e86__call__\u65b9\u6cd5\uff0c\u9ed8\u8ba4\u8c03\u7528\u4e86Net\u4e2d\u7684forward\u51fd\u6570\n    print(f&quot;\u9884\u6d4b\u503c:{output}&quot;)#\u6253\u5370\u9884\u6d4b\u503c\n    #\u8ba1\u7b97\u8bef\u5dee\uff1a\u4f7f\u7528\u5e73\u65b9\u8bef\u5dee\n    loss = torch.sum((output-target)**2) \/ 2\n    print(f&quot;\u635f\u5931\u503c:{loss}&quot;)\n    #\u6784\u5efa\u4f18\u5316\u5668\n    optimizer = optim.SGD(net.parameters(),lr=0.5)\n    #\u68af\u5ea6\u6e05\u96f6\n    optimizer.zero_grad()\n    #\u53cd\u5411\u4f20\u64ad\n    loss.backward()#\u76f8\u5f53\u4e8e\u5bf9\u6240\u6709\u53c2\u6570\u6c42\u5bfc\uff0c\u5f97\u5230\u68af\u5ea6\u503c\n    #\u53c2\u6570\u66f4\u65b0\n    optimizer.step()#\u4f7f\u7528\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\u66f4\u65b0\u53c2\u6570\n    \n    #\u6253\u5370\u6bcf\u4e2a\u53c2\u6570\u7684\u68af\u5ea6\n    print(net.linear_1.weight.grad.data)\n    print(net.linear_2.weight.grad.data)\n    print(&quot;-&quot;*10)\n    #\u66f4\u65b0\u540e\u7684\u53c2\u6570\u503c\n    print(net.linear_1.weight.data, net.linear_1.bias.data)  # \u795e\u7ecf\u5143A\u548cB\u7684\u53c2\u6570\u548c\u504f\u7f6e\n    print(net.linear_2.weight.data, net.linear_2.bias.data)  # \u795e\u7ecf\u5143C\u548cD\u7684\u53c2\u6570\u548c\u504f\u7f6e\n\n\n\nif __name__ == '__main__':\n    test()\n<\/code><\/pre>\n<h3>\uff08\u4e94\uff09\u4f18\u5316\u65b9\u6cd5<\/h3>\n<h4>1.\u73b0\u8c61<\/h4>\n<p>\u5bf9\u4e8e\u4f20\u7edf\u7684\u68af\u5ea6\u4e0b\u964d\u7b97\u6cd5\uff0c\u53ef\u80fd\u4f1a\u9047\u5230\uff1a<\/p>\n<ul>\n<li>\u68af\u5ea6\u503c\u8fc7\u5c0f\uff0c\u5bfc\u81f4\u53c2\u6570\u66f4\u65b0\u7f13\u6162<\/li>\n<li>\u78b0\u5230\u978d\u70b9\u6216\u5c40\u90e8\u6700\u5c0f\u503c\uff0c\u53c2\u6570\u65e0\u6cd5\u7ee7\u7eed\u66f4\u65b0<\/li>\n<\/ul>\n<h4>2.\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747<\/h4>\n<ul>\n<li>\n<p>\u4e00\u4e9b\u6982\u5ff5\u524d\u63d0\uff1a<\/p>\n<ul>\n<li>\n<p>\u7b97\u672f\u5e73\u5747\uff1a\u6307\u7684\u662f\u6240\u6709\u6570\u62e5\u6709\u76f8\u540c\u7684\u6743\u91cd\uff0c\u7b80\u5355\u76f8\u52a0\u4e4b\u540e\u9664\u4ee5\u4e2a\u6570\uff0c\u5f97\u5230\u7684\u5c31\u662f\u7b97\u672f\u5e73\u5747<\/p>\n<\/li>\n<li>\n<p>\u52a0\u6743\u5e73\u5747\uff1a\u6307\u7684\u662f\u4e3a\u6bcf\u4e2a\u6570\u8d4b\u4e88\u4e00\u5b9a\u6743\u91cd\uff0c\u6bcf\u4e2a\u6570\u4e58\u4ee5\u6743\u91cd\u518d\u76f8\u52a0\uff0c\u9664\u4ee5\u4e2a\u6570\u5f97\u5230\u52a0\u6743\u5e73\u5747<\/p>\n<\/li>\n<li>\n<p>\u79fb\u52a8\u5e73\u5747\uff1a\u6307\u7684\u662f\u6307\u5b9a\u4e00\u4e2a\u6570\u503cn\uff0c\u8ba1\u7b97\u90bb\u8fd1\u7684n\u4e2a\u6570\uff0c\u5f97\u5230\u79fb\u52a8\u5e73\u5747<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u7ed3\u5408\u4e0a\u9762\u7684\u6982\u5ff5\u6211\u4eec\u5f97\u5230\uff1a<\/p>\n<ul>\n<li>\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747\uff1a\u6839\u636e\u8ddd\u79bb\u7684\u8fdc\u8fd1\u8d4b\u4e88\u6570\u4e0d\u540c\u7684\u6743\u91cd\uff0c\u4e00\u822c\u6765\u8bf4\u8ddd\u79bb\u8d8a\u8fd1\u6743\u91cd\u8d8a\u5927\uff0c\u7531\u6b64\u5f97\u5230\u7684\u52a0\u6743\u5e73\u5747\u6570\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3a\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>$$\nS_n=\\begin{cases}V_n\uff0c\u5f53n=0\u65f6 \\ \\beta S_{n-1}+(1-\\beta)V_n\uff0c\u5f53n\\neq0\u65f6\\end{cases}\n$$<\/p>\n<ul>\n<li>\u5176\u4e2dS\u662f\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747\u503c<\/li>\n<li>n\u8868\u793a\u8ddd\u79bb<\/li>\n<li>$\\beta$\u8868\u793a\u8c03\u8282\u6743\u91cd\uff0c\u8d8a\u5927\u5219\u5e73\u5747\u6570\u8d8a\u5e73\u7f13<\/li>\n<\/ul>\n<p>\u968f\u673a\u751f\u6210\u7684\u4f8b\u5b50\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.zxlearning.space\/wp-content\/uploads\/2025\/09\/%D6%B8%EF%BF%BD%EF%BF%BD%EF%BF%BD%C6%B6%EF%BF%BD%EF%BF%BD%EF%BF%BD%C8%A8%C6%BD%EF%BF%BD%EF%BF%BD.png\" alt=\"\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747\"><\/p>\n<pre><code class=\"language-python\">import torch\nimport matplotlib.pyplot as plt\n\n#\u6307\u6570\u52a0\u6743\u5e73\u5747\ndef test01():\n    _, axes = plt.subplots(1, 3)\n\n\n    torch.manual_seed(0)\n    #\u968f\u673a\u4ea7\u751f20\u4e2a\u6570\n    noise = torch.randint(0,50,size=[20,],dtype=torch.float)\n    print(noise)\n    \n    distance = torch.arange(1,21,1)\n    print(distance)\n    axes[0].scatter(distance,noise)\n\n    #\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747\n    beta=0.9\n    exp_weight_avg = []\n    for idx,temp in enumerate(noise,1):\n        if idx==1:\n            exp_weight_avg.append(temp)\n            continue\n        new_temp = exp_weight_avg[idx-2]*beta+(1-beta)*temp\n        exp_weight_avg.append(new_temp)\n    #\u7ed8\u5236\n    axes[1].plot(distance,exp_weight_avg)\n    axes[1].set_title(&quot;beta=0.9&quot;)\n\n    #\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747\n    beta=0.5\n    exp_weight_avg = []\n    for idx,temp in enumerate(noise,1):\n        if idx==1:\n            exp_weight_avg.append(temp)\n            continue\n        new_temp = exp_weight_avg[idx-2]*beta+(1-beta)*temp\n        exp_weight_avg.append(new_temp)\n    #\u7ed8\u5236\n    axes[2].plot(distance,exp_weight_avg)\n    axes[2].set_title(&quot;beta=0.5&quot;)\n\n    plt.show()\n<\/code><\/pre>\n<h4>3.Momentum<\/h4>\n<ul>\n<li>\n<p>\u5f53\u53c2\u6570\u51fa\u73b0\u66f4\u65b0\u7f13\u6162\u6216\u65e0\u6cd5\u66f4\u65b0\u7684\u60c5\u51b5\u65f6\uff0cMomentum\u901a\u8fc7\u6307\u6570\u52a0\u6743\u5e73\u5747\u6cd5\uff0c\u7d2f\u8ba1\u5386\u53f2\u7684\u68af\u5ea6\u503c\u5bf9\u53c2\u6570\u8fdb\u884c\u66f4\u65b0\uff0c\u53ef\u4ee5\u4f18\u5316\u68af\u5ea6\uff0c<\/p>\n<\/li>\n<li>\n<p>\u52a8\u91cf\u9879\u7684\u8ba1\u7b97\u65b9\u6cd5\uff1a\n$$\nv_t=\\beta <em>v_{t-1}+\\eta<\/em>L(w_t)\n$$<\/p>\n<ul>\n<li>$v_{t-1}$\uff1a\u8868\u793a\u7b2ct\u6b21\u8fed\u4ee3\u7684\u52a8\u91cf\u9879<\/li>\n<li>$w_t$\uff1a\u8868\u793a\u5f53\u524d\u53c2\u6570<\/li>\n<li>$L(w_t)$\uff1a\u8868\u793a\u5f53\u524d\u53c2\u6570\u7684\u68af\u5ea6\u503c<\/li>\n<li>$\\beta$\uff1a\u8868\u793a\u6743\u91cd\u7cfb\u6570\uff0c\u4e00\u822c\u53d60.9<\/li>\n<li>$\\eta$\uff1a\u8868\u793a\u5b66\u4e60\u7387<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u53c2\u6570\u7684\u66f4\u65b0\u65b9\u6cd5\uff1a\n$$\nw_{t+1}=w_t-v_{t+1}\n$$<\/p>\n<\/li>\n<li>\n<p>\u4e3e\u4e2a\u6817\u5b50\uff1a<\/p>\n<ul>\n<li>\u5047\u8bbe\u6743\u91cd$\\beta = 0.9$\uff0c\u53d6\u5b66\u4e60\u7387\u4e3a0.1,\u521d\u59cb\u5316\u52a8\u91cf\u9879$v_0=0$<\/li>\n<li>\u7b2c\u4e00\u6b21\u68af\u5ea6\u503c\uff1a\u52a8\u91cf\u9879$v_1=0.9<em>v_0+0.1<\/em>L(w_0)$\uff0c\u66f4\u65b0\u53c2\u6570$w_1=w_0-v_1$<\/li>\n<li>\u7b2c\u4e8c\u6b21\u68af\u5ea6\u503c\uff1a\u52a8\u91cf\u9879$v_2=0.9<em>v_1+0.1<\/em>L(w_1)$\uff0c\u66f4\u65b0\u53c2\u6570$w_2=w_1-v_2$<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u6ce8\u610f\uff1aMomentum\u5e76\u6ca1\u6709\u5bf9\u5b66\u4e60\u7387\u8fdb\u884c\u4f18\u5316<\/p>\n<\/li>\n<\/ul>\n<h4>4.AdaGrad<\/h4>\n<ul>\n<li>\n<p>AdaGrad\u5bf9\u4e0d\u540c\u7684\u53c2\u6570\u5206\u91cf\u4f7f\u7528\u4e0d\u540c\u7684\u5b66\u4e60\u7387\uff0c\u5176\u5b66\u4e60\u7387\u603b\u4f53\u4e0a\u4f1a\u9010\u6e10\u51cf\u5c0f<\/p>\n<\/li>\n<li>\n<p>\u5b66\u4e60\u7387\u8ba1\u7b97\u516c\u5f0f\uff1a\n$$\n\\eta^*=\\frac{\\eta}{\\sqrt{s}+\\epsilon}\n$$<\/p>\n<ul>\n<li>$\\eta$\uff1a\u5b66\u4e60\u7387<\/li>\n<li>$g$\uff1a\u8868\u793a\u5f53\u524d\u7684\u68af\u5ea6<\/li>\n<li>$s$\uff1a\u8868\u793a\u7d2f\u8ba1\u7684\u5e73\u65b9\u68af\u5ea6\uff0c$s_t=s_{t-1}+g_{t-1}\\odot g_{t-1}$\uff0c\u5176\u4e2d$\\odot$\u8868\u793a\u963f\u8fbe\u739b\u79ef<\/li>\n<li>$\\epsilon$\uff1a\u8868\u793a\u4e00\u4e2a\u5c0f\u5e38\u6570\uff0c\u7528\u4e8e\u907f\u514d\u5206\u6bcd\u4e3a0\u7684\u60c5\u51b5\uff0c\u901a\u5e38\u53d6\u975e\u5e38\u5c0f\u7684\u6570\uff0c\u4f8b\u5982$1^{-9}$<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u53c2\u6570\u66f4\u65b0\u516c\u5f0f\uff1a\n$$\nw_{t+1}=w_t-\\eta^*g_{t+1}\n$$<\/p>\n<\/li>\n<li>\n<p>\u6ce8\u610f\uff1aAdaGrad\u53ef\u80fd\u5bfc\u81f4\u5b66\u4e60\u7387\u8fc7\u65e9\u964d\u4f4e\u5230\u4e00\u4e2a\u8f83\u5c0f\u503c\uff0c\u5bfc\u81f4\u6a21\u578b\u8bad\u7ec3\u540e\u671f\u5b66\u4e60\u7387\u8f83\u5c0f\uff0c\u4e0d\u6613\u627e\u5230\u6700\u4f18\u89e3<\/p>\n<\/li>\n<\/ul>\n<h4>5.RMSProp<\/h4>\n<ul>\n<li>\n<p>RMSProp\u662f\u5bf9AdaGrad\u7684\u4f18\u5316\uff0c\u5176\u4f7f\u7528\u6307\u6570\u79fb\u52a8\u52a0\u6743\u5e73\u5747\u68af\u5ea6\u66ff\u4ee3\u4e86\u5386\u53f2\u68af\u5ea6\u5e73\u65b9\u548c\uff0c\u4e5f\u5c31\u662f\u66f4\u6539\u4e86s\u7684\u6c42\u6cd5<\/p>\n<\/li>\n<li>\n<p>\u5b66\u4e60\u7387\u8ba1\u7b97\u516c\u5f0f\uff1a\n$$\n\\eta^*=\\frac{\\eta}{\\sqrt{s}+\\epsilon}\n$$<\/p>\n<ul>\n<li>$\\eta$\uff1a\u5b66\u4e60\u7387<\/li>\n<li>$g$\uff1a\u8868\u793a\u5f53\u524d\u7684\u68af\u5ea6<\/li>\n<li>$s$\uff1a\u8868\u793a\u7d2f\u8ba1\u7684\u5e73\u65b9\u68af\u5ea6\uff0c$$s_t=\\beta s_{t-1}+(1-\\beta)g_{t-1}\\odot g_{t-1}$$\uff0c\u5176\u4e2d$\\odot$\u8868\u793a\u963f\u8fbe\u739b\u79ef<\/li>\n<li>$\\epsilon$\uff1a\u8868\u793a\u4e00\u4e2a\u5c0f\u5e38\u6570\uff0c\u7528\u4e8e\u907f\u514d\u5206\u6bcd\u4e3a0\u7684\u60c5\u51b5\uff0c\u901a\u5e38\u53d6\u975e\u5e38\u5c0f\u7684\u6570\uff0c\u4f8b\u5982$1^{-9}$<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u53c2\u6570\u66f4\u65b0\u516c\u5f0f\uff1a\n$$\nw_{t+1}=w_t-\\eta^*g_{t+1}\n$$<\/p>\n<\/li>\n<\/ul>\n<h4>6.Adam<\/h4>\n<ul>\n<li>Adam\u662f\u5bf9Momentum\u548cRMSProp\u7684\u7efc\u5408\uff0c\u540c\u65f6\u4f7f\u7528\u79fb\u52a8\u52a0\u6743\u5e73\u5747\u7684\u68af\u5ea6\u548c\u79fb\u52a8\u52a0\u6743\u5e73\u5747\u7684\u5b66\u4e60\u7387<\/li>\n<\/ul>\n<h3>\uff08\u516d\uff09\u6b63\u5219\u5316<\/h3>\n<h4>1.\u4f5c\u7528<\/h4>\n<ul>\n<li>\u6b63\u5219\u5316\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u7f13\u89e3\u8fc7\u62df\u5408<\/li>\n<\/ul>\n<h4>2.Dropout\u5c42<\/h4>\n<ul>\n<li>Dropout\u901a\u8fc7\u51cf\u5c11\u795e\u7ecf\u5143\u4e4b\u95f4\u7684\u8fde\u63a5\uff0c\u8fbe\u5230\u964d\u4f4e\u7f51\u7edc\u590d\u6742\u5ea6\u7684\u76ee\u7684<\/li>\n<li>\u6211\u4eec\u5bf9Dropout\u8bbe\u7f6e\u4e00\u4e2a\u6982\u7387p\uff0c\u8868\u793a\u4e22\u5f03\u7684\u6982\u7387\uff0c\u4e5f\u5c31\u662f\u5c06\u5f20\u91cf\u5143\u7d20\u8bbe\u7f6e\u4e3a0<\/li>\n<li>\u4e3a\u4e86\u6821\u6b63\u5f20\u91cf\u5143\u7d20\u8bbe\u7f6e\u4e3a0\u5e26\u6765\u7684\u5f71\u54cd\uff0c\u4f1a\u5bf9\u975e0\u5143\u7d20\u8fdb\u884c\u7f29\u653e\uff0c\u7f29\u653e\u6bd4\u4f8b\u4e3a$\\frac{1}{1-p}$<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    #\u521d\u59cb\u5316Dropout\u5bf9\u8c61\n    &quot;&quot;&quot;\n    nn.Dropout\n    \u662f\u4e00\u4e2a\u7c7b\uff0c\u4f5c\u7528\u662f\u968f\u673a\u4e22\u5f03\u795e\u7ecf\u5143\uff0c\u53ef\u4ee5\u4f20\u5165\u53c2\u6570p\n    :param p:\u8868\u793a\u4e22\u5f03\u795e\u7ecf\u5143\u7684\u6982\u7387\uff0c\u9ed8\u8ba4\u4e3a0.5\n    &quot;&quot;&quot;\n    dropout = nn.Dropout(p=0.8)\n    #\u521d\u59cb\u5316\u968f\u673a\u6570\u636e\n    data = torch.randint(0,10,size=[8,8],dtype=torch.float)\n    print(data)\n    #\u5c06data\u6570\u636e\u7ecf\u8fc7Dropout\u4e22\u5f03\n    out = dropout(data)\n    print(out)#\u89c2\u5bdf\u7ed3\u679c\u4f1a\u53d1\u73b0\u51fa\u73b0\u5927\u91cf\u76840\uff0c\u8868\u793a\u795e\u7ecf\u5143\u88ab\u4e22\u5f03\n<\/code><\/pre>\n<h3>\uff08\u4e03\uff09\u6279\u91cf\u5f52\u4e00\u5316<\/h3>\n<h4>1.\u4f5c\u7528<\/h4>\n<ul>\n<li>Batch Normalization\uff08\u6279\u91cf\u5f52\u4e00\u5316\uff0c\u7b80\u5199\u4e3aBN\uff09\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u63a7\u5236\u6570\u636e\u7684\u5206\u5e03\uff0c\u4ece\u800c\u52a0\u5feb\u7f51\u7edc\u7684\u6536\u655b\n<ul>\n<li>\u56e0\u4e3a\u6211\u4eec\u5728\u8f93\u5165\u6570\u636e\u7684\u65f6\u5019\uff0c\u901a\u5e38\u662f\u5206\u591a\u4e2aBatch\u7684\uff0c\u6bcf\u4e2aBatch\u5185\u7684\u6570\u636e\u53ef\u80fd\u662f\u6ee1\u8db3\u4e0d\u540c\u5206\u5e03\u7684<\/li>\n<li>\u4f8b\u5982\u6211\u4eec\u5c06\u7b2c\u4e00\u6279\u6570\u636e\u6ee1\u8db3\u7684\u5206\u5e03\u79f0\u4e3aa\uff0c\u7b2c\u4e8c\u6279\u6570\u636e\u6ee1\u8db3\u7684\u5206\u5e03\u79f0\u4e3ab<\/li>\n<li>\u5f53\u7b2c\u4e00\u6279\u6570\u636e\u8fdb\u5165\u7f51\u7edc\u65f6\uff0c\u6a21\u578b\u53c2\u6570\u4f1a\u8fdb\u884c\u8c03\u6574\u4ee5\u9002\u5e94a\u5206\u5e03<\/li>\n<li>\u5f53\u7b2c\u4e8c\u6279\u6570\u636e\u8fdb\u5165\u7f51\u7edc\u65f6\uff0c\u6a21\u578b\u53c2\u6570\u4f1a\u8fdb\u884c\u8c03\u6574\u4ee5\u9002\u5e94b\u5206\u5e03<\/li>\n<li>\u8fd9\u5c31\u610f\u5473\u7740\uff0c\u7f51\u7edc\u7684\u53c2\u6570\u4f1a\u8fdb\u884c\u8f83\u5927\u5e45\u5ea6\u7684\u8c03\u6574\uff0c\u4e0d\u5229\u4e8e\u7f51\u7edc\u7684\u6536\u655b<\/li>\n<li>\u6b64\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7BN\u5bf9\u6570\u636e\u8fdb\u884c\u6807\u51c6\u5316\uff0c\u4f7f\u5176\u5206\u5e03\u76f8\u5bf9\u7a33\u5b9a\u4e00\u4e9b\uff0c\u4ece\u800c\u52a0\u5feb\u7f51\u7edc\u6536\u655b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2.\u516c\u5f0f<\/h4>\n<p>$$\nf(x)=\\gamma\\frac{x-E(x)}{\\sqrt{Var(x)+\\epsilon}}+\\beta\n$$<\/p>\n<ul>\n<li>$\\gamma$\u3001$\\beta$\uff1a\u53ef\u5b66\u4e60\u53c2\u6570\uff0c\u76f8\u5f53\u4e8e\u5bf9\u6807\u51c6\u5316\u4e4b\u540e\u7684\u503c\u505a\u4e00\u4e2a\u7ebf\u6027\u53d8\u6362<\/li>\n<li>$\\epsilon$\uff1a\u8868\u793a\u4e00\u4e2a\u5c0f\u5e38\u6570\uff0c\u7528\u4e8e\u907f\u514d\u5206\u6bcd\u4e3a0\u7684\u60c5\u51b5\uff0c\u901a\u5e38\u53d6\u975e\u5e38\u5c0f\u7684\u6570\uff0c\u4f8b\u5982$1^{-9}$<\/li>\n<li>$E(x)$\uff1a\u8868\u793a\u53d8\u91cf\u7684\u5747\u503c\uff0c\u4f7f\u7528\u7684\u662f\u79fb\u52a8\u52a0\u6743\u65b9\u6cd5<\/li>\n<li>$Var(x)$\uff1b\u8868\u793a\u53d8\u91cf\u7684\u65b9\u5dee\uff0c\u4f7f\u7528\u7684\u662f\u79fb\u52a8\u52a0\u6743\u65b9\u6cd5<\/li>\n<\/ul>\n<h4>3.API<\/h4>\n<pre><code class=\"language-python\">    #\u968f\u673a\u751f\u6210\u6570\u636e\n    &quot;&quot;&quot;\n    \u751f\u6210\u7684\u5f62\u72b6\u662f[batch_size,channel,height,width]\n    batch_size\uff1a\u8be5\u6279\u6b21\u4e2d\u6709\u51e0\u4e2a\u6837\u672c\n    channel\uff1a\u901a\u9053\u6570\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u6709\u51e0\u4e2a\u7279\u5f81\n    height\uff1a\u9ad8\uff0c\u4e5f\u5c31\u662f\u884c\u6570\n    width\uff1a\u5bbd\uff0c\u4e5f\u5c31\u662f\u5217\u6570\n    &quot;&quot;&quot;\n    inputs  = torch.randint(0,10,[1,3,5,5],dtype=torch.float)\n    print(inputs)\n    print(&quot;-&quot;*50)\n    #\u521b\u5efaBN\u5bf9\u8c61\n    &quot;&quot;&quot;\n    nn.BatchNorm2d()\n    :param num_features:\u8868\u793a\u901a\u9053\u6570\n    :param affine:\u8868\u793a\u662f\u5426\u643a\u5e26\u5b66\u4e60\u53c2\u6570\uff0c\u82e5\u4e3a\u5426\uff0c\u90a3\u4e48gamma\u548cbeta\u5206\u522b\u4e3a1\u548c0\n    :param momentum:\u8c03\u8282\u79fb\u52a8\u52a0\u6743\u5e73\u5747\u503c\u7684\u8ba1\u7b97\uff0c\u8fd9\u4e2a\u7528\u4e8e\u63a7\u5236\u8ba1\u7b97\u5747\u503c\u548c\u65b9\u5dee\n    :param eps:\u8868\u793a\u5c0f\u5e38\u6570\n    &quot;&quot;&quot;\n    bn = nn.BatchNorm2d(num_features=3,affine=False,momentum=0.1,eps=1e-6)\n    output = bn(inputs)\n    print(output)\n<\/code><\/pre>\n<h2>\u4e09\u3001\u5377\u79ef\u795e\u7ecf\u7f51\u7edc<\/h2>\n<h3>\uff08\u4e00\uff09\u5377\u79ef\u795e\u7ecf\u7f51\u7edc\u7b80\u4ecb<\/h3>\n<ul>\n<li>\u5377\u79ef\u795e\u7ecf\u7f51\u7edc\u662f\u6df1\u5ea6\u5b66\u4e60\u5728\u8ba1\u7b97\u673a\u89c6\u89c9\u9886\u57df\u7684\u91cd\u8981\u6210\u679c\uff0c\u662f\u542b\u6709\u5377\u79ef\u5c42\u7684\u795e\u7ecf\u7f51\u7edc\uff0c\u5377\u79ef\u5c42\u7684\u4f5c\u7528\u662f\u7528\u4e8e\u81ea\u52a8\u5b66\u4e60\u548c\u63d0\u53d6\u56fe\u50cf\u7684\u7279\u5f81<\/li>\n<li>\u6211\u4eec\u4e4b\u524d\u4e86\u89e3\u5230\u7684\u5168\u8fde\u63a5\u795e\u7ecf\u7f51\u7edc\uff0c\u5bf9\u4e8e\u56fe\u50cf\u7684\u5904\u7406\u8ba1\u7b97\u5f00\u9500\u5927\uff0c\u4e14\u96be\u4ee5\u4fdd\u7559\u56fe\u50cf\u7684\u7279\u5f81\uff0c\u51c6\u786e\u7387\u4f4e<\/li>\n<li>\u5377\u79ef\u795e\u7ecf\u7f51\u7edc\u7531\u4e09\u90e8\u5206\u7ec4\u6210\uff1a\n<ul>\n<li>\u5377\u79ef\u5c42\uff1a\u7528\u4e8e\u63d0\u53d6\u56fe\u50cf\u4e2d\u7684\u5c40\u90e8\u7279\u5f81<\/li>\n<li>\u6c60\u5316\u5c42\uff1a\u7528\u4e8e\u964d\u4f4e\u53c2\u6570\u7684\u7ef4\u5ea6<\/li>\n<li>\u5168\u8fde\u63a5\u5c42\uff1a\u7528\u4e8e\u8f93\u51fa\u60f3\u8981\u7684\u7ed3\u679c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\uff08\u4e8c\uff09\u56fe\u50cf\u7684\u57fa\u672c\u77e5\u8bc6<\/h3>\n<h4>1.\u50cf\u7d20<\/h4>\n<ul>\n<li>\n<p>\u50cf\u7d20\uff1a\u56fe\u50cf\u7531\u50cf\u7d20\u70b9\u7ec4\u6210\uff0c\u6bcf\u4e2a\u50cf\u7d20\u70b9\u7684\u8303\u56f4\u662f[0,255]\uff0c\u50cf\u7d20\u70b9\u8d8a\u5927\u8868\u793a\u8be5\u70b9\u8d8a\u4eae<\/p>\n<ul>\n<li>\n<p>\u6ce8\u610f\uff0c\u4ec5\u6709\u50cf\u7d20\u7684\u56fe\u7247\u662f\u9ed1\u767d\u7684<\/p>\n<pre><code class=\"language-python\">    #\u521b\u5efa\u4e86\u4e00\u4e2a200*200\u7684\u50cf\u7d20\u503c\u5168\u4e3a0\u7684\u56fe\u50cf\n    img = np.zeros([200,200])\n    &quot;&quot;&quot;\n    plt.imshow()\n    :param:\u4f20\u5165\u50cf\u7d20\u70b9\u7684\u53d6\u503c\n    :param cmap:\u7528\u4e8e\u6620\u5c04\u6807\u91cf\u6570\u636e\u5230\u989c\u8272\uff0c\u9ed8\u8ba4\u503c\u4e3a'viridis'\uff0c\u82e5\u4f20\u5165\u7684\u662fRGB\u7c7b\u578b\u5219\u5ffd\u7565\u6b64\u53c2\u6570\n    :param vmin:\u5f53\u4f7f\u7528\u6807\u91cf\u6570\u636e\u4e14\u6ca1\u6709\u663e\u5f0f\u8303\u6570\u65f6\uff0cvmin \u548c vmax \u5b9a\u4e49\u989c\u8272\u56fe\u6db5\u76d6\u7684\u6570\u636e\u8303\u56f4 \n    &quot;&quot;&quot;\n    plt.imshow(img,cmap=&quot;gray&quot;,vmin=0)\n    plt.show()\n\n    #200*200\u50cf\u7d20\u503c\u5168\u4e3a1\u7684\u56fe\u50cf\n    img = np.ones([200,200])\n    plt.imshow(img,cmap=&quot;gray&quot;,vmin=0)\n    plt.show()\n\n    #\u968f\u673a\u7684200*200\n    img = np.random.randint(0,256,size=[200,200])\n    plt.imshow(img, cmap=&quot;gray&quot;, vmin=0)\n    plt.show()\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2.\u901a\u9053<\/h4>\n<ul>\n<li>\n<p>\u901a\u9053\uff1a\u4e00\u822c\u6765\u8bf4\uff0c\u5f69\u8272\u56fe\u7247\u662f\u7531\u591a\u5f20\u56fe\u7247\u53e0\u52a0\u800c\u6210\u7684\uff0c\u901a\u9053\u5c31\u662f\u8bf4\u7531\u54ea\u4e9b\u56fe\u7247\u53e0\u52a0\u800c\u6210<\/p>\n<ul>\n<li>\n<p>RGB\u901a\u9053\uff1a\u56fe\u50cf\u7531R\u3001G\u3001B\u4e09\u4e2a\u901a\u9053\u53e0\u52a0\u800c\u6210\uff0c\u5206\u522b\u8868\u793a\u7ea2\u8272\u3001\u7eff\u8272\u3001\u84dd\u8272<\/p>\n<\/li>\n<li>\n<p>RGBA\u901a\u9053\uff1a\u76f8\u6bd4\u4e0eRGB\u901a\u9053\u591a\u6dfb\u52a0\u4e86\u4e00\u4e2aA\u901a\u9053\uff0c\u8868\u793a\u900f\u660e\u5ea6\uff0c\u5176\u503c\u8d8a\u5c0f\uff0c\u56fe\u50cf\u8d8a\u900f\u660e<\/p>\n<pre><code class=\"language-python\">    &quot;&quot;&quot;\n    plt.imread()\n    \u7528\u4e8e\u8bfb\u53d6\u56fe\u7247\u4fe1\u606f\n    :param:\u56fe\u7247\u5730\u5740\n    :return:ndarray\u7c7b\u578b\u7684\u6570\u503c\n    \u5f97\u5230\u7684ndarray\uff0c\u4f8b\u5982(1080, 1920, 3)\n    \u7b2c\u4e00\u4e2a\u7ef4\u6570\u8868\u793a\u9ad8\u5ea6\u4e0a\u6709\u591a\u5c11\u50cf\u7d20\u70b9\uff0c\u5373\u9ad8\u5ea6\u4e0a\u67091080\u4e2a\u50cf\u7d20\u70b9\n    \u7b2c\u4e8c\u4e2a\u7ef4\u6570\u8868\u793a\u5bbd\u5ea6\u4e0a\u6709\u591a\u5c11\u50cf\u7d20\u70b9\uff0c\u5373\u5bbd\u5ea6\u4e0a\u67091920\u4e2a\u50cf\u7d20\u70b9\n    \u7b2c\u4e09\u4e2a\u7ef4\u6570\u8868\u793a\u6709\u591a\u5c11\u901a\u9053\uff0c\u5373JPG\u683c\u5f0f\u67093\u4e2a\u901a\u9053\uff08RGB\uff09\uff0cPNG\u683c\u5f0f\u4e00\u822c\u67094\u4e2a\u901a\u9053\uff08RGBA\uff09\n    &quot;&quot;&quot;\n    img = plt.imread(&quot;data\/001.jpg&quot;)\n    img = np.transpose(img,[2,0,1])#\u5c06\u901a\u9053\u6570\u653e\u5230\u7b2c\u4e00\u4e2a\u7ef4\u6570\u4e0a\uff0c\u65b9\u4fbf\u540e\u7eed\u904d\u5386\n    for channel in img: #\u5c55\u793a\u6bcf\u4e2a\u901a\u9053\u7684\u56fe\u7247\n        print(channel)\n        plt.imshow(channel)\n        plt.show()\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\uff08\u4e09\uff09\u5377\u79ef\u5c42<\/h3>\n<h4>1.\u5377\u79ef\u8ba1\u7b97<\/h4>\n<ul>\n<li>\u5377\u79ef\u8ba1\u7b97\uff1a\u662f\u6307\u901a\u8fc7\u4e00\u4e2a\u5377\u79ef\u6838\uff08\u4e5f\u79f0\u4e3a\u6ee4\u6ce2\u5668\uff09\uff0c\u5bf9\u539f\u6709\u56fe\u50cf\u8fdb\u884c\u8ba1\u7b97\uff0c\u5f97\u5230\u7279\u5f81\u56fe<\/li>\n<li>\u8fc7\u7a0b\uff1a\n<ul>\n<li>\u5047\u8bbe\u4e00\u5f20\u56fe\u7247\u7684\u5927\u5c0f\u662f100*100\u7684\uff0c\u4e5f\u5c31\u662f\u4e00\u4e2a100\u884c\u3001100\u5217\u7684\u4e00\u4e2a\u77e9\u9635\uff0c\u8bb0\u4e3aA\u77e9\u9635<\/li>\n<li>\u5377\u79ef\u6838\u4e5f\u662f\u4e00\u4e2a\u77e9\u9635\uff0c\u4e00\u822c\u662f\u9700\u8981\u5b66\u4e60\u7684\uff0c\u6211\u4eec\u5047\u8bbe\u5b83\u662f5*5\u7684\uff0c\u4e5f\u5c31\u662f\u4e00\u4e2a5\u884c\u30015\u5217\u7684\u77e9\u9635\uff0c\u8bb0\u4e3aB\u77e9\u9635<\/li>\n<li>\u6211\u4eec\u4eceA\u77e9\u9635\u7684\u5de6\u4e0a\u89d2\u5f00\u59cb\uff0c\u5c06B\u77e9\u9635\u6309\u5de6\u4e0a\u89d2\u5bf9\u9f50\u7684\u65b9\u5f0f\u653e\u7f6e\u5230A\u77e9\u9635\u4e0a\uff0c\u90a3\u4e48\u4f1a\u67095\u884c\u30015\u5217\u7684\u5143\u7d20\u91cd\u5408\u5bf9\u5e94<\/li>\n<li>\u6211\u4eec\u5c06\u5bf9\u5e94\u5143\u7d20\u4f5c\u963f\u8fbe\u739b\u79ef\uff0c\u7136\u540e\u76f8\u52a0\u7684\u5f97\u5230\u4e00\u4e2a\u6570\uff0c\u4f5c\u4e3a\u7279\u5f81\u56fe\u7684\u7b2c1\u884c\u7b2c1\u5217\u7684\u5143\u7d20\u503c<\/li>\n<li>\u7136\u540e\uff0c\u6211\u4eec\u5c06\u5377\u79ef\u6838\u6c34\u5e73\u53f3\u79fb\u4e00\u4f4d\uff0c\u7ee7\u7eed\u4f5c\u963f\u8fbe\u739b\u79ef\u6c42\u548c\uff0c\u4f5c\u4e3a\u7279\u5f81\u56fe\u7684\u7b2c1\u884c\u7b2c2\u5217\u7684\u5143\u7d20\u503c<\/li>\n<li>\u4ee5\u6b64\u7c7b\u63a8\uff0c\u76f4\u5230\u5377\u79ef\u6838\u7684\u6700\u53f3\u4fa7\u4e0eA\u77e9\u9635\u7684\u6700\u53f3\u4fa7\u91cd\u5408\uff0c\u5f97\u5230\u7279\u5f81\u56fe\u7b2c1\u884c\u5168\u90e8\u6570\u503c<\/li>\n<li>\u968f\u540e\uff0c\u6211\u4eec\u5c06\u5377\u79ef\u6838\u6c34\u5e73\u5e73\u79fb\u56de\u5230\u6700\u5de6\u4fa7\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u4e0b\u79fb\u4e00\u4f4d\uff0c\u9010\u6b65\u53f3\u79fb\u7ee7\u7eed\u8ba1\u7b97\u7279\u5f81\u56fe\u7b2c2\u884c\u7684\u6570\u503c<\/li>\n<li>\u4ee5\u6b64\u7c7b\u63a8\uff0c\u76f4\u5230\u5377\u79ef\u6838\u4e0eA\u77e9\u9635\u7684\u53f3\u4e0b\u89d2\u91cd\u5408\uff0c\u5f97\u5230\u7279\u5f81\u56fe\u7684\u5168\u90e8\u6570\u503c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2.Padding<\/h4>\n<ul>\n<li>\n<p>\u901a\u8fc7\u4e0a\u8ff0\u7684\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u6211\u4eec\u53ef\u4ee5\u53d1\u73b0\uff0c\u7ecf\u8fc7\u8ba1\u7b97\u4e4b\u540e\u7684\u7279\u5f81\u56fe\u6bd4\u539f\u56fe\u7684\u5c3a\u5bf8\u8981\u5c0f<\/p>\n<\/li>\n<li>\n<p>\u5982\u679c\u6211\u4eec\u60f3\u8981\u5f97\u5230\u4e00\u4e2a\u4e0e\u539f\u56fe\u5c3a\u5bf8\u76f8\u540c\u7684\u7279\u5f81\u56fe\uff0c\u5c31\u53ef\u4ee5\u5728\u539f\u56fe\u5468\u56f4\u6dfb\u52a0Padding<\/p>\n<\/li>\n<li>\n<p>\u6240\u8c13\u7684Padding\uff0c\u5c31\u662f\u5bf9\u539f\u56fe\u7684\u4e00\u4e2a\u6269\u5c55\uff0c\u4e5f\u5c31\u662f\u5728\u77e9\u9635\u5468\u56f4\u6dfb\u52a0n\u5708\u5143\u7d20\uff0cn\u5c31\u662fPadding\u7684\u503c<\/p>\n<ul>\n<li>\u4f8b\u5982\uff1a\uff08\u5176\u4e2d\u76840\u662f\u4ee3\u8868\u4e00\u4e2a\u5143\u7d20\uff0c\u6ca1\u6709\u5177\u4f53\u503c\u7684\u542b\u4e49\uff09\n$$\n\\left[\\begin{matrix}0&amp;0&amp;0\\0&amp;0&amp;0\\0&amp;0&amp;0 \\end{matrix}\\right] \\to Padding=1 \\to \\left[\\begin{matrix}0&amp;0&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;0&amp;0\\end{matrix}\\right]\n$$<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>3.Stride<\/h4>\n<ul>\n<li>\u518d\u8003\u8651\u4e0a\u9762\u7684\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u6211\u4eec\u4e00\u76f4\u662f\u901a\u8fc7\u53f3\u79fb\u548c\u4e0b\u79fb1\u4f4d\u6765\u5f97\u5230\u7279\u5f81\u56fe\u7684<\/li>\n<li>\u5b9e\u9645\u4e0a\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u4e00\u6b21\u53f3\u79fb\u548c\u4e0b\u79fb\u591a\u4f4d\u6765\u5f97\u5230\u7279\u5f81\u56fe\uff0c\u79fb\u52a8\u7684\u4f4d\u6570\u6211\u4eec\u79f0\u4e4b\u4e3a\u6b65\u957f\uff0c\u4e5f\u5c31\u662fStride<\/li>\n<li>\u6ce8\u610f\uff1aStride\u80fd\u591f\u5f71\u54cd\u8ba1\u7b97\u7684\u6b21\u6570\uff0c\u4ee5\u53ca\u6700\u7ec8\u5f97\u5230\u7684\u7279\u5f81\u56fe\u7684\u5c3a\u5bf8<\/li>\n<\/ul>\n<h4>4.\u591a\u901a\u9053\u5377\u79ef\u8ba1\u7b97<\/h4>\n<ul>\n<li>\u5b9e\u9645\u4f7f\u7528\u65f6\uff0c\u6211\u4eec\u9047\u5230\u7684\u56fe\u50cf\u5927\u591a\u6570\u662f\u591a\u901a\u9053\u7684<\/li>\n<li>\u5bf9\u4e8e\u591a\u901a\u9053\u7684\u60c5\u51b5\uff0c\u8fdb\u884c\u5377\u79ef\u8ba1\u7b97\u7684\u8fc7\u7a0b\u4e5f\u5dee\u4e0d\u591a\uff1a\n<ul>\n<li>\u6211\u4eec\u9700\u8981\u4e3a\u6bcf\u4e00\u4e2a\u901a\u9053\u63d0\u4f9b\u4e00\u4e2a\u5bf9\u5e94\u7684\u5377\u79ef\u6838<\/li>\n<li>\u5bf9\u6bcf\u4e00\u4e2a\u901a\u9053\uff0c\u4f7f\u7528\u5bf9\u5e94\u7684\u5377\u79ef\u6838\u6309\u7167\u5377\u79ef\u8ba1\u7b97\u7684\u8fc7\u7a0b\u5f97\u5230\u5bf9\u5e94\u7684\u7279\u5f81\u56fe\u77e9\u9635<\/li>\n<li>\u6700\u540e\u5c06\u5f97\u5230\u7684\u6240\u6709\u7279\u5f81\u56fe\u77e9\u9635\u6309\u77e9\u9635\u65b9\u5f0f\u76f8\u52a0\uff0c\u5f97\u5230\u6700\u7ec8\u7684\u7279\u5f81\u56fe\u77e9\u9635\n<ul>\n<li>\u5f53\u7136\uff0c\u8fd9\u4e2a\u6548\u679c\u53ef\u4ee5\u7b49\u4ef7\u4e3a\u6bcf\u8ba1\u7b97\u5b8c\u4e00\u4e2a\u5bf9\u5e94\u4f4d\u7f6e\u5c31\u76f8\u52a0\uff0c\u53ef\u4ee5\u8282\u7701\u4e00\u70b9\u5b58\u50a8\u7a7a\u95f4<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>5.\u591a\u5377\u79ef\u6838\u5377\u79ef\u8ba1\u7b97<\/h4>\n<ul>\n<li>\u5bf9\u4e8e\u6bcf\u4e00\u4e2a\u5377\u79ef\u6838\uff0c\u6211\u4eec\u7406\u89e3\u4e3a\u4e00\u79cd\u7406\u89e3\u56fe\u50cf\u7684\u89d2\u5ea6<\/li>\n<li>\u90a3\u4e48\uff0c\u5bf9\u4e8e\u540c\u4e00\u4e2a\u56fe\u50cf\uff0c\u6211\u4eec\u662f\u53ef\u4ee5\u901a\u8fc7\u591a\u4e2a\u89d2\u5ea6\u6765\u5206\u6790\u56fe\u50cf\u7684\uff0c\u4e5f\u5c31\u662f\u53ef\u4ee5\u4f7f\u7528\u591a\u4e2a\u5377\u79ef\u6838\u8fdb\u884c\u5377\u79ef\u8ba1\u7b97<\/li>\n<li>\u591a\u5377\u79ef\u6838\u5377\u79ef\u8ba1\u7b97\u7684\u8fc7\u7a0b\uff1a\n<ul>\n<li>\u4f8b\u5982\uff0c\u5bf9\u4e8e\u4e00\u4e2a\u56fe\u50cf\uff0c\u6211\u4eec\u6709\u4e24\u4e2a\u5377\u79ef\u6838<\/li>\n<li>\u6211\u4eec\u5206\u522b\u7528\u4e24\u4e2a\u5377\u79ef\u6838\u4e0e\u56fe\u50cf\u505a\u5377\u79ef\u8ba1\u7b97\uff0c\u5f97\u5230\u4e24\u4e2a\u7279\u5f81\u56fe<\/li>\n<li>\u6211\u4eec\u5c06\u4e24\u4e2a\u7279\u5f81\u56fe\u89c6\u4e3a\u4e00\u4e2a\u56fe\u50cf\u7684\u4e24\u4e2a\u901a\u9053\uff0c\u5f62\u6210\u4e00\u4e2a\u7ed3\u679c\uff08\u4e00\u822c\u6765\u8bf4\uff0c\u6211\u4eec\u4f1a\u5c06\u8fd9\u4e2a\u7ed3\u679c\u9001\u5230\u4e0b\u4e00\u4e2a\u5377\u79ef\u5c42\uff09<\/li>\n<\/ul>\n<\/li>\n<li>\u5bf9\u4e8e\u591a\u901a\u9053\u7684\u539f\u56fe\uff0c\u8fc7\u7a0b\u662f\u7c7b\u4f3c\u7684\uff1a\n<ul>\n<li>\u6211\u4eec\u5148\u63d0\u4f9b\u591a\u4e2a\u5bf9\u5e94\u7684\u5377\u79ef\u6838\u7ec4<\/li>\n<li>\u6bcf\u4e00\u4e2a\u5377\u79ef\u6838\u7ec4\u4e0e\u539f\u56fe\u6309\u7167\u591a\u901a\u9053\u5377\u79ef\u8ba1\u7b97\u7684\u89c4\u5219\u5f97\u5230\u4e00\u4e2a\u7279\u5f81\u56fe<\/li>\n<li>\u6700\u540e\u6211\u4eec\u5c06\u6240\u6709\u5f97\u5230\u7684\u7279\u5f81\u56fe\u4f5c\u4e3a\u4e00\u4e2a\u56fe\u5f62\u7684\u591a\u4e2a\u901a\u9053\uff0c\u5f62\u6210\u7ed3\u679c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>6.\u7279\u5f81\u56fe\u5927\u5c0f<\/h4>\n<ul>\n<li>\n<p>\u6211\u4eec\u77e5\u9053\uff0c\u7279\u5f81\u56fe\u7684\u5927\u5c0f\u4e0e\u4e00\u4e0b\u53c2\u6570\u76f8\u5173\uff1a<\/p>\n<ul>\n<li>size\uff1a\u5377\u79ef\u6838\u7684\u5c3a\u5bf8\uff0c\u4e00\u822c\u90fd\u662f\u5947\u6570\u7684\u65b9\u9635<\/li>\n<li>Padding\uff1a\u586b\u5145\u7684\u5708\u6570<\/li>\n<li>Stride\uff1a\u6b65\u957f<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u8bbe\u539f\u56fe\u5927\u5c0f\u4e3a$W<em>W$\uff0c\u5377\u79ef\u6838\u5927\u5c0f\u4e3a$F<\/em>F$,Padding=P\uff0cStride=S\uff0c\u7279\u5f81\u56fe\u5927\u5c0f\u4e3a$N*N$\uff0c\u90a3\u4e48\uff1a\n$$\nN=\\frac{W+2P-F}{S}+1\n$$<\/p>\n<ul>\n<li>\u5148\u8003\u8651\u586b\u5145\u60c5\u51b5\uff0c\u586b\u5145\u540e\u7684\u56fe\u50cf\u5c3a\u5bf8\u4e3a$(W+2P)*(W+2P)$<\/li>\n<li>\u5377\u79ef\u6838\u53f3\u79fb\u548c\u4e0b\u79fb\u7684\u957f\u5ea6\u5c31\u662f$(W+2P)-F$\uff0c\u601d\u8003\u5377\u79ef\u6838\u53f3\u4fa7\uff08\u4e0b\u4fa7\uff09\u4e0e\u586b\u5145\u56fe\u7684\u53f3\u4fa7\uff08\u4e0b\u4fa7\uff09\u91cd\u5408\u79fb\u52a8\u7684\u8ddd\u79bb<\/li>\n<li>\u7528\u8fd9\u4e2a\u8ddd\u79bb\u9664\u4ee5\u5377\u79ef\u6838\u4e00\u6b21\u79fb\u52a8\u7684\u6b65\u957f\uff0c\u5c31\u662f\u79fb\u52a8\u65f6\u5355\u4e2a\u65b9\u5411\u7684\u8ba1\u7b97\u6b21\u6570\uff0c\u6211\u4eec\u77e5\u9053\u6bcf\u6b21\u8ba1\u7b97\u5f62\u6210\u7279\u5f81\u56fe\u7684\u4e00\u4e2a\u5143\u7d20\uff0c\u4e5f\u5c31\u662f$\\frac{W+2P-F}{S}$<\/li>\n<li>\u522b\u5fd8\u4e86\uff0c\u5377\u79ef\u6838\u7b2c\u4e00\u6b21\u91cd\u5408\u65f6\u4e5f\u8fdb\u884c\u4e86\u4e00\u6b21\u8ba1\u7b97\uff0c\u4e5f\u5c31\u662f\u79fb\u52a8\u4e4b\u524d\u6211\u4eec\u4e5f\u8fdb\u884c\u4e86\u4e00\u6b21\u8ba1\u7b97\uff0c\u56e0\u6b64\u9700\u8981\u52a01<\/li>\n<li>\u6700\u7ec8\u5f97\u5230\u7279\u5f81\u56fe\u7684\u5927\u5c0f\u5c31\u662f$N=\\frac{W+2P-F}{S}+1$<\/li>\n<li>\u5bf9\u4e8e\u4e0d\u662f\u65b9\u9635\u7684\u539f\u56fe\uff0c\u5206\u522b\u8ba1\u7b97\u957f\u5bbd\u5373\u53ef<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>7.API<\/h4>\n<ul>\n<li>\n<p>\u5377\u79ef\u5c42\u5bf9\u4e8e\u8f93\u5165\u7684\u6570\u636e\u6709\u5f62\u72b6\u8981\u6c42\uff1a(BatchSize,Channel,Height,Width)<\/p>\n<ul>\n<li>BatchSize\uff1a\u6279\u6b21<\/li>\n<li>Channel\uff1a\u901a\u9053\u6570<\/li>\n<li>Height\uff1a\u9ad8\u5ea6<\/li>\n<li>Width\uff1a\u5bbd\u5ea6<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u5355\u4e2a\u5377\u79ef\u6838<\/p>\n<pre><code class=\"language-python\">    #\u8bfb\u53d6\u56fe\u50cf\n    img = plt.imread(&quot;data\/001.jpg&quot;)\n    print(img.shape)\n    #\u521b\u5efa\u5377\u79ef\u6838\n    &quot;&quot;&quot;\n    nn.Conv2d()\n    \u5e38\u7528\u4e8e\u56fe\u50cf\u5904\u7406\n    :param in_channels:\u8f93\u5165\u56fe\u50cf\u7684\u901a\u9053\u6570\n    :param out_channels:\u8f93\u51fa\u7279\u5f81\u56fe\u7684\u901a\u9053\u6570\uff0c\u4e5f\u662f\u5377\u79ef\u6838\u7ec4\u7684\u6570\u91cf\n    :param kernel_size:\u5377\u79ef\u6838\u5c3a\u5bf8\n    :param stride:\u6b65\u957f\n    :param padding:\u586b\u5145\u6570\n    &quot;&quot;&quot;\n    conv = nn.Conv2d(in_channels=3,out_channels=1,kernel_size=3,stride=1,padding=0)\n\n    #\u5904\u7406\u8f93\u5165\u6570\u636e\uff0c\u4f7f\u5176\u6ee1\u8db3\u5377\u79ef\u5c42\u8981\u6c42\n    img = torch.tensor(img,dtype=torch.float32).permute(2,0,1)\n    #\u56e0\u4e3a\u53ea\u6709\u4e00\u4e2a\u6279\u6b21\uff0c\u76f4\u63a5\u5728\u6279\u6b21\u5904\u586b1\u5373\u53ef\n    img = img.unsqueeze(0)\n    print(img.shape)\n\n    #\u4f20\u5165\u5377\u79ef\u5c42\u5904\u7406\n    img = conv(img)\n    print(img)\n\n    #\u663e\u793a\u5904\u7406\u540e\u7684\u56fe\u50cf\n    img = img.squeeze(0).permute(1,2,0) #\u5c06\u56fe\u50cf\u7684\u683c\u5f0f\u6539\u56de(Height,Width,Channel)\n    plt.imshow(img.detach().numpy())\n    plt.show()\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u591a\u4e2a\u5377\u79ef\u6838<\/p>\n<pre><code class=\"language-python\">    #\u8bfb\u53d6\u56fe\u50cf\n    img = plt.imread(&quot;data\/001.jpg&quot;)\n    #\u521b\u5efa\u5377\u79ef\u6838\n    conv = nn.Conv2d(in_channels=3, out_channels=3, kernel_size=3, stride=1, padding=0) #out_channels\u6539\u4e00\u4e0b\u5c31\u884c\n    #\u5904\u7406\u8f93\u5165\u6570\u636e\uff0c\u4f7f\u5176\u6ee1\u8db3\u5377\u79ef\u5c42\u8981\u6c42\n    img = torch.tensor(img,dtype=torch.float32).permute(2,0,1)\n    #\u56e0\u4e3a\u53ea\u6709\u4e00\u4e2a\u6279\u6b21\uff0c\u76f4\u63a5\u5728\u6279\u6b21\u5904\u586b1\u5373\u53ef\n    img = img.unsqueeze(0)\n    #\u4f20\u5165\u5377\u79ef\u5c42\u5904\u7406\n    img = conv(img)\n    #\u663e\u793a\u5904\u7406\u540e\u7684\u56fe\u50cf\n    img = img.squeeze(0).permute(1,2,0) #\u5c06\u56fe\u50cf\u7684\u683c\u5f0f\u6539\u56de(Height,Width,Channel)\n    #\u591a\u901a\u9053\u7684\u56fe\u50cf\u8981\u5206\u901a\u9053\u5c55\u793a\n    plt.imshow(img[:,:,0].detach().numpy())\n    plt.show()\n    plt.imshow(img[:, :, 1].detach().numpy())\n    plt.show()\n    plt.imshow(img[:, :, 2].detach().numpy())\n    plt.show()\n\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>\uff08\u56db\uff09\u6c60\u5316\u5c42<\/h3>\n<h4>1.\u6c60\u5316\u8ba1\u7b97<\/h4>\n<ul>\n<li>\u6c60\u5316\u8ba1\u7b97\uff1a\n<ul>\n<li>\u4e0e\u5377\u79ef\u5c42\u7c7b\u4f3c\uff0c\u6211\u4eec\u4f1a\u6709\u4e00\u4e2a\u6c60\u5316\u6838\uff0c\u4e5f\u662f\u77e9\u9635\uff0c\u4e00\u822c\u6765\u8bf4\uff0c\u6c60\u5316\u6838\u7684\u8ba1\u7b97\u662f\u56fa\u5b9a\u7684\uff0c\u4e5f\u5c31\u662f\u4e0d\u8fdb\u884c\u5b66\u4e60<\/li>\n<li>\u6211\u4eec\u901a\u8fc7\u4e0e\u5377\u79ef\u6838\u4e00\u6837\u7684\u64cd\u4f5c\uff0c\u79fb\u52a8\u6c60\u5316\u6838\uff0c\u6309\u7167\u4e00\u5b9a\u7684\u89c4\u5219\u8fdb\u884c\u8ba1\u7b97\u5f97\u51fa\u6570\u503c<\/li>\n<\/ul>\n<\/li>\n<li>\u8ba1\u7b97\u89c4\u5219\uff1a\n<ul>\n<li>\u6700\u5927\u6c60\u5316\uff1a\u6bcf\u6b21\u9009\u62e9\u6c60\u5316\u6838\u8303\u56f4\u5185\u6700\u5927\u7684\u6570\u503c<\/li>\n<li>\u5e73\u5747\u6c60\u5316\uff1a\u6bcf\u6b21\u8ba1\u7b97\u6c60\u5316\u6838\u8303\u56f4\u5185\u6570\u636e\u7684\u5747\u503c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2.Stride\u548cPadding<\/h4>\n<ul>\n<li>\u4e0e\u5377\u79ef\u5c42\u7684Stride\u76f8\u540c\uff0c\u6307\u7684\u662f\u6b65\u957f<\/li>\n<li>\u4e0e\u5377\u79ef\u5c42\u7684Padding\u76f8\u540c\uff0c\u6307\u7684\u662f\u586b\u5145\u5708\u6570\uff0c\u4e00\u822c\u9ed8\u8ba4\u8fdb\u884c\u586b\u5145\u7684\u5143\u7d20\u4e3a0<\/li>\n<\/ul>\n<h4>3.\u591a\u901a\u9053\u6c60\u5316\u8ba1\u7b97<\/h4>\n<ul>\n<li>\u5bf9\u4e8e\u591a\u901a\u9053\u6570\u636e\uff0c\u6c60\u5316\u8ba1\u7b97\u4f1a\u5206\u522b\u5bf9\u6bcf\u4e2a\u901a\u9053\u8fdb\u884c\u6c60\u5316\u8ba1\u7b97<\/li>\n<li>\u4f46\u4e0e\u5377\u79ef\u5c42\u4e0d\u540c\uff0c\u6c60\u5316\u8ba1\u7b97\u7684\u7ed3\u679c\u4e0d\u4f1a\u8fdb\u884c\u5408\u5e76\uff0c\u4f1a\u8f93\u51fa\u4e0e\u901a\u9053\u6570\u6570\u91cf\u76f8\u540c\u7684\u591a\u4e2a\u7ed3\u679c<\/li>\n<\/ul>\n<h4>4.API<\/h4>\n<ul>\n<li>\n<p>\u5377\u79ef\u5c42\u5bf9\u4e8e\u8f93\u5165\u7684\u6570\u636e\u6709\u5f62\u72b6\u8981\u6c42\uff1a(BatchSize,Channel,Height,Width)<\/p>\n<ul>\n<li>\n<p>BatchSize\uff1a\u6279\u6b21<\/p>\n<\/li>\n<li>\n<p>Channel\uff1a\u901a\u9053\u6570<\/p>\n<\/li>\n<li>\n<p>Height\uff1a\u9ad8\u5ea6<\/p>\n<\/li>\n<li>\n<p>Width\uff1a\u5bbd\u5ea6<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u5355\u901a\u9053\u6c60\u5316<\/p>\n<pre><code class=\"language-python\">    #\u521b\u5efa\u4e86\u4e00\u4e2a3*3\u77e9\u9635\n    inputs = torch.randint(0,10,[3,3],dtype=torch.float32)\n    print(inputs)\n    #\u5904\u7406\u6570\u636e\n    inputs = inputs.unsqueeze(0).unsqueeze(0)\n\n    #1.\u6700\u5927\u6c60\u5316\n    max_pool = nn.MaxPool2d(kernel_size=2,stride=1,padding=0)\n    output = max_pool(inputs)\n    print(output)\n\n    #2.\u5e73\u5747\u6c60\u5316\n    avg_pool = nn.AvgPool2d(kernel_size=2,stride=1,padding=0)\n    output = avg_pool(inputs)\n    print(output)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u591a\u901a\u9053\u6c60\u5316<\/p>\n<pre><code class=\"language-python\">    #\u968f\u673a\u6784\u5efa\u4e86\u8f93\u5165\uff0c\u901a\u9053\u6570\u4e3a3,3*3\u7684\u77e9\u9635\u6570\u636e\n    inputs = torch.randint(0,10,size=[3,3,3],dtype=torch.float32)\n    print(inputs)\n\n    inputs.unsqueeze(0)\n\n    #1.\u6700\u5927\u6c60\u5316\n    max_pool = nn.MaxPool2d(kernel_size=2,stride=1,padding=0)\n    output = max_pool(inputs)\n    print(output)\n\n    #2.\u5e73\u5747\u6c60\u5316\n    avg_pool = nn.AvgPool2d(kernel_size=2,stride=1,padding=0)\n    output = avg_pool(inputs)\n    print(output)\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<h2>\u56db\u3001\u5faa\u73af\u795e\u7ecf\u7f51\u7edc<\/h2>\n<h3>\uff08\u4e00\uff09\u5faa\u73af\u795e\u7ecf\u7f51\u7edc\u7b80\u4ecb<\/h3>\n<ul>\n<li>\u5faa\u73af\u795e\u7ecf\u7f51\u7edc\uff0c\u53c8\u79f0RNN\u7f51\u7edc\uff0c\u4e3b\u8981\u7528\u4e8e\u81ea\u7136\u8bed\u8a00\u5904\u7406\u65b9\u5411<\/li>\n<li>\u4e3b\u8981\u7814\u7a76\u76ee\u7684\u662f\u901a\u8fc7\u8ba1\u7b97\u673a\u7b97\u6cd5\u7406\u89e3\u81ea\u7136\u8bed\u8a00<\/li>\n<\/ul>\n<h3>\uff08\u4e8c\uff09\u8bcd\u5d4c\u5165\u5c42<\/h3>\n<h4>1.\u4f5c\u7528<\/h4>\n<ul>\n<li>\u4f5c\u7528\uff1a\u5c06\u6587\u672c\u8fdb\u884c\u6570\u503c\u5316<\/li>\n<\/ul>\n<h4>2.\u4f7f\u7528\u8fc7\u7a0b<\/h4>\n<ul>\n<li>\n<p>\u8fc7\u7a0b\uff1a\u6839\u636e\u8f93\u5165\u8bcd\u7684\u6570\u91cf\u6784\u5efa\u4e00\u4e2a\u8bcd\u5411\u91cf\u77e9\u9635\uff0c\u4f8b\u5982\u53ef\u4ee5\u5bf9100\u4e2a\u8bcd\u8f6c\u6362\u4e3a100\u4e2a\u5411\u91cf\uff0c\u6bcf\u4e2a\u5411\u91cf\u6709128\u4e2a\u7279\u5f81\uff0c\u4ece\u800c\u6784\u6210$100*128$\u7684\u77e9\u9635<\/p>\n<ul>\n<li>\u5148\u5bf9\u8f93\u5165\u8bed\u6599\u8fdb\u884c\u5206\u8bcd\uff0c\u4e3a\u6bcf\u4e00\u4e2a\u8bcd\u63d0\u4f9b\u5355\u72ec\u7684\u7d22\u5f15\uff0c\u5f62\u6210\u8bcd\u8868<\/li>\n<li>\u6784\u5efa\u8bcd\u5d4c\u5165\u77e9\u9635\uff0c\u8bcd\u7d22\u5f15\u5bf9\u5e94\u7684\u5411\u91cf\u5373\u4e3a\u5176\u6570\u503c\u5316\u540e\u7684\u5411\u91cf<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u8bcd\u5d4c\u5165\u5c42\uff1a<\/p>\n<ul>\n<li>\n<p>\u8bcd\u5d4c\u5165\u5c42\u7684\u521d\u59cb\u5316\u662f\u9ed8\u8ba4\u662f\u901a\u8fc7\u5747\u503c\u4e3a0\uff0c\u6807\u51c6\u5dee\u4e3a1\u7684\u6b63\u6001\u5206\u5e03\u8fdb\u884c\u7684\uff0c\u76f8\u5f53\u4e8e\u968f\u673a\u521d\u59cb\u5316<\/p>\n<\/li>\n<li>\n<p>\u5f53\u8f93\u5165\u4e00\u4e2a\u8bcd\u65f6\uff0c\u4f1a\u4f7f\u7528\u968f\u673a\u7684\u5411\u91cf\u6765\u8868\u793a\u8be5\u8bcd<\/p>\n<\/li>\n<li>\n<p>\u8be5\u8bcd\u53c2\u4e0e\u5230\u540e\u7eed\u4efb\u52a1\uff0c\u4f1a\u4e0e\u76ee\u6807\u7ed3\u679c\u8fdb\u884c\u5bf9\u6bd4\u4ea7\u751f\u635f\u5931<\/p>\n<\/li>\n<li>\n<p>\u901a\u8fc7\u53cd\u5411\u4f20\u64ad\u6765\u66f4\u65b0\u8bcd\u5d4c\u5165\u5c42\u4e2d\u5bf9\u4e8e\u8bcd\u7684\u8868\u793a<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">    text = &quot;\u8bfb\u4e66\u4e0d\u662f\u4e3a\u4e86\u96c4\u8fa9\u548c\u9a73\u65a5\uff0c\u4e5f\u4e0d\u662f\u4e3a\u4e86\u8f7b\u4fe1\u548c\u76f2\u4ece\uff0c\u800c\u662f\u4e3a\u4e86\u601d\u8003\u548c\u6743\u8861\u3002&quot;\n\n    #1.\u5206\u8bcd\n    words = jieba.lcut(text)\n    print(words)\n    #2.\u6784\u5efa\u8bcd\u8868\n    index_to_word = {} #\u7d22\u5f15-&gt;\u5355\u8bcd\n    word_to_index = {} #\u5355\u8bcd-&gt;\u7d22\u5f15\n    #\u53bb\u91cd\n    words = list(set(words))\n    print(words)\n    #\u751f\u6210\u7d22\u5f15\n    for idx,word in enumerate(words):\n        index_to_word[idx] = word\n        word_to_index[word] = idx\n    print(index_to_word)\n    print(word_to_index)\n    #3.\u6784\u5efa\u8bcd\u5d4c\u5165\u5c42\n    &quot;&quot;&quot;\n    nn.Embedding()\n    :param num_embeddings:\u8868\u793a\u8bcd\u7684\u4e2a\u6570\uff0c\u5373\u8bcd\u5d4c\u5165\u77e9\u9635\u7684\u9ad8\u5ea6\n    :param embedding_dim:\u8868\u793a\u6bcf\u4e2a\u8bcd\u7684\u7279\u5f81\u6570\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u7ed9\u4e00\u4e2a\u6bd4\u8f83\u5927\u7684\u503c\n    :return:\u8fd4\u56deEmbedding\u5bf9\u8c61\n    &quot;&quot;&quot;\n    embed = nn.Embedding(num_embeddings=len(index_to_word),embedding_dim=5)\n    #4.\u5c06\u6587\u672c\u8f6c\u4e3a\u8bcd\u5411\u91cf\u8868\u793a\n    for idx in range(len(index_to_word)):\n        print(index_to_word[idx])#\u67e5\u770b\u7b2c\u4e00\u4e2a\u8bcd\n        print(embed(torch.tensor(idx)))#\u67e5\u770b\u7b2c\u4e00\u4e2a\u8bcd\u5bf9\u5e94\u7684\u5411\u91cf\n<\/code><\/pre>\n<h3>\uff08\u4e09\uff09\u5faa\u73af\u7f51\u7edc\u5c42<\/h3>\n<h4>1.RNN\u7f51\u7edc\u539f\u7406<\/h4>\n<pre><code class=\"language-mermaid\">graph LR\nid( )--&quot;h0&quot;--&gt;id0(&quot;\u795e\u7ecf\u5143&quot;)--&quot;h1&quot;--&gt;id1(\u795e\u7ecf\u5143)--&quot;h2&quot;--&gt;id2(\u795e\u7ecf\u5143)\n\n<\/code><\/pre>\n<ul>\n<li>\u6ce8\uff1a\u4ee5\u4e0a\u7684\u795e\u7ecf\u5143\u8868\u793a\u7684\u662f\u540c\u4e00\u4e2a\u795e\u7ecf\u5143<\/li>\n<li>\u6bcf\u4e00\u4e2a\u795e\u7ecf\u5143\u7684\u5de5\u4f5c\u8fc7\u7a0b\uff1a\n<ul>\n<li>\u521d\u59cb\u5316\u9690\u85cf\u5c42h0\uff0c\u4e00\u822c\u4e3a\u51680\u5411\u91cf<\/li>\n<li>\u8f93\u5165\u6570\u636e\u6bcf\u6b21\u8f93\u5165\u4e00\u4e2a\u8bcd\u8fdb\u5165\u795e\u7ecf\u5143\uff0c\u795e\u7ecf\u5143\u5904\u7406\u8be5\u8bcd\u4e4b\u540e\u8f93\u51fah1<\/li>\n<li>h1\u548c\u4e0b\u4e00\u4e2a\u8f93\u5165\u518d\u6b21\u8fdb\u5165\u795e\u7ecf\u5143\u8f93\u51fah2<\/li>\n<li>\u6bcf\u4e00\u4e2ah\u90fd\u5305\u542b\u4e86\u5176\u4e4b\u95f4\u6240\u6709\u8bcd\u7684\u8ba1\u7b97\u8bed\u4e49<\/li>\n<li>\u4ee5\u6b64\u7c7b\u63a8\uff0c\u76f4\u5230\u67d0\u4e00\u6b65\u795e\u7ecf\u5143\u8f93\u51fa<\/li>\n<\/ul>\n<\/li>\n<li>RNN\u4e2d\u53ef\u4ee5\u6709\u591a\u4e2a\u795e\u7ecf\u5143\uff0c\u795e\u7ecf\u5143\u7684\u6570\u91cf\u4f1a\u5f71\u54cd\u8f93\u51fa\u7684\u6570\u636e\u7ef4\u5ea6<\/li>\n<\/ul>\n<h4>2.\u8ba1\u7b97\u516c\u5f0f<\/h4>\n<p>$$\nh_t=tanh((w_{input}x_t+b_{input})+(w_{hide}h_{t-1}+b_{hide}))\n$$<\/p>\n<ul>\n<li>tanh\uff1a\u6fc0\u6d3b\u51fd\u6570<\/li>\n<li>$w_{input},w_{hide}$\uff1a\u5206\u522b\u4e3a\u8f93\u5165\u6570\u636e$x_t$\u548c\u4e0a\u4e00\u6b21\u7684\u9690\u85cf\u6570\u636e$h_{t-1}$\u5bf9\u5e94\u7684\u6743\u91cd<\/li>\n<li>$b_{input},b_{hide}$\uff1a\u5206\u522b\u4e3a\u8f93\u5165\u6570\u636e$x_t$\u548c\u4e0a\u4e00\u6b21\u7684\u9690\u85cf\u6570\u636e$h_{t-1}$\u5bf9\u5e94\u7684\u504f\u7f6e<\/li>\n<\/ul>\n<h4>3.RNN\u7684\u4f7f\u7528<\/h4>\n<ul>\n<li>RNN\u7684\u8f93\u5165\u8981\u6c42\uff1a\n<ul>\n<li>\u8f93\u5165\u6570\u636e\u7ef4\u5ea6\u4e3a(seq_len,batch_size,input_size)\n<ul>\n<li>seq_len\uff1a\u8868\u793a\u5e8f\u5217\u7684\u957f\u5ea6\uff0c\u4e5f\u5c31\u662f\u8bcd\u7684\u6570\u91cf\uff0c\u6570\u91cf\u662f\u6839\u636e\u5206\u8bcd\u7684<\/li>\n<li>batch_size\uff1a\u8868\u793a\u4e00\u6279\u8f93\u5165\u51e0\u4e2a\u6570\u636e\uff08\u53e5\u5b50\uff09<\/li>\n<li>input_size\uff1a\u8868\u793a\u8f93\u5165\u6570\u636e\u7684\u7ef4\u5ea6<\/li>\n<\/ul>\n<\/li>\n<li>\u9690\u85cf\u5c42\u7ef4\u5ea6\u4e3a(num_layers,batch_size,hidden_size)\n<ul>\n<li>num_layers\uff1a\u5faa\u73af\u5c42\u7684\u5c42\u6570\uff0c\u4e5f\u5c31\u662f\u6709\u51e0\u5c42\u795e\u7ecf\u5143<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-49","post","type-post","status-publish","format-standard","hentry","category-2"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=\/wp\/v2\/posts\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=49"}],"version-history":[{"count":2,"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":51,"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=\/wp\/v2\/posts\/49\/revisions\/51"}],"wp:attachment":[{"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.zxlearning.space\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}