#导入模块
import torch
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt
x=torch.unsqueeze(torch.linspace(-1,1,100),dim=1)
#对输入的制定位置插入维度 1,无torch.unsqueeze,x是向量torch.Size([100]),有之后x是 torch.Size([100, 1])的矩阵
y=x**2+0.2*torch.rand(x.size())#x的平方,加噪声(从区间[0,1)的均匀分布中抽取的一组随机数,输出形状与x相同)
print(x,y,x.size())
x,y=Variable(x),Variable(y)#将x,y张量转化为变量
class Net(torch.nn.Module):
def __init__(self,n_feature,n_hidden,n_output):#搭建层所要的初始信息,特征数,隐藏层单元数和输出单元数
super(Net,self).__init__()#继承Net到模块,官方步骤
self.hidden=torch.nn.Linear(n_feature,n_hidden)#从输入层到隐藏层的函数
self.predict=torch.nn.Linear(n_hidden,n_output)#从隐藏层的输出层的函数
def forward(self,x):#前向传播
x=F.relu(self.hidden(x))#self.hidden(x)给x加权成为a,用激励函数将a变成特征b
x=self.predict(x)#self.predict(b)给b加权,预测最终结果