用Pytorch实现线性回归

算法需要自动扩充,并不是无法计算
在这里插入图片描述用mini-batch构造数据集的时候,x和y必须是矩阵。
构造计算图时,知道x和y就会知道w和b的维度。

在这里插入图片描述Module类中的Linear模块,能够实现wx+b
即为如下计算图。

在这里插入图片描述***Linear模块的构造函数如下:
bias是否要加偏执量,默认加偏执量为True,否则为false.


在这里插入图片描述
补充知识点

class Foobar:
    def __init__(self):
        pass
    def __call__(self, *args, **kwargs):
        pass


def func(a,b,c,x,y):
    pass
func(1,2,3,x=3,y=5)

def fun(*args,x,y):#调用函数时不确定有输入几个数值
    print(args)
fun(1,2,3,3,x=3,y=5)

def function(*args,**kwargs):#会把xy变成词典
    print(kwargs)
function(1,1,x=3,y=9)

MSELoss计算损失函数,size_average是否要求平均值,reduce是否要降维度(一般不考虑reduce)
在这里插入图片描述

为什么调用如此复杂,如下图所示
print(‘w=’,model.linear.weight.item())
print(‘b=’,model.linear.bias.item())

在这里插入图片描述
值得注意的是,迭代次数的选择在考虑训练的损失值不断减少,但对于测试集,可能出现过拟合,所以综合考虑,避免出现过拟合

在这里插入图片描述torch中的优化器

import  torch
#准备数据集
x_data =torch.Tensor([[1.0],[2.0],[3.0]])
y_data = torch.Tensor([[2.0],[4.0],[6.0]])

#定义模型--模板
class LinearModel(torch.nn.Module):#继承Module模块
    def __init__(self):#构造函数,初始化对象
        super(LinearModel,self).__init__() #调用父类的initial,必须要有的一步
        self.linear = torch.nn.Linear(1,1) #构造一个对象,Linear是Module的一个模块。nn是神经网络
    def forward(self,x): #实现前馈过程中,所要执行的计算,实际上是一个override
        y_pred = self.linear(x)#实现了可调用的对象,实现了w*x+b
        return  y_pred
#没有写backward()反馈,用Module构建的对象,自动的根据计算图,帮你去实现backward()的过程。

model = LinearModel() #实例化,可以直接被调用的即为model(x)

#构造损失函数和优化器
criterion = torch.nn.MSELoss(size_average=False)#继承nn下的Module的
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)#model.parameters()是最简单的方法,无论模型多复杂,都可以把参数取出来。lr代表学习率。
#得到的optimizer对象可以知道要对哪些参数做优化,直接调用去对整个模型进行优化

#训练循环
for epoch in range(1000):
    y_pred=model(x_data)#计算前馈值
    loss = criterion(y_pred,y_data)#计算损失
    print(epoch,loss)

    optimizer.zero_grad()#梯度归零
    loss.backward()#反向传播
    optimizer.step()#更新

#打印权重的值
print('w=',model.linear.weight.item())
print('b=',model.linear.bias.item())


#Test Model
x_test = torch.Tensor([4.0])
y_test = model(x_test)
print('y_pred',y_test.data)
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值