通过生成人工数据集合,基于Tensorflow实现y=3.1234*x+2.98线性回归
时间: 2024-05-14 09:14:18 浏览: 92
首先,我们需要生成一个人工数据集合,这可以通过使用NumPy库来完成。代码如下:
```python
import numpy as np
# 生成100个随机数作为x
x = np.random.rand(100)
# 计算y值
y = 3.1234 * x + 2.98
# 添加一些噪声
y = np.random.normal(y, 0.2)
```
接下来,我们可以使用Tensorflow来实现线性回归模型。代码如下:
```python
import tensorflow as tf
# 定义模型参数
W = tf.Variable(tf.random.normal([1]))
b = tf.Variable(tf.random.normal([1]))
# 定义模型函数
def model(x):
return W * x + b
# 定义损失函数
def loss(y_pred, y_true):
return tf.reduce_mean(tf.square(y_pred - y_true))
# 定义优化器
optimizer = tf.optimizers.SGD(learning_rate=0.01)
# 定义训练函数
def train(x, y):
with tf.GradientTape() as t:
y_pred = model(x)
current_loss = loss(y_pred, y)
grads = t.gradient(current_loss, [W, b])
optimizer.apply_gradients(zip(grads, [W, b]))
# 训练模型
for epoch in range(1000):
train(x, y)
# 打印模型参数
print("W =", W.numpy()[0])
print("b =", b.numpy()[0])
```
在训练模型之后,我们可以打印出模型参数W和b,它们应该接近于3.1234和2.98。
阅读全文