莫烦Pytorch学习记录——关于搭建神经网络

1.神经网络黑盒并不黑

与其说神经网络是一种黑盒,不如说是将一种表示特征不断的转换位另外的一种表示特征。
(只不过随着网络层数的增加,人类没办法理解了,所以觉得实个黑盒hhh)

2. 为什么使用Pytorch

Pytorch是Torch在Python上的衍生,,而Torch是一个使用Lua语言的神经网络库,但是Lua流行度不高,所以
Pytorch一出世:
下面这些就都在用了
莫烦Pytorch学习记录——关于搭建神经网络
pytorch是动态图!

3.Numpy 和Torch的对比

# 从numpy到torch
torch.from_numpy()
# 从torch到numpy
torch_data.numpy()

4. 搭建网络中的代码理解:

 # 这里就说名Net继承了从torch里来的nn.Mudle里的东西
 # nets中很多的功能都包含在这个Module中
 # __init__和forward是最重要的两个信息
Class Net(nn.Module):   
	def __init__(self, n_features, n_hidden, n_output):    # 所以init里面是定义好这些层,定义定义定义!!!
		super(Net, self).__init__()   #把Net里初始化等的东西继承进来,官方步骤,必须这么做!
		self.hidden = torch.nn.Linear(n_features, n_hidden)    #接下来就是自己的内容了,这里就是一层的神经网络隐藏层了
		self.predict = torch.nn.Linear(n_hidden, n_output) 
	def forward(self,x):     # 真正搭网络是在forward里面进行的,这里的x就是真正的输入信息,
		x = F.relu(self.hidden(x),)
		x = self.predict
		return x  # 最终返回了predict的结果

第二种搭建网络的方法更简单,不用定义一个Class

直接用

net2 = torch.nn.Sequential(
#就是直接在这个括号里面垒神经层就好了,而不再需要用self的属性那样来
)