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

单变量线性回归tensorflow版

TensorFlow1:

%matplotlib inline

import matplotlib.pyplot as plt

import numpy as np

import tensorflow as tf

np.random.seed(5)

x_data = np.linspace(-1,1,100)

#help(np.random.randn)

#print(np.random.randn(*x_data.shape))

#np.random.randn(*x_data.shape) *0.4

#y_data = 2*x_data+1+np.random.randn(*x_data.shape) *0.4

#plt.scatter(x_data,y_data)

#plt.plot(x_data,2*x_data+1,color='red',linewidth=3)

x = tf.compat.v1.placeholder(tf.float32,name='x')

y = tf.compat.v1.placeholder(tf.float32,name='y')

def model(x,w,b):

return tf.multiply(x,w)+b

w = tf.Variable(1.0,name='w0')

b = tf.Variable(0.0,name='b0')

pred = model(x,w,b)

train_epochs = 10

learning_rate = 0.05

loss_function = tf.reduce_mean(tf.square(y-pred))

optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)

sess = tf.compat.v1.Session()

init = tf.compat.v1.global_variables_initializer()

sess.run(init)

for epoch in range(3):

for xs,ys in zip(x_data,y_data):

_,loss = sess.run([optimizer,loss_function],feed_dict={x:xs,y:ys})

b0temp = b.eval(session=sess)

w0temp = w.eval(session=sess)

plt.plot(x_data,w0temp*x_data+b0temp)

print("w:",sess.run(w))

print("b:",sess.run(b))

TensorFlow2:

import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

print(tf.__version__)

x_data = np.linspace(-1,1,100)

y_data = 2 * x_data + 1 +np.random.randn(*x_data.shape) * 0.4

w = tf.Variable(1.0,tf.float32)

b = tf.Variable(0.0,tf.float32)

def model(x,w,b):

return tf.multiply(w,x) + b

def loss(x,w,b,y):

pred = model(x,w,b)

square = tf.square(pred-y)

return tf.reduce_mean(square)

def grad(x,w,b,y):

with tf.GradientTape() as tape:

loss_ = loss(x,w,b,y)

return tape.gradient(loss_,[w,b])

step = 0

loss_list = []

disply_step = 10

training_epochs = 10

learning_rate = 0.05

#BGD

for epochs in range(training_epochs):

loss_ = loss(x_data,w,b,y_data)

loss_list.append(loss_)

print(loss_.numpy())

delta_w,delta_b = grad(xs,w,b,ys)

change_w = delta_w * learning_rate

change_b = delta_b * learning_rate

w.assign_sub(change_w)

b.assign_sub(change_b)

step+=1

if step % disply_step == 0:

print(step,"--->",loss_)

#SGD

#for epochs in range(training_epochs):

#for xs,ys in zip(x_data,y_data):

#loss_ = loss(xs,w,b,ys)

#loss_list.append(loss_)

#delta_w,delta_b = grad(xs,w,b,ys)

#change_w = delta_w * learning_rate

#change_b = delta_b * learning_rate

#w.assign_sub(change_w)

#b.assign_sub(change_b)

#step+=1

#if step % disply_step == 0:

#print(step,"--->",loss_)

print("w",w.numpy())

print("b",b.numpy())

#plt.plot(x_data,x_data*w.numpy() + b.numpy())

plt.plot(loss_list)

http://www.zskr.cn/news/30760.html

相关文章:

  • 软考六
  • 应用安全 ---
  • HDFS文件系统
  • Java 类加载器
  • JAVA RMI编程
  • 大资料毕业设计选题推荐-基于大数据的全球产品库存数据分析与可视化系统-大材料-Spark-Hadoop-Bigdata
  • 字符与Java国际化编程
  • 013的加密世界权威指南_第二部分
  • Redis 持久化 内存模型 - 指南
  • 详细介绍:在不同开发语言与场景下设计模式的使用
  • zr模拟赛day8T2
  • Android下加载libUnreal.so文件
  • 2025 年 10 月不锈钢厨房设备厂家最新推荐,产能、专利、环保三维数据透视
  • DINO版本进化
  • 2025 年 10 月餐饮厨房设备厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 欧拉定理
  • 手把手在 Linux 上安装 Docker 与 Docker Compose(包含 Ubuntu、CentOS 等 11 个发行版)
  • 2025年10月长白山亲子酒店推荐榜:四季主题与温泉度假对比排行
  • 2025年10月工装设计公司推荐榜:全国服务力对比评测
  • 2025年10月法律咨询律所推荐榜:盈科多领域权威排名一览
  • 2025 年 10 月仿石漆厂家最新推荐,专业制造与品牌保障口碑之选
  • 2025年10月防脱生发产品排名榜:术后修复与日常防脱对比
  • Level 0~8 WP
  • 详细介绍:[特殊字符]️ Spring Cloud Eureka 三步通:搭建注册中心 + 服务注册 + 服务发现,通俗易懂!
  • 2025年10月中国办公家具定制公司推荐:口碑排行榜与权威解析
  • 2025年10月中国办公家具定制公司推荐:主流口碑排行榜与避坑指南
  • 芯片落地之道
  • 107.计组--四章
  • 2025 年 10 月铝合金切削液厂家最新推荐,高性能与可靠性兼具的优质品牌
  • 2025 年 10 月硬质合金切削液厂家最新推荐,精准检测与稳定性能深度解析