当前位置: 首页 > news >正文

前端工程师是做网站吗网站源码运行

前端工程师是做网站吗,网站源码运行,上海公司新能源过户个人,wordpress创建数据库文件搭建好python后对于内部的很多函数还是不太了解,按照下面的学习博客,理解内部具体的网络实现并代码实现一个线性回归模型并训练。 【从零开始学习深度学习】3. 基于pytorch手动实现一个线性回归模型并进行min--batch训练_pytorch mini batch-CSDN博客 …

搭建好python后对于内部的很多函数还是不太了解,按照下面的学习博客,理解内部具体的网络实现并代码实现一个线性回归模型并训练。

【从零开始学习深度学习】3. 基于pytorch手动实现一个线性回归模型并进行min--batch训练_pytorch mini batch-CSDN博客

网络模型:矩阵乘法-输入矩阵*权重 = 输出

损失函数:预测值与真实值的误差平方

优化函数:小批量随机梯度下降

pytorch中对梯度自动计算,存储tensor计算图,所以应该着重理解并注意是否梯度参与计算

import numpy.random
import torch
from matplotlib import pyplot as plt
import numpy as np
from IPython import display
import randomimport os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'num_inputs = 2
num_examples = 1000
w0 = [2,-3.4]
b0 = 4.2
data = torch.randn(num_examples, num_inputs,dtype=torch.float)
labels = w0[0] * data[:,0] + w0[1] * data[:,1] + b0
labels += torch.tensor(np.random.normal(0,0.01,size=labels.size())).float()def data_iter(batch_size,data,labels):num_examples = data.shape[0]indices = list(range(num_examples)) #返回0-1000的序列random.shuffle(indices) #原地打乱indices列表的顺序for i in range(0,num_examples,batch_size):j = torch.LongTensor(indices[i:min(i+batch_size,num_examples)]) #返回indices打乱后从i-barch_size段的值,用作索引yield data.index_select(0,j), labels.index_select(0,j) #yield 惰性生成,每次只生成一组数据暂停,等第二次调用生成第二组#将权重初始化成均值0,标准差0.01的正态随机数,偏差b初始化为0
w = torch.tensor(numpy.random.normal(0,0.01,(num_inputs,1)),dtype=torch.float)
b = torch.zeros(1).float()
#后续模型训练中,需要对这些参数求梯度来迭代参数的值,因此必须为true
w.requires_grad_(True)
b.requires_grad_(True)#线性回归模型
def linreg(X, w, b):return torch.mm(X,w) + b #mm函数-矩阵乘法  输入*权重+偏差=输出 一个简单的线性回归网络模型#损失函数
def squared_loss(y_hat,y):return (y_hat - y.view(y_hat.size()))**2/2  # 注意这里返回的是向量#优化算法
def sgd(params, lr,batch_size):for param in params:param.data -= lr * param.grad / batch_size  #这里更改param时用的param.data,想要修改param的值,又不希望被autograd记录(不会影响反向传播),就对data操作lr = 0.03
num_epochs = 3
batch_size = 10
net = linreg
loss = squared_losslosses = []
for epoch in range(num_epochs):for X,y in data_iter(batch_size,data,labels):output = net(X,w,b)l = loss(output,y).sum()   # l是有关小批量X和y的损失l.backward() # 小批量的损失对模型参数求梯度sgd([w,b],lr,batch_size) # 使用小批量随机梯度下降迭代模型参数w.grad.data.zero_() #梯度清零b.grad.data.zero_()train_l = loss(net(data,w,b),labels) # 计算第一个迭代周期的损失losses.append(train_l.mean().item())print('echo %d,loss %f' % (epoch+1, train_l.mean().item()))plt.plot(losses, label ="loss")
plt.xlabel('epoch')
plt.ylabel('loss')
plt.title('Training Loss')
plt.show()print(f"True_W={ w0 },\n learn w ={ w.detach().numpy() }")   #detach()脱离计算图,numpy转到数组
print(f"True_b={ b0},\n learn b ={ b.detach().numpy() }")

输出

真实值和学习值很接近。

http://www.dtcms.com/a/474668.html

相关文章:

  • 【C语言实战(14)】深入C语言函数基础:从理论到实战
  • 基础算法:二分查找
  • 深度学习入门(四)——从激活到注意力:神经网络的现代模块与工程实践
  • Linux下的压缩(zip)解压(unzip)缩命令
  • 湖南平台网站建设推荐dedecms网站如何上线
  • 网站后台都有哪些中国建设工程监理网站
  • JWT(JSON Web Token)详解
  • 快手KAT-Dev-72B模型开源登顶!国产AI编程助手迎来技术突
  • 网站建设app开发有哪里可以做兼职翻译的网站
  • Web 开发入门:从前端到后端的全栈开发探索
  • Redis-Zest
  • 深圳市升华建设有限公司网站制作网页的
  • 用opencv来识别信用卡的号码 Vs 使用yolo+paddleocr
  • 小程序 地理位置授权怎么搞
  • 福州贸易公司网站制作seo的网站
  • 开网站 主机 服务器百度竞价广告的位置
  • 【Unity每日一记】Unity脚本教程:用脚本创建物体与输入系统详解
  • 动易网站官网使用python建设一个论坛网站
  • Java-集合练习3
  • 2.c++面向对象(六)
  • STM32 环境监测项目笔记(一):DHT11 温湿度传感器原理与驱动实现
  • C++ 完全背包
  • 【Linux】理解链接过程
  • 广州做网站多少钱怎么做简单的网站首页
  • 【机器人学中的状态估计】7.5.2习题证明:(Cu)^=(2cos(phi)+1)u^-u^C-C^Tu^公式证明
  • Flask、Nginx 与 Docker 的分工与协作
  • 怎么建立一个公司的网站吗ui界面设计作品模板
  • 网站浮动广告怎么做qq开放平台网站开发申请不通过的原因
  • redis中的list命令
  • 对网站建设课程的心得体会北京旅游网页设计