纠正错误Pytorch NEURAL NETWORKS章节

原文:https://pytorch.org/tutorials/beginner/blitz/neural_networks_tutorial.html

NEURAL NETWORKS

Neural networks can be constructed using the torch.nn package.

Now that you had a glimpse of autograd, nn depends on autograd to define models and differentiate them. An nn.Module contains layers, and a method forward(input)that returns the output.

For example, look at this network that classifies digit images:

convnet

convnet

It is a simple feed-forward network. It takes the input, feeds it through several layers one after the other, and then finally gives the output.

上面这张图的C1 S2 C3的维度不正确。正确的如下:

nn.html

苹果系统安装PyTorch GPU版

  1. https://hijerry.cn/p/49582.html
  2. https://github.com/TomHeaven/pytorch-osx-build
  3. https://github.com/TomHeaven/pytorch-osx-build/releases
  4. http://www.voidcn.com/article/p-uxdnfubf-gn.html
  5. 也不知道是禁用SIP起了作用,还是单纯重启了机器的作用,运行import tensorflow的时候,错误信息变了:“Library not loaded: @rpath/libcudnn.5.dylib”。这下想起来了。昨天安装CUDA的时候,只把cuDNN的zip包下载下来了,而没有做任何处理!于是,先用which nvcc查看当前CUDA安装目录为/Developer/NVIDIA/CUDA-8.0,然后将cuDNN包中的文件分别拷贝到/lib和/include中。运行import tensorflow还是没找到libcudnn.5.dylib?好吧,想起来之前设置CUDA_HOME是在/usr/local/cuda,是目录/Developer/NVIDIA/CUDA-8.0的符号链接。于是将/Developer/NVIDIA/CUDA-8.0/lib/libcudnn.5.dylib的符号链接也添加进/usr/local/cuda/lib目录下。
  6. 版本配套:
    • torch            1.3.1             
    • torchsummary     1.5.1              
    • torchvision      0.4.2 

雅可比矩阵

向量分析中,雅可比矩阵(也称作Jacobi矩阵,英语:Jacobian matrix)是函数的一阶偏导数以一定方式排列成的矩阵。当其为方形矩阵时,其行列式称为Jacobi行列式。要注意的是,如果雅可比矩阵为方阵,那在英文中雅可比矩阵跟Jacobi行列式两者都称作 Jacobian

其重要性在于,如果函数  f : ℝn → ℝm 在点 x 可微的话,在点 x 的雅可比矩阵即为该函数在该点的最佳线性逼近,也代表雅可比矩阵是单变数实数函数的微分在向量值多变数函数的推广,在这种情况下,雅可比矩阵也被称作函数 f 在点 x 的微分或者导数。

代数几何中,代数曲线可比行列式’表示雅可比簇:伴随该曲线的一个代数群,曲线可以嵌入其中。[来源请求]

它们全部都以普鲁士数学家卡尔·雅可比命名。

目录

假设某函数从 f : ℝn → ℝm, 从 x ∈ ℝn 映射到 向量 f(x) ∈ ℝm, 其雅可比矩阵是一 m×n 的矩阵,换句话讲也就是从 ℝn 到 ℝm 的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。因此,雅可比矩阵类似于单变数函数的导数。

此函数 f 的雅可比矩阵 J 为 m×n 的矩阵,一般由以下方式定义:{\displaystyle \mathbf {J} ={\begin{bmatrix}{\dfrac {\partial \mathbf {f} }{\partial x_{1}}}&\cdots &{\dfrac {\partial \mathbf {f} }{\partial x_{n}}}\end{bmatrix}}={\begin{bmatrix}{\dfrac {\partial f_{1}}{\partial x_{1}}}&\cdots &{\dfrac {\partial f_{1}}{\partial x_{n}}}\\\vdots &\ddots &\vdots \\{\dfrac {\partial f_{m}}{\partial x_{1}}}&\cdots &{\dfrac {\partial f_{m}}{\partial x_{n}}}\end{bmatrix}}}

矩阵的分量可表示成:{\displaystyle \mathbf {J} _{ij}={\frac {\partial f_{i}}{\partial x_{j}}}.}


雅可比矩阵的其他常用符号还有:{\displaystyle Df}、 {\displaystyle \mathrm {D} \mathbf {f} }{\displaystyle \mathbf {J} _{\mathbf {f} }(x_{1},\ldots ,x_{n})} 或者 {\displaystyle {\frac {\partial (f_{1},\ldots ,f_{m})}{\partial (x_{1},\ldots ,x_{n})}}.}

此矩阵的第 i行是由函数 f_{i} 的梯度函数所表示的,{\displaystyle 1\leq i\leq m}

如果 p\mathbb {R} ^{n} 中的一点,f在 p点可微分,根据数学分析, {\displaystyle \mathbf {J} _{\mathbf {f} }(p)}是在这点的导数。在此情况下,{\displaystyle \mathbf {J} _{\mathbf {f} }(p)}这个线性映射即 f 在点  p附近的最优线性逼近,也就是说当 x足够靠近点  p时,我们有{\displaystyle f(x)\approx f(p)+\mathbf {J} _{\mathbf {f} }(p)\cdot (x-p)}

讲更详细点也就是:{\displaystyle \mathbf {f} (\mathbf {x} )=\mathbf {f} (\mathbf {p} )+\mathbf {J} _{\mathbf {f} }(\mathbf {p} )(\mathbf {x} -\mathbf {p} )+o(\|\mathbf {x} -\mathbf {p} \|)}

其中,o 代表小o符号,‖x − p‖ 为 x 与 p 之间的距离。