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

企业标准版网站建设网站模板下载源码

企业标准版网站建设,网站模板下载源码,旅游门户网站建设项目招标,网站301检测使用Numpy实现机器学习 前面已经介绍了Numpy、Tensor的基础内容,对如何使用Numpy、Tensor操作数组有 了一定认识。为了加深大家对使用PyTorch完成机器学习、深度学习的理解,本章剩余章 节将分别用Numpy、Tensor、autograd、nn及optimal来实现同一个机器学…

使用Numpy实现机器学习

前面已经介绍了Numpy、Tensor的基础内容,对如何使用Numpy、Tensor操作数组有
了一定认识。为了加深大家对使用PyTorch完成机器学习、深度学习的理解,本章剩余章
节将分别用Numpy、Tensor、autograd、nn及optimal来实现同一个机器学习任务,比较它
们之间的异同及各自优缺点,从而使读者加深对PyTorch的理解。

首先,我们用最原始的Numpy实现有关回归的一个机器学习任务,不用PyTorch中的
包或类。这种方法代码可能多一点,但每一步都是透明的,有利于理解每步的工作原理。
主要步骤包括:
首先,给出一个数组x,然后基于表达式y=3x2+2y=3x^2+2y=3x2+2加上一些噪音数据到达另一组数
据y。

然后,构建一个机器学习模型,学习表达式y=wx2+by=wx^{2}+by=wx2+b 的两个参数w、b。利用数组x,y
的数据为训练数据。
最后,采用梯度梯度下降法,通过多次迭代,学习到w、b的值。
以下为具体步骤:

1)导入需要的库。

# -*- coding: utf-8 -*-
import numpy as np
%matplotlib inline
from matplotlib import pyplot as plt

2)生成输入数据x及目标数据y。

设置随机数种子,生成同一个份数据,以便用多种方法进行比较。

np.random.seed(100)
x = np.linspace(-1, 1, 100).reshape(100,1)
y = 3*np.power(x, 2) +2+ 0.2*np.random.rand(x.size).reshape(100,1)

3)查看x、y数据分布情况。

# 画图
plt.scatter(x, y)
plt.show()

完整代码

import numpy as npfrom matplotlib import pyplot as plt
np.random.seed(100)
x=np.linspace(-1,1,100).reshape(100,1)
y=3*np.power(x,2)+2+0.2*np.random.rand(x.size).reshape(100,1)plt.scatter(x,y)
plt.show()

运行结果如图2-11所示。

image

4)初始化权重参数。

# 随机初始化参数
w1 = np.random.rand(1,1)
b1 = np.random.rand(1,1)

5)训练模型。

定义损失函数,假设批量大小为100:
Loss=12∑i=1100(wxi2+b−yi)2\text{Loss} = \frac{1}{2} \sum_{i=1}^{100} (w x_i^2 + b - y_i)^2Loss=21i=1100(wxi2+byi)2

对损失函数求导:
∂Loss∂w=∑i=1100(wxi2+b−yi)xi2\frac{\partial \text{Loss}}{\partial w} = \sum_{i=1}^{100} (w x_i^2 + b - y_i) x_i^2wLoss=i=1100(wxi2+byi)xi2

∂Loss∂b=∑i=1100(wxi2+b−yi)\frac{\partial \mathrm{Loss}}{\partial b}=\sum_{i=1}^{100}\left(w x_{i}^{2}+b-y_{i}\right)bLoss=i=1100(wxi2+byi)

利用梯度下降法学习参数,学习率为lr。
$( w_{1^-} = lr * \frac{\partial \text{Loss}}{\partial w} ) $

$( b_{1^-} = lr * \frac{\partial \text{Loss}}{\partial b} ) $

用代码实现上面这些表达式:

import numpy as np
from matplotlib import pyplot as pltlr=0.001 #学习率
#随机初始化参数
w1=np.random.rand(1,1)
b1=np.random.rand(1,1)
x = np.linspace(-1, 1, 100).reshape(100,1)
y = 3*np.power(x, 2) +2+ 0.2*np.random.rand(x.size).reshape(100,1)
for i in range(800):#前向传播y_pred=np.power(x,2)*w1+b1#定义损失函数loss=0.5*(y_pred-y)**2loss=loss.sum()#计算梯度grad_w=np.sum((y_pred-y)*np.power(x,2))grad_b=np.sum((y_pred-y))#使用梯度下降法,是loss最小w1-=lr*grad_wb1-=lr*grad_bplt.plot(x,y_pred,'r-',label='predict')
plt.scatter(x,y,color='blue',marker='o',label='true')
plt.xlim(-1,1)
plt.ylim(2,6)
plt.legend()
plt.show()
print(w1,b1)

运行效果

image
从结果看来,学习效果还是比较理想的。

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

相关文章:

  • 代驾网站开发乐清网络公司哪家好
  • 海南 网站 建设制作网页用什么进行页面布局
  • 网站从建设到运行要多少钱动漫做的游戏 迅雷下载网站
  • 网站提供商基于php的家具公司网站
  • 网站建设伍首选金手指小程序流量点击推广平台
  • 建立网站的作用合肥做网站的公司
  • 网站标题和描述优化网站建设字体
  • 诚通凯胜生态建设有限公司网站php建站软件
  • app与微网站的区别是什么意思好用app制作
  • php 英文网站模板响应式网站开发要注意哪些
  • 怎么知道网站的空间是谁做的彩票网站开发违法
  • 自助健站大同推广型网站建设
  • 合肥瑶海区网站建设费用网络营销的常见方式有哪些
  • asp购物网站客户查看购物车网络推广哪个平台最好
  • 中国建设教育协会培训中心网站网站备案拍照 广州
  • 黄石手机网站建设源代码网站和模板做的区别
  • 广州网站外贸推广全国家装官网
  • 台州做网站需要多少钱yum nginx wordpress
  • 用vs做网站 怎么安装百度蜘蛛抓取新网站
  • 黄页网站 phpwordpress工单插件
  • 介绍几个能进去的a站深圳网站建设多少钱
  • 写作网站挣钱对比网页设计与制作教程第三版张兵义
  • 网站开发进度在什么网站做公司人员增减
  • 网页和网站区别是什么免费海外网络连接器
  • 厦门网页建站申请比较好wordpress 右侧广告
  • 专业html5网站建设临沂建设局网站
  • 上海建设网站的网站电子商务网站的功能
  • 微机课做网站网站建设常出现的问题
  • 珠海移动网站定制福建亨立建设集团有限公司网站
  • 网站制作在哪里比较好佛山百度网站排名优化