#define y = X @ w

import torch
from torch import nn

#第一模块,数据初始化
n = 100
X = torch.rand(n,2)
true_w = torch.tensor([[-1.],[2]])
y = X @ true_w + torch.rand(n,1)
w = torch.tensor([[1.],[1.]], requires_grad = True) """model = nn.Sequential(nn.Linear(2,3),
nn.tanh(),
nn.Linear(3,1),
nn.tanh()
)"""
#第二模块,定义model,定义loss_func,定义优化器optim
model = nn.Linear(2,1) loss_func = nn.MSELoss()
optim = torch.optim.SGD(model.parameters(), 0.1)

#第三模块,for循环,定义y_hat,定义loss,三步走:优化器参数梯度清零,从loss出发计算梯度,优化器更新各参数
print("epoch\t loss\t w\t")
epochs = 100
for i in range(epochs):
y_hat = model(X)
loss = loss_func(y_hat, y)
optim.zero_grad()
loss.backward()
optim.step()
print(f"{i}\t {loss}\t {model.weight.reshape(2).detach()}")

epoch	 loss	 w
0 3.0193979740142822 tensor([-0.4203, -0.2541])
1 1.724941372871399 tensor([-0.3228, -0.1113])
2 1.0764166116714478 tensor([-0.2580, -0.0022])
3 0.7487826347351074 tensor([-0.2163, 0.0831])
4 0.5806469917297363 tensor([-0.1907, 0.1515])
5 0.49187105894088745 tensor([-0.1765, 0.2078])
6 0.44265982508659363 tensor([-0.1703, 0.2556])
7 0.41324958205223083 tensor([-0.1695, 0.2971])
8 0.39382266998291016 tensor([-0.1726, 0.3341])
9 0.3794998526573181 tensor([-0.1784, 0.3679])
10 0.3678540289402008 tensor([-0.1860, 0.3993])
11 0.3576757311820984 tensor([-0.1948, 0.4288])
12 0.34836021065711975 tensor([-0.2044, 0.4569])
13 0.3396031856536865 tensor([-0.2145, 0.4839])
14 0.331249475479126 tensor([-0.2250, 0.5100])
15 0.32321831583976746 tensor([-0.2356, 0.5354])
16 0.3154657781124115 tensor([-0.2463, 0.5601])
17 0.3079665005207062 tensor([-0.2570, 0.5843])
18 0.30070433020591736 tensor([-0.2677, 0.6080])
19 0.29366785287857056 tensor([-0.2783, 0.6313])
20 0.28684815764427185 tensor([-0.2888, 0.6542])
21 0.2802375555038452 tensor([-0.2992, 0.6766])
22 0.2738291919231415 tensor([-0.3095, 0.6987])
23 0.2676165997982025 tensor([-0.3196, 0.7204])
24 0.2615937292575836 tensor([-0.3296, 0.7418])
25 0.255754679441452 tensor([-0.3394, 0.7628])
26 0.25009381771087646 tensor([-0.3492, 0.7835])
27 0.24460570514202118 tensor([-0.3587, 0.8039])
28 0.23928505182266235 tensor([-0.3682, 0.8239])
29 0.2341267466545105 tensor([-0.3775, 0.8437])
30 0.22912582755088806 tensor([-0.3867, 0.8631])
31 0.22427748143672943 tensor([-0.3957, 0.8822])
32 0.21957707405090332 tensor([-0.4046, 0.9011])
33 0.2150200754404068 tensor([-0.4134, 0.9196])
34 0.21060210466384888 tensor([-0.4220, 0.9379])
35 0.2063189297914505 tensor([-0.4305, 0.9558])
36 0.20216642320156097 tensor([-0.4389, 0.9735])
37 0.19814060628414154 tensor([-0.4472, 0.9910])
38 0.194237619638443 tensor([-0.4553, 1.0081])
39 0.1904536783695221 tensor([-0.4633, 1.0250])
40 0.18678519129753113 tensor([-0.4712, 1.0416])
41 0.18322861194610596 tensor([-0.4790, 1.0580])
42 0.17978054285049438 tensor([-0.4867, 1.0741])
43 0.176437646150589 tensor([-0.4943, 1.0900])
44 0.17319674789905548 tensor([-0.5017, 1.1056])
45 0.17005468904972076 tensor([-0.5091, 1.1210])
46 0.16700850427150726 tensor([-0.5163, 1.1361])
47 0.1640552133321762 tensor([-0.5234, 1.1510])
48 0.16119202971458435 tensor([-0.5304, 1.1657])
49 0.15841616690158844 tensor([-0.5374, 1.1802])
50 0.15572498738765717 tensor([-0.5442, 1.1944])
51 0.1531158685684204 tensor([-0.5509, 1.2084])
52 0.15058636665344238 tensor([-0.5575, 1.2222])
53 0.1481340080499649 tensor([-0.5640, 1.2358])
54 0.14575643837451935 tensor([-0.5704, 1.2491])
55 0.14345139265060425 tensor([-0.5768, 1.2623])
56 0.14121665060520172 tensor([-0.5830, 1.2753])
57 0.13905006647109985 tensor([-0.5892, 1.2880])
58 0.1369495391845703 tensor([-0.5952, 1.3006])
59 0.1349131017923355 tensor([-0.6012, 1.3129])
60 0.13293875753879547 tensor([-0.6071, 1.3251])
61 0.13102462887763977 tensor([-0.6129, 1.3371])
62 0.12916886806488037 tensor([-0.6186, 1.3489])
63 0.1273697167634964 tensor([-0.6242, 1.3605])
64 0.1256254017353058 tensor([-0.6297, 1.3719])
65 0.123934306204319 tensor([-0.6352, 1.3832])
66 0.12229477614164352 tensor([-0.6406, 1.3943])
67 0.12070523947477341 tensor([-0.6459, 1.4052])
68 0.11916416138410568 tensor([-0.6511, 1.4159])
69 0.11767008155584335 tensor([-0.6562, 1.4265])
70 0.11622155457735062 tensor([-0.6613, 1.4369])
71 0.11481721699237823 tensor([-0.6663, 1.4472])
72 0.11345569044351578 tensor([-0.6712, 1.4573])
73 0.11213566362857819 tensor([-0.6761, 1.4672])
74 0.11085589230060577 tensor([-0.6809, 1.4770])
75 0.10961514711380005 tensor([-0.6856, 1.4867])
76 0.10841222107410431 tensor([-0.6902, 1.4961])
77 0.10724597424268723 tensor([-0.6948, 1.5055])
78 0.10611527413129807 tensor([-0.6993, 1.5147])
79 0.10501907020807266 tensor([-0.7038, 1.5237])
80 0.10395626723766327 tensor([-0.7081, 1.5326])
81 0.1029258519411087 tensor([-0.7124, 1.5414])
82 0.10192685574293137 tensor([-0.7167, 1.5500])
83 0.10095832496881485 tensor([-0.7209, 1.5585])
84 0.10001931339502335 tensor([-0.7250, 1.5669])
85 0.09910892695188522 tensor([-0.7291, 1.5752])
86 0.09822628647089005 tensor([-0.7331, 1.5833])
87 0.09737054258584976 tensor([-0.7370, 1.5913])
88 0.0965408906340599 tensor([-0.7409, 1.5991])
89 0.09573652595281601 tensor([-0.7448, 1.6069])
90 0.09495667368173599 tensor([-0.7485, 1.6145])
91 0.09420059621334076 tensor([-0.7523, 1.6220])
92 0.09346755594015121 tensor([-0.7559, 1.6294])
93 0.09275685995817184 tensor([-0.7596, 1.6367])
94 0.09206782281398773 tensor([-0.7631, 1.6438])
95 0.09139978885650635 tensor([-0.7666, 1.6509])
96 0.09075210243463516 tensor([-0.7701, 1.6578])
97 0.09012416005134583 tensor([-0.7735, 1.6647])
98 0.08951534330844879 tensor([-0.7769, 1.6714])
99 0.08892509341239929 tensor([-0.7802, 1.6780])

2、pytorch——Linear模型(最基础版,理解框架,背诵记忆)(调用nn.Modules模块)的更多相关文章

  1. 1、pytorch写的第一个Linear模型(原始版,不调用nn.Modules模块)

    参考: https://github.com/Iallen520/lhy_DL_Hw/blob/master/PyTorch_Introduction.ipynb 模拟一个回归模型,y = X * w ...

  2. 01 基础版web框架

    01 基础版web框架 服务器server端python程序(基础版): import socket server=socket.socket() server.bind(("127.0.0 ...

  3. js的基础(平民理解的执行上下文/调用堆栈/内存栈/值类型/引用类型)

    与以前的切图比较,现在的前端开发对js的要求似乎越来越高,在开发中,我们不仅仅是要知道如何运用现有的框架(react/vue/ng), 而且我们对一些基础的知识的依赖越来越大. 现在我们就用平民的方法 ...

  4. Django基础一Web框架的本质

    我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求, ...

  5. [源码解析] PyTorch 分布式(4)------分布式应用基础概念

    [源码解析] PyTorch 分布式(4)------分布式应用基础概念 目录 [源码解析] PyTorch 分布式(4)------分布式应用基础概念 0x00 摘要 0x01 基本概念 0x02 ...

  6. [炼丹术]使用Pytorch搭建模型的步骤及教程

    使用Pytorch搭建模型的步骤及教程 我们知道,模型有一个特定的生命周期,了解这个为数据集建模和理解 PyTorch API 提供了指导方向.我们可以根据生命周期的每一个步骤进行设计和优化,同时更加 ...

  7. PyTorch保存模型与加载模型+Finetune预训练模型使用

    Pytorch 保存模型与加载模型 PyTorch之保存加载模型 参数初始化参 数的初始化其实就是对参数赋值.而我们需要学习的参数其实都是Variable,它其实是对Tensor的封装,同时提供了da ...

  8. Miner3D Basic基础版

    ——强大的数据可视化软件 数据分析并不很复杂,Miner3D Basic基础版首先使用简单的方法,创造了强劲的图形驱动的数据处理模型,然后通过一个完整的视图为基本的交互环境,对基本数据进行分析,并通过 ...

  9. 【基础版限时免费】致敬WebForms,ASP.NET Core也能这么玩!

    ASP.NET WebForms ASP.NET WebForms 随着微软 2000 年的 .Net Framework 一起发布,至今也将近 20 年的时间.相信很多人和我一样,对 WebForm ...

随机推荐

  1. php post请求https

    <?php $url = 'https://www.xxx.com'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); c ...

  2. strace 使用文档

    strace -c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息. -f 跟踪由fork调用所产生的子进程. -ff 如果提供-o filenam ...

  3. binary hacks读数笔记(ld 链接讲解 一)

    首先我们先看两段代码: a.c extern int shared; int main(){ int a=100; swap(&a,&shared); } b.c int shared ...

  4. mon到底能坏几个

    如果是在做ceph的配置,我们会经常遇到这几个问题 问:ceph需要配置几个mon 答:配置一个可以,但是坏了一个就不行了,需要配置只是三个mon,并且需要是奇数个 问:ceph的mon能跟osd放在 ...

  5. LeetCode 中等题解(2)

    31 下一个排列 Question 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须 ...

  6. docker搭建渗透环境并进行渗透测试

    目录 docker简介 docker的安装 docker.centos7.windows10(博主宿主机系统)之间相互通信 -docker容器中下载weblogic12c(可以略过不看) docker ...

  7. Cypress系列(90)- Cypress.Cookies 命令详解以及如何跨测试用例共享 Cookies

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Cypress.Cookies 共有三个 ...

  8. 深度分析:理解Java中的多态机制,一篇直接帮你掌握!

    Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一 ...

  9. 移动端调试Web页面

    移动端调试Web页面 虽然可以在PC下,通过开发者工具,模拟移动端,但是这样只能模拟页面样式,对于代码的执行情况是无法模拟的,所以在此结合实际调试经验,针对安卓与IOS设备,进行总结. IOS 安卓 ...

  10. Guitar Pro怎么导出乐谱

    使用Guitar Pro可以自由创作乐谱,也能根据演示效果来作出相应调整,算得上是公认的良心吉他谱制作软件.除了系统演示功能外,Guitar Pro还能给用户的实际练习提供便利.必要时,用户能将软件内 ...