深度学习之线性模型

深度学习之线性模型

  • y = w * x模型
    • 思路
  • y = w * x + b模型
    • 思路

y = w * x模型

思路

这里求权重w , 求最适合的权重,就是求损失值最小的时候
这里用穷举法:在一个范围内,列出w的所有值,并且计算出每组数据的平均损失值,以w 为横坐标, 损失值为纵坐标,作图,找到损失值最低的点,对应的就是最适合 的w

import numpy as np
import matplotlib.pyplot as plt#线性模型: y = w ·  ···* x
# 此次数据集模型: y = 2x
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]def forward(x):return x*w#预测的损失值,预测的y值到真实y值的之差
# 由于可能是正的,也有可能是负的,这里的损失值用它们的平方来表示def loss(x, y):return (forward(x) - y)**2#穷举法:金肯列举一个范围的所有的w值,求出每个w值的时,三组数据的loss值的平均值,
#以每组数据的w和平均损失值值为 x, y坐标,选出损失值最小的w 作为合适的ww_list = []
mse_list = []for w in np.arange(0.0, 4.1, 0.1):print("w=", w)l_sum = 0for x_val, y_val in zip(x_data, y_data):y_pred_val = forward(x_val)loss_pred_val = loss(x_val, y_val)l_sum += loss_pred_valprint('\t', x_val, y_val, y_pred_val, loss_pred_val)print("MSE= ", l_sum / 3)w_list.append(w)mse_list.append(l_sum/3)plt.plot(w_list, mse_list)
plt.xlabel("w")
plt.ylabel("ylable")
plt.show()

在这里插入图片描述

如图,w = 2时,损失值最小,所以w = 2是该训练数据合适的权重

y = w * x + b模型

思路

y = w * x + b模型,就需要3D绘图
先利用mershgrid函数, Axes3D函数,建立网格坐标
在利用plot_surface进行绘图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#这里设函数为y=3x+2
x_data = [1.0,2.0,3.0]
y_data = [5.0,8.0,11.0]def forward(x):return x * w + bdef loss(x,y):y_pred = forward(x)return (y_pred-y)*(y_pred-y)mse_list = []
W=np.arange(0.0,4.1,0.1)
B=np.arange(0.0,4.1,0.1)
[w,b]=np.meshgrid(W,B) #生成2维的网格坐标l_sum = 0for x_val, y_val in zip(x_data, y_data):y_pred_val = forward(x_val)print(y_pred_val)loss_val = loss(x_val, y_val)l_sum += loss_valfig = plt.figure()
#ax = Axes3D(fig)#pycharm版本原因,需要用这样的代码绘制坐标图
ax= Axes3D(fig, auto_add_to_figure=False)
fig.add_axes(ax)ax.plot_surface(w, b, l_sum/3)
plt.show()

在这里插入图片描述

如果所示,这是该训练数据的图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/678770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 移动应用开发 创建第一个Android项目

文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录(所有图片、布局、字AndroidManifest.xml 有四大组件,程序添加权限声明 Project下的结构 二、开发android时,部分库下载异…

在没有鼠标或键盘的情况下在 Mac 上如何启用蓝牙?

通过这个技巧,小编将向您展示几种无需鼠标或键盘即可在 Mac 上重新启用蓝牙的方法。如果您想开始使用蓝牙配件,但还没有连接,这会很有用。 无需鼠标即可启用蓝牙 蓝牙是iPhone、iPad和 Mac 的标准配置。它确保您可以无线使用各种配件&#…

yolo层数连接

head [-1,6]连接的是第六层 [-1,4连接的是第四层

Leecode之合并两个有序链表

一.题目及剖析 https://leetcode.cn/problems/merge-two-sorted-lists/description/ 二.思路引入 用指针遍历两个链表并实时比较,较小的元素进行尾差,然后较小元素的指针接着向后遍历 三.代码引入 /*** Definition for singly-linked list.* struct ListNode {* int va…

深入Pandas:精通文本数据处理的20+技巧与应用实例【第68篇—python:文本数据处理】

文章目录 Pandas文本数据处理方法详解1. str/object类型转换2. 大小写转换3. 文本对齐4. 获取长度5. 出现次数6. 编码方向7. 字符串切片8. 字符串替换9. 字符串拆分10. 字符串连接11. 字符串匹配12. 去除空格13. 多条件过滤14. 字符串排序15. 字符串格式化16. 多列文本操作17. …

网络扫描神器:Nmap 保姆级教程(附链接)

一、介绍 Nmap(Network Mapper)是一款用于网络发现和安全审计的开源工具。它最初由 Gordon Lyon(也被称为 Fyodor Vaskovich)开发,是一款功能强大且广泛使用的网络扫描工具。Nmap 允许用户在网络上执行主机发现、端口…

uTools工具使用

之前发现一款非常有用的小工具,叫uTools,该软件集成了比如进制转换、json格式化、markdown、翻译、取色等等集插件大成,插件市场提供了很多开源插件工具。可以帮助开发人员节省了寻找各种处理工具的时间,非常推荐。 1、软件官方下…

【维生素C语言】附录:strlen 函数详解

写在前面:本篇将专门为 strlen 函数进行讲解,总结了模拟实现 strlen 函数的三种方法,并对其进行详细的解析。手写库函数是较为常见的面试题,希望通过本篇博客能够加深大家对 strlen 的理解。 0x00 strlen函数介绍 【百度百科】str…

vb.net极简版扫雷16*16,40雷源代码,仅供学习和参考

效果图:下载地址:链接:https://pan.baidu.com/s/14rrZujpQbfs-9HMw_lL-3Q?pwd1234 提取码:1234 源代码:只有120行 Imports System.Math Public Class Form1Dim Booms As New List(Of Point)Dim MyBooms As New List…

Activiti7(流程引擎)简单笔记,附带作者执行的Demo代码文件

文章目录 一、Activiti7流程基础1、最简单的流程2、流程值表达式3、方法表达式4、节点监听器5、流程变量6、候选人7、候选人组8、流程网关排他网关并行网关包容网关事件网关 二、Activiti7流程事件1、定时器事件定时器开始事件定时器中间事件定时器边界事件 2、消息事件消息开始…

【Java EE初阶十二】网络编程TCP/IP协议(一)

1. 网络编程 通过网络,让两个主机之间能够进行通信->就这样的通信来完成一定的功能,进行网络编程的时候,需要操作系统给咱们提供一组API,通过这些API来完成编程;API可以认为是应用层和传输层之间交互的路径&#xf…

多旋翼无人机飞行控制详解,四旋翼无人机飞控原理深入解析

在四旋翼无人机中,相邻的两个螺旋桨旋转方向是相反的。如图所示,三角形红箭头表示飞机的机头朝向,螺旋桨M1、M3的旋转方向为逆时针,螺旋桨M2、M4的旋转方向为顺时针。当飞行时,M2、M4所产生的逆时针反作用力&#xff0…

Java奠基】对象数组练习

目录 商品对象信息获取 商品对象信息输入 商品对象信息计算 商品对象信息统计 学生数据管理实现 商品对象信息获取 题目要求是这样的: 定义数组存储3个商品对象。 商品的属性:商品的id,名字,价格,库存。 创建三个…

双活工作关于nacos注册中心的数据迁移

最近在做一个双活的项目,在纠结一个注册中心是在双活机房都准备一个,那主机房的数据如果传过去呢,查了一些资料,最终在官网查到了一个NacosSync 的组件,主要用来做数据传输的,并且支持在线替换注册中心的&a…

学生学习知识点总结作文试题练习题考试资讯网站源码

(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买) 资源简介 学生学习知识点总结作文试题练习题考试资讯网站源码+WAP手机版+采集优化版-整站打包 整站打包源码,简洁大…

多模态(二)--- CoCa原理与源码解读

1 CoCa简介 CoCa代表Contrastive Captioner 的缩写,代表模型用两个目标函数训练出来的,一个是Contrastive Loss,一个是Captioning Loss。 2 CoCa训练流程 利用ViT对image进行encoder编码获得图像特征token对图像特征进行attention pooling…

第四篇:SQL语法-DDL-数据定义语言

大年初一限定篇😀 (祝广大IT学习者、工作者0 error 0 warning!) 一,DDL数据库操作 (一)库的查询操作 1.列出所有已定义数据库 show databases; 2.查询当前所处数据库 select database(); &…

基于Linux的HTTP代理服务器搭建与配置实战

在数字化世界中,HTTP代理服务器扮演着至关重要的角色,它们能够帮助我们管理网络请求、提高访问速度,甚至在某些情况下还能保护我们的隐私。而Linux系统,凭借其强大的功能和灵活性,成为了搭建HTTP代理服务器的理想选择。…

【C语言——打印乘法口诀表】

乘法表: 我们可以定义一个i控制行的变化,外加看上图的表得知我们需要用到循环结构,i是行需要不停的加加,因此,for循环比较好用,可以用两个嵌套的循环,外层循环即用到的i表示的是每一行的打印&am…

【从Python基础到深度学习】4. Linux 常用命令

1.配置root用户密码 root用户为系统默认最高权限用户,其他用户密码修改命令与root用户修改密码命令相同 sudo passwd root 2.添加用户(henry) sudo useradd -m henry -s /bin/bash 3.配置henry用户密码 Xshell下连接新用户(hen…