Python3.7 线性回归
发布日期:2021-05-07 21:43:02 浏览次数:22 分类:精选文章

本文共 2310 字,大约阅读时间需要 7 分钟。

# -*- coding: UTF-8 -*-import tensorflow as tfimport numpy as npimport osimport matplotlib.pyplot as pltimport timeos.environ['TF_CPP_MIN_LOG_LEVEL']='1'print ("GPU",tf.test.is_gpu_available())a=tf.constant(2.)b=tf.constant(4.)print (a*b)def comput_error_for_line_given_points(b,w,points):    total_error=0    for i in range(0,len(points[0])):        x=points[0][i]        y=points[1][i]        total_error+= ((w*x+b)-y)**2    return total_error/float(len(points))def step_gradient(b_current,w_current,points,learningRate):    b_gradient=0    w_gradient=0    N=float(len(points[0]))    for i in range(0,len(points[0])):        x=points[0][i]        y=points[1][i]        b_gradient+=(2/N)*((w_current*x+b_current)-y)        w_gradient+=(2/N)*x*((w_current*x+b_current)-y)    new_b=b_current-(learningRate*b_gradient)    new_w=w_current-(learningRate*w_gradient)    return [new_b,new_w]def gradient_descent_runner(points,starting_b,starting_w,learning_rate,num_iterations):    b=starting_b    w=starting_w    for i in range(num_iterations):        b,w=step_gradient(b,w,np.array(points),learning_rate)    return [b,w]def gradient_value(b,w,X):    Y=w*X+b    return Ydef display_vaule(points):    for i in range(0,len(points[0])):        x=points[0][i]        y=points[1][i]        print ("x = {},y = {}".format(x,y))    num_iterations=2500x = 4* np.random.rand(num_iterations, 1)#y = 4 + 3 * x + 4*np.random.rand(num_iterations, 1)y = 4 + 3 * x + np.random.randn(num_iterations, 1)points=[x,y]#display_vaule(points)learning_rate=0.0001initial_b=0initial_w=0error_value=comput_error_for_line_given_points(initial_b,initial_w,points)print ("Starting gradient at b={},w={},error={}\n".format(initial_b,initial_w,error_value))t1=time.process_time()print ("running......\n")[b,w]=gradient_descent_runner(points,initial_b,initial_w,learning_rate,num_iterations)error_value=comput_error_for_line_given_points(b,w,points)print ("After gradient at iterations={},b={},w={},error={}\n".format(num_iterations,b,w,error_value))t2=time.process_time()print ("time --> %ds"% (t2-t1))X=5value=gradient_value(b,w,X)print ("if X={},gradient Y={}".format(X,value))X_new = np.array([[0], [4]])y_predict = gradient_value(b,w,X_new)plt.plot(X_new, y_predict, 'r-')plt.plot(x, y, 'g.')plt.axis([0, 4, 0, 18])plt.show()

在这里插入图片描述

在这里插入图片描述
说明:tensorflow2.0

上一篇:Python爬虫解析网页并生成m3u8文件
下一篇:获取某app直播源

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月15日 01时58分08秒