当前位置:网站首页>Windows 10 tensorflow (2) regression analysis of principles, deep learning framework (gradient descent method to solve regression parameters)
Windows 10 tensorflow (2) regression analysis of principles, deep learning framework (gradient descent method to solve regression parameters)
2020-11-06 01:22:00 【Elementary school students in IT field】
windows10 tensorflow( Two ) Regression analysis of principle and actual combat , Deep learning framework ( The gradient descent method is used to solve the regression parameters )
TF Data generation : Reference resources TF The data generated 12 Law
TF Basic principles and conceptual understanding : tensorflow( One )windows 10 64 Bit installation tensorflow1.4 And basic concept interpretation tf.global_variables_initializer
Model :
A simple linear regression y = W * x + b, use numpy Building complete regression data , And increase interference noise
import numpy as np
# Establish a linear regression equation of one variable y=0.1x1+0.3 , At the same time, a positive distribution deviation np.random.normal(0.0,0.03) For witnessing TF The algorithm of
num_points=1000
vectors_set=[]
for i in range(num_points):
x1=np.random.normal(loc=0.0,scale=0.66)
y1=x1*0.1+0.3+np.random.normal(0.0,0.03)
vectors_set.append([x1,y1])
x_data=[v[0] for v in vectors_set]
y_data=[v[1] for v in vectors_set]
Graphic display Data distribution results
import matplotlib.pyplot as plt
#https://www.cnblogs.com/zqiguoshang/p/5744563.html
##line_styles=['ro-','b^-','gs-','ro--','b^--','gs--'] #set line style
plt.plot(x_data,y_data,'ro',marker='^',c='blue',label='original_data')
plt.legend()
plt.show()
adopt TensorFlow The code finds the best parameters W And b, Make the input data of x_data, Generate output data y_data, In this case, there will be a straight line y_data=W*x_data+b. The reader knows W It will be close 0.1,b near 0.3, however TensorFlow Don't know , It needs to calculate the value itself . Therefore, the gradient descent method is used to solve the data iteratively
import tensorflow as tf
import math
# One 、 establish graph data
# Arbitrarily construct the parameters of a univariate regression equation W And b
W=tf.Variable(tf.random_uniform([1], minval=-1.0, maxval=1.0))
b=tf.Variable(tf.zeros([1]))
y=W*x_data+b
# Define the following minimum variance
#1. Define the minimum square root of error
loss=tf.reduce_mean(tf.square(y-y_data))
#2.learning_rate=0.5
optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.5)
#3. Optimize the minimum
train=optimizer.minimize(loss)
# Two 、 Initialize variable
init=tf.global_variables_initializer()
# 3、 ... and 、 start-up graph
sess=tf.Session()
sess.run(init)
for step in range(8):
sess.run(train)
print("step={},sess.run=(W)={},sess.run(b)={}".format(step,sess.run(W),sess.run(b)))
Here's the iteration 8 Results of . Gradient is like a compass , Guiding us in the smallest direction . To calculate the gradient ,TensorFlow It will take the derivative of the wrong function , In our case , The algorithm needs to work on W and b Calculating partial derivatives , To indicate the direction of advance in each iteration .
The following is the visualization of each iteration :
#Graphic display
# print(sub_1+'41')
# Be careful : You can use commas for each parameter , Separate . The first parameter represents the number of rows in the subgraph ; The second parameter represents the number of columns in the row of images ; The third parameter represents the number of images in each row , From left to right , From top to next add .
plt.subplot(4,2,step+1)
plt.plot(x_data,y_data,'ro')
plt.plot(x_data,sess.run(W)*x_data+
sess.run(b),label=step)
plt.legend()
plt.show()

版权声明
本文为[Elementary school students in IT field]所创,转载请带上原文链接,感谢
边栏推荐
- 在大规模 Kubernetes 集群上实现高 SLO 的方法
- Leetcode's ransom letter
- Asp.Net Core learning notes: Introduction
- 教你轻松搞懂vue-codemirror的基本用法:主要实现代码编辑、验证提示、代码格式化
- 数字城市响应相关国家政策大力发展数字孪生平台的建设
- 深度揭祕垃圾回收底層,這次讓你徹底弄懂她
- PN8162 20W PD快充芯片,PD快充充电器方案
- TRON智能钱包PHP开发包【零TRX归集】
- Synchronous configuration from git to consult with git 2consul
- Can't be asked again! Reentrantlock source code, drawing a look together!
猜你喜欢
The difference between Es5 class and ES6 class
Working principle of gradient descent algorithm in machine learning
一篇文章带你了解CSS3圆角知识
阿里云Q2营收破纪录背后,云的打开方式正在重塑
Face to face Manual Chapter 16: explanation and implementation of fair lock of code peasant association lock and reentrantlock
[JMeter] two ways to realize interface Association: regular representation extractor and JSON extractor
Summary of common algorithms of linked list
Not long after graduation, he earned 20000 yuan from private work!
Basic principle and application of iptables
数据产品不就是报表吗?大错特错!这分类里有大学问
随机推荐
Arrangement of basic knowledge points
How to encapsulate distributed locks more elegantly
Existence judgment in structured data
6.3 handlerexceptionresolver exception handling (in-depth analysis of SSM and project practice)
The difference between Es5 class and ES6 class
I'm afraid that the spread sequence calculation of arbitrage strategy is not as simple as you think
In order to save money, I learned PHP in one day!
Save the file directly to Google drive and download it back ten times faster
人工智能学什么课程?它将替代人类工作?
熬夜总结了报表自动化、数据可视化和挖掘的要点,和你想的不一样
It's so embarrassing, fans broke ten thousand, used for a year!
Want to do read-write separation, give you some small experience
Jmeter——ForEach Controller&Loop Controller
(1) ASP.NET Introduction to core3.1 Ocelot
This article will introduce you to jest unit test
Vue 3 responsive Foundation
Swagger 3.0 天天刷屏,真的香嗎?
Leetcode's ransom letter
Elasticsearch database | elasticsearch-7.5.0 application construction
Character string and memory operation function in C language