如何用PyDOE在5分钟内完成专业实验设计?Python科学实验终极指南
2026/8/5 5:30:11
importnumpyasnpimporttorchimportmatplotlib.pyplotasplt xy=np.loadtxt('diabetes.csv',delimiter=',',dtype=np.float32)x_data=torch.from_numpy(xy[:,:-1])# 第一个‘:’是指读取所有行,第二个‘:’是指从第一列开始,最后一列不要y_data=torch.from_numpy(xy[:,[-1]])# [-1] 最后得到的是个矩阵#torch.from_numpy创建TensorclassModel(torch.nn.Module):def__init__(self):super(Model,self).__init__()self.linear1=torch.nn.Linear(8,6)# 输入数据x的特征是8维,x有8个特征self.linear2=torch.nn.Linear(6,4)self.linear3=torch.nn.Linear(4,1)self.sigmoid=torch.nn.Sigmoid()# 将其看作是网络的一层,是个模块,而不是简单的函数使用defforward(self,x):x=self.sigmoid(self.linear1(x))#只用一个x,从头用到尾x=self.sigmoid(self.linear2(x))x=self.sigmoid(self.linear3(x))# y hatreturnx model=Model()# construct loss and optimizer# criterion = torch.nn.BCELoss(size_average = True)criterion=torch.nn.BCELoss(reduction='mean')optimizer=torch.optim.SGD(model.parameters(),lr=0.1)epoch_list=[]loss_list=[]# training cycle forward, backward, updateforepochinrange(100):y_pred=model(x_data)#并没有用mini Batchloss=criterion(y_pred,y_data)print(epoch,loss.item())optimizer.zero_grad()loss.backward()optimizer.step()plt.plot(epoch_list,loss_list)plt.ylabel('loss')plt.xlabel('epoch')plt.show()