深度学习之线性模型

深度学习之线性模型

  • 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,一经查实,立即删除!

相关文章

【Java】学习笔记:关于java.sql;

Connection conn null; Connection:这是一个 Java 接口,表示与数据库的连接。在这里,conn 是一个 Connection 类型的变量。 conn:这是变量的名称,可以根据需要进行更改。通常,conn 被用作表示数据库连接的…

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…

ChatGPT-4.0:塑造未来对话的智能架构

ChatGPT-4.0:塑造未来对话的智能架构 引言 在人工智能领域,ChatGPT-4.0的问世标志着对话智能技术的重大突破。这个最新的模型不仅在技术层面上实现了革命性的进步,而且在真实世界的应用中展示了前所未有的潜力。本文将深入探讨ChatGPT-4.0的…

深入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、软件官方下…

类与结构体(4)

简明扼要:上一期我们说了,这一期讲类的入门。 类是什么,类该怎么用,为什么要用类? 我们先来回答第一个问题,类是什么? 类是什么? C在C的基础上增加了面向对象编程(C是面向过程编…

【维生素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、消息事件消息开始…

c#异步编程

1.创建任务的几种方法 public void TaskAsync1(){//异步编程Task task new Task(() >{//Thread.Sleep(1000);Console.WriteLine("Task 的使用");});task.Start();}public void TaskAsync2(){Task.Factory.StartNew(() > { Console.WriteLine("创建异步线…

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

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

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

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

Java奠基】对象数组练习

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

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

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

python数据分析numpy基础之abs()用法和示例

1 python数据分析numpy基础之abs()用法和示例 python的通用函数ufunc (Universal functions)是一种对ndarray多维数组中的数据执行元素级运算的函数,即对数组的每个元素都调用通用函数。numpy的通用函数分为一元ufunc和二元ufunc。一元ufunc接收一个ndarray入参进行…

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

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