财政局门户网站建设方案,wordpress文章前台看不到,网站建设步骤完整版,通辽市北京网站建设下图这个预测一个人在一年之后得糖尿病的概率的例子#xff0c;这个时候我们的输入将会有很多的指标。你可以把它看成是我们体检的各种值。最后一排的外代表了他是否会得糖尿病。 那么多维的特征输入应该怎么办呢#xff1f;我们就需要把每一个特征x付以相应的权重。在进行逻…下图这个预测一个人在一年之后得糖尿病的概率的例子这个时候我们的输入将会有很多的指标。你可以把它看成是我们体检的各种值。最后一排的外代表了他是否会得糖尿病。 那么多维的特征输入应该怎么办呢我们就需要把每一个特征x付以相应的权重。在进行逻辑回归时把每一个维度的x乘相应的权值的和加上一个偏置量送入sigema函数进行二分类就像这样 当然在真正编程的时候是以矩阵乘法的形式进行运算的也就是一次能算多个样本的值具体的推导过程大家可以看刘老师的教学视频这里就不写了。根据数据集我们需要构造一个从八维到一维的计算图就是这样 import numpy as np
import torch
from torch import nnxynp.loadtxt(CIFAdata/diabetes.csv.gz,delimiter,,dtypenp.float32)
x_datatorch.from_numpy(xy[:,:-1])
print(x_data)
#[-1] 表示要拿出一个矩阵
y_datatorch.from_numpy(xy[:,[-1]])
print(y_data)class Model(nn.Module):def __init__(self):##构造函数super(Model, self).__init__()#8维转为6维self.linear1 torch.nn.Linear(8,6)self.linear2 torch.nn.Linear(6, 4)self.linear3 torch.nn.Linear(4, 1)#激活函数# self.activetorch.nn.ReLU()#因为他里边也没有权重需要更新所以要一个就行了单纯的算个数self.sigmoid torch.nn.Sigmoid()def forward(self,x):##构建一个计算图就像上面图片画的那样x self.sigmoid(self.linear1(x))x self.sigmoid(self.linear2(x))##将上面一行的输出作为输入x self.sigmoid(self.linear3(x))return x
modelModel()##实例化模型criteriontorch.nn.BCELoss(size_averageTrue)
#model.parameters()会扫描module中的所有成员
# 如果成员中有相应权重那么都会将结果加到要训练的参数集合上
optimizertorch.optim.SGD(model.parameters(),lr0.1)for epoch in range(100):y_predmodel(x_data)losscriterion(y_pred,y_data)print(epoch,loss.item())#反向传播optimizer.zero_grad()loss.backward()#Updataoptimizer.step()# 如果想查看某些层的参数以神经网络的第一层参数为例可按照以下方法进行。
# 第一层的参数
layer1_weight model.linear1.weight.data
layer1_bias model.linear1.bias.data
print(layer1_weight, layer1_weight)
print(layer1_weight.shape, layer1_weight.shape)
print(layer1_bias, layer1_bias)
print(layer1_bias.shape, layer1_bias.shape)