当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Skywalking series blog 5-apm-customize-enhance-plugin
- 你的财务报告该换个高级的套路了——财务分析驾驶舱
- DevOps是什么
- hadoop 命令总结
- Filecoin主网上线以来Filecoin矿机扇区密封到底是什么意思
- “颜值经济”的野望:华熙生物净利率六连降,收购案遭上交所问询
- What is the side effect free method? How to name it? - Mario
- PN8162 20W PD快充芯片,PD快充充电器方案
- (2)ASP.NET Core3.1 Ocelot路由
- Programmer introspection checklist
猜你喜欢
中小微企业选择共享办公室怎么样?
What is the side effect free method? How to name it? - Mario
Using Es5 to realize the class of ES6
I'm afraid that the spread sequence calculation of arbitrage strategy is not as simple as you think
How to demote a domain controller in Windows Server 2012 and later
Network security engineer Demo: the original * * is to get your computer administrator rights! 【***】
Face to face Manual Chapter 16: explanation and implementation of fair lock of code peasant association lock and reentrantlock
Existence judgment in structured data
Architecture article collection
“颜值经济”的野望:华熙生物净利率六连降,收购案遭上交所问询
随机推荐
Serilog原始碼解析——使用方法
怎么理解Python迭代器与生成器?
Don't go! Here is a note: picture and text to explain AQS, let's have a look at the source code of AQS (long text)
一篇文章带你了解SVG 渐变知识
助力金融科技创新发展,ATFX走在行业最前列
Vuejs development specification
全球疫情加速互联网企业转型,区块链会是解药吗?
Programmer introspection checklist
Details of dapr implementing distributed stateful service
Top 10 best big data analysis tools in 2020
In order to save money, I learned PHP in one day!
How to encapsulate distributed locks more elegantly
Real time data synchronization scheme based on Flink SQL CDC
A debate on whether flv should support hevc
hadoop 命令总结
The choice of enterprise database is usually decided by the system architect - the newstack
Swagger 3.0 天天刷屏,真的香嗎?
I think it is necessary to write a general idempotent component
Troubleshooting and summary of JVM Metaspace memory overflow
How to demote a domain controller in Windows Server 2012 and later