神经网络可作为一个函数,例如x为训练样本矩阵,f为神经网络,则f(x)会得到一个输出,输出表示啥取决于训练目的和训练过程。
本文章讲解以拟合为设计目的的全连接神经网络模型,神经网络即可进行线性回归,也可进行非线性回归,并且是还是分段拟合,线性与非线性取决于激活函数!
先来简单的一元二次函数:
看代码:
x = torch.unsqueeze(torch.linspace(-1,1,100),dim=1)
y = x.pow(2)+0.2*torch.rand(x.size())
plt.scatter(x.data.numpy(),y.data.numpy())
plt.show()
其图像为:
采用线性激活函数版本:
import torch
import torch.nn.functional as F#激活函数都在这里
import matplotlib.pyplot as plt
#假数据:y = a*x^2+b,增加一些噪点,显得更加真实
x = torch.unsqueeze(torch.linspace(-1,1,100),dim=1)
y = x.pow(2)+0.2*torch.rand(x.size())
#画图
plt.scatter(x.data.numpy(),y.data.numpy())
plt.show()
class Net(torch.nn.Module):
def init(self,n_featuer,n_hidden1,n_hidden2,n_output):
super(Net,self).