既然是实战,作为开篇,需要自己明确一下,理论的东西少整,实战就要多写代码。
先上一个重要的方法论吧,具有指导意义,也可用于学习其他技术上面:
文章目录
1. Pytorch入门
简单总结一些常用的一些操作吧,只是一个非常浅显总结,还需要平时多加使用。
```1.tensor初始化```
x = torch.empty(5,3) #构造未初始化的tensor
x = torch.rand(5,3) #构造0~1的随机初始化矩阵
x = torch.randn(5,3) #构造均值为0,方差为1的随机初始化矩阵
x = torch.zeros(5,3,dtype=torch.long) #构造全为0,类型为long的矩阵
x = torch.tensor([1,2,3]) #从数据直接构建tensor
x = x.new_ones(5,3,dtype=torch.double) #从已有tensor构建,重用原来的tensor特征,如:数据类型。
x = torch.randn_like(x,dtype=torch.float) #将原来的tensor改造成均值为0,方差为1的新tensor
```2.tensor运算```
x.shape #返回tensor形状,返回一个tuple
a+b #两种加的实现
torch.add(a,b)
note:
- 任何in-place的运算都以_结尾。如:x.copy_(y),x_t_(),会改变x。
- y.add_(x)意思:把x加到y上,并替换y。
-
```3.类似numpy的操作(indexing、reshape、tensor与numpy的转换)```
x[1:,1:] #各种类似Numpy的indexing都可以在tensor上使用
x = torch.randn(4,4)
x.review(2,8) #2×8,类似numpy的reshape
x.review(-1,8) #按第2维,列数是8
x.review(2,-1) #按第1维,行数是2
x.item() #如果tensor只有一个元素,可以取出
b = torch.from_numpy(a)
```4.CUDA Tensors```
x.to() #tensor可以被移动到别的device上
2. 两层神经网络的实现
2.1 Numpy手写
import numpy as np
#超参数设置
N, x_dim, h_dim, y_dim &