Tensorflow2-ilinear-regression-random-data

Tensorflow2实现线性回归

头像
逆旅 2022-09-11T21:30:29

1.生成随机数据

x = []
y = []

for i in range(1,25):
    tem = i + random.random()*4
    x.append(tem)
    y.append(1.3*tem + random.random()*10)

plt.scatter(x, y)
plt.title("随机生成的数据")
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()

随机数据显示

2.TF回归

tf.config.set_soft_device_placement(True)
model = tf.keras.Sequential([
    tf.keras.layers.Dense(1,input_shape=(1,),activation="relu"),
     tf.keras.layers.Dense(5,activation="relu"),
     tf.keras.layers.Dense(1)
    ])

model.compile(optimizer="RMSprop", loss="mse")
history = model.fit(x,y,epochs=1000)
model.predict([5])

type1 = plt.scatter(x, y1)
type2 = plt.scatter(x, y)
plt.legend((type1,type2),('回归数据','原始数据'))
plt.title("随机生成的数据&回归数据")
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()

随机生成的数据&回归数据

3.补充&&完整代码

optimizer可以选择 RMSprop 、Adam 、Nadam 等方法,但是神经网络层数可能要修改

import random
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt


x = []
y = []
for i in range(1,25):
    tem = i + random.random()*4
    x.append(tem)
    y.append(1.3*tem + random.random()*10)

plt.scatter(x, y)
plt.title("随机生成的数据")
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()

tf.config.set_soft_device_placement(True)
model = tf.keras.Sequential([
    tf.keras.layers.Dense(1,input_shape=(1,),activation="relu"),
     tf.keras.layers.Dense(5,activation="relu"),
     tf.keras.layers.Dense(1)
    ])

model.compile(optimizer="RMSprop", loss="mse")
history = model.fit(x,y,epochs=1000)
model.predict([5])

type1 = plt.scatter(x, y1)
type2 = plt.scatter(x, y)
plt.legend((type1,type2),('回归数据','原始数据'))
plt.title("随机生成的数据&回归数据")
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()
最后修改: 2022-09-11T21:32:49

版权声明:署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)

comment 评论

验证图片
评论
仿 Valine