
Python3.7 线性回归
说明:tensorflow2.0
发布日期: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()

发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月15日 01时58分08秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Rust 内置 trait :PartialEq 和 Eq
2021-05-09
Hibernate(十四)抓取策略
2021-05-09
[菜鸟的设计模式之旅]观察者模式
2021-05-09
Spring-继承JdbcDaoSupport类后简化配置文件内容
2021-05-09
Java基础IO流(一)
2021-05-09
Hibernate入门(四)---------一级缓存
2021-05-09
MySQL事务(学习笔记)
2021-05-09
一个web前端开发者的日常唠叨
2021-05-09
内存分配-slab分配器
2021-05-09
技术写作技巧分享:我是如何从写作小白成长为多平台优秀作者的?
2021-05-09
Jupyter Notebook 暗色自定义主题
2021-05-09
[Python学习笔记]组织文件
2021-05-09
基于Redo Log和Undo Log的MySQL崩溃恢复流程
2021-05-09
从RocketMQ的Broker源码层面验证一下这两个点
2021-05-09
如何正确的在项目中接入微信JS-SDK
2021-05-09
纵览全局的框框——智慧搜索
2021-05-09
快服务流量之争:如何在快服务中占领一席之地
2021-05-09
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
2021-05-09
Unity平台 | 快速集成华为性能管理服务
2021-05-09
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
2021-05-09