pytorch多元线性回归,pytorch 输入维度
这篇文章主要介绍了PyTorch实现多维度特征输入逻辑回归,首先进行数据采取数据集展开详细内容,需要的小伙伴可以参考一下
目录
一、实现过程1、准备数据2、设计模型4、训练过程5、结果展示二、参考文献
一、实现过程
1、准备数据
本文数据采取文献[1]给出的数据集,该数据集前8列为特征,最后一列为标签(0/1)。本模型使用熊猫处理该数据集,需要注意的是,原始数据集没有特征名称,需要自己在第一行添加上去,否则,熊猫会把第一行的数据当成特征名称处理,从而影响最后的分类效果。
代码如下:
# 1、准备数据
进口火炬
进口熊猫作为螺纹中径
将数组作为铭牌导入
xy=PD。read _ CSV( g :/数据集/糖尿病/糖尿病。CSV ,dtype=np.float32) #文件路径
x _ data=火炬。from _ numpy(xy。值[:-1])
y _ data=火炬。from _ numpy(xy。值[:[-1]])
2、设计模型
本文采取文献[1]的思路,激活函数使用雷鲁,最后一层使用乙状结肠的函数,
代码如下:
班级模型(火炬. nn .模块):
def __init__(self):
超级(模特,自己)。__init__()
self.linear1=torch.nn.Linear(8,6)
self.linear2=torch.nn.Linear(6,4)
self.linear3=torch.nn.Linear(4,1)
self.activate=torch.nn.ReLU()
定义向前(自身,x):
x=self.activate(self.linear1(x))
x=self.activate(self.linear2(x))
x=torch.sigmoid(self.linear3(x))
返回x
模型=模型()
将模型和数据加载到GPU上,代码如下:
### 将模型和训练数据加载到国家政治保卫局。参见国家政治保卫局上
# 模型加载到国家政治保卫局。参见国家政治保卫局上
设备=手电筒。设备( cuda :0 如果火炬。cuda。is _ available()else CPU )
型号至(设备)
# 数据加载到国家政治保卫局。参见国家政治保卫局上
x=x_data.to(设备)
y=y_data.to(设备)
3、构造损失函数和优化器
标准=火炬。nn。BCE损失(减少量=“平均值”)
优化器=火炬。optim。新币(型号。参数(),lr=0.1)
4、训练过程
epoch_list=[]
loss_list=[]
纪元=10000
对于范围内的纪元(纪元):
#向前
y_pred=模型(十)
损失=标准(y_pred,y)
打印(纪元,损失)
历元_列表.追加(纪元)
loss _ list。追加(损失。数据。item())
#向后
optimizer.zero_grad()
loss.backward()
#更新
optimizer.step()
5、结果展示
查看各个层的权重和偏置:
权重,偏差
权重,偏差
权重,模型,线性偏差
损失值随迭代次数的变化曲线:
# 绘图展示
plt.plot(epoch_list,loss_list, b )
plt.xlabel(纪元)
plt.ylabel("损失")
plt.grid()
plt.show()
最终的损失和准确率:
# 准确率
y _ pred _ label=torch。其中(y _ pred。数据。CPU()=0.5,torch.tensor([1.0]),torch.tensor([0.0])
acc=torch.eq(y_pred_label,y_data).sum().item()/y_data.size(0)
print(loss=,loss.item(), acc=,acc)
loss=0.4232381284236908 ACC=0.423236531
二、参考文献
[1]https://www . bilibili.com/video/bv1y 7411 d7ys?p=7[2]https://blog . csdn . net/bit 452/article/details/109682078到此这篇关于PyTorch实现多维度特征输入逻辑回归的文章就介绍到这了,更多相关PyTorch逻辑回归内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。