pytorch Model Linear实现线性回归CUDA版本

摘要:
实验代码importorch importorch。nnasnn#y=wx+bclassMyModel(nn.Module):def__init__(self):super(MyModel,self).__init__()#自定义代码#self。w=焊炬。rand([500,1],requires_grad=真)#self。b=焊炬。传感器(0,dtype=torch.f

实验代码

import torch
import torch.nn as nn

#y = wx + b
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel,self).__init__()
        #自定义代码
        # self.w = torch.rand([500,1],requires_grad=True)
        # self.b = torch.tensor(0,dtype=torch.float,requires_grad=True)
        # self.lr = nn.Linear(1,1)
        self.lr1 = nn.Linear(1,10)
        # self.lr2 = nn.Linear(10,20)
        # self.lr3 = nn.Linear(20,1)


    def forward(self,x):   #完成一次前项计算
        # y_predict = x*self.w + self.b
        # return y_predict
        # return self.lr(x)
        out1 = self.lr1(x)
        # out2 = self.lr2(out1)
        # out = self.lr3(out2)
        return out1



if __name__ == '__main__':
    model = MyModel()
    # print(model.parameters())
    for i in model.parameters():
        print(i)
        print("*"*100)
    # y_predict = model(torch.FloatTensor([10]))
    # print(y_predict)

  Linear实现线性回归,cuda版本

import torch
import torch.nn as nn
from torch import optim

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel,self).__init__()
        self.lr = nn.Linear(1,1)

    def forward(self,x):
        return self.lr(x)

#准备数据  如果使用cuda,数据和模型需要to(device)
x = torch.rand([500,1]).to(device)
y_true = 3*x + 0.8
#实例化模型
model = MyModel().to(device)
#实例化优化器
optimizer = optim.Adam(model.parameters(),lr=0.1)
#实例化损失函数
loss_fn = nn.MSELoss()

for i in range(500):
    #梯度置零
    optimizer.zero_grad()
    #调用模型得到预测值
    y_predict = model(x)
    #损失函数,计算损失
    loss = loss_fn(y_predict,y_true)
    #反向传播计算梯度
    loss.backward()
    #更新参数
    optimizer.step()
    #打印部分数据
    if i%10 ==0:
        print(i,loss.item())

for param in model.parameters():
    print(param.item())

  

免责声明:文章转载自《pytorch Model Linear实现线性回归CUDA版本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sparkSQL以JDBC为数据源教你七招提高.NET网站性能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Device API gpu is not enabled. Please install the cuda version of dgl.错误

因为dgl分gpu版和cpu版,估计默认安装的是cpu版本,所以无法调用cuda,解决方法 https://www.dgl.ai/pages/start.html,选择指定版本进行安装即可,如果在安装后,访问cuda时出现以下错误 /opt/dgl/src/runtime/c_runtime_api.cc:88: Check failed: allow_...

[机器学习] 深度学习之caffe1——软件配置与测试

caffe的编译配置真的是很让人头疼啊,不知道试过多少次了~~~ 重装系统了七八次,搞得linux的一些常用命令倒是很熟悉了~~~ 我有洁癖~~~某一个点上出了错,我一定要把它搞好了,再重新来一次,我怕会因为某一点的小错误会影响到其它重要的地方。。。(有同感的默默在心里举个爪~~~^_^~~~) 又折腾了好几次,参考了很多的博客,总结出一整套的安装配置流...

torch_geometric安装

因为需要跑一些别人的GCN的任务,所以就要安装相关的包; 首先要注意cuda版本和pytorch中的对应关系,必须严格对应,比如我的机器上,cuda版本是10.1; pytorch的cuda版本也是10.1,之前其实是10.2,又重装了一遍; pytorch版本是1.4; python版本是3.6;然后在这个网页上 https://pytorch-ge...

Anaconda CUDA9.1.83对应的pytorch安装,不同版本的pytorch下载

CUDA版本是 9.1.83,python版本3.6.5 win10 使用如下语句可以安装cu91版本的pytorchpip3 install http://download.pytorch.org/whl/cu91/torch-0.4.0-cp36-cp36m-win_amd64.whl 然而下载torchvision会使用之前缓存中的torchvi...

ubuntu18.04 当你的安装了cuda,程序跑着跑着,却崩溃了怎么办?(提示cuda没了)

前情提要:最近跑程序,突然有天提示cuda没了,具体大意是cuda没安装,但其实我已经安装好久了,而且程序也跑了很多次了,后来查明白,其原因有二: (1)linxu系统的不稳定性,经常会导致这样那样的问题。这样的时候一般是要重装了,缺啥装啥。 (2)Ubuntu18.04内核更新导致的。重新更换成旧内核就行。  网上搜索的教程连接如下:https://bl...

cuda GPU 编程之共享内存的使用

  原理上来说,共享内存是GPU上可受用户控制的一级缓存。在一个SM中,存在着若干cuda core + DP(双精度计算单元) + SFU(特殊函数计算单元)+共享内存+常量内存+纹理内存。相对于全局内存,共享内存的方寸延迟较低,可以达到惊人的1.5TB/s。而全局内存大约只有150GB/s。(最新的NVLINK技术没有考虑在内)。因而共享内存的使用时性...