当前位置: 代码迷 >> 综合 >> Pytorch学习(6):多维输入
  详细解决方案

Pytorch学习(6):多维输入

热度:11   发布时间:2024-02-08 16:36:12.0
import torch
import numpy as np#数据读入
xy = np.loadtxt('diabetes.csv.gz',delimiter=',',dtype=np.float32)     #delimiter 指的是分隔符的意思
x_data = torch.from_numpy(xy[:,:-1])     #x_data是前8列
y_data = torch.from_numpy(xy[:,[-1]])    # y_data是最后1列class Model(torch.nn.Module):def __init__(self):super(Model,self).__init__()#self.linear = torch.nn.Linear(8,1)     #直接8维输入,1维输出的二分类模型 对应的w为8*1的向量。self.linear1 = torch.nn.Linear(8,6)self.linear2 = torch.nn.Linear(6,4)self.linear3 = torch.nn.Linear(4,1)    #从8->4->1维self.sigmoid = torch.nn.Sigmoid()     #这里的激活函数可以选择很多,也可以用Sign()、Linear()、ReLU()等。  要改成:self.activate = torch.nn.ReLU().def forward(self, x):# x = self.sigmoid(self.linear(x))    #直接输入8->1x = self.sigmoid(self.linear1(x))x = self.sigmoid(self.linear2(x))x = self.sigmoid(self.linear3(x))return x    model = Model()criterion = torch.nn.BCELoss(size_average=True)
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)for epoch in range(100):#Forwardy_pred = model(x_data)      #loss = criterion(y_pred,y_data)print(epoch,loss.item())#Backwardoptimizer.zero_grad()loss.backward()#updateoptimizer.step()

 

  相关解决方案