使用tensorflow实现多变量线性回归模型,权重有3个,分别为9.0、2.0、8.0,偏置为1.0,无需在控制台输出结果,但是要使用matplotlib输出图像
时间: 2024-05-15 22:19:14 浏览: 8
以下是实现多变量线性回归模型的代码:
```python
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# 定义训练数据
x_data = np.random.rand(100, 3)
w_data = np.array([9.0, 2.0, 8.0])
b_data = 1.0
y_data = np.matmul(x_data, w_data) + b_data
# 定义模型
x = tf.placeholder(tf.float32, [None, 3])
w = tf.Variable(tf.zeros([3, 1]))
b = tf.Variable(tf.zeros([1]))
y = tf.matmul(x, w) + b
# 定义损失函数和优化器
y_ = tf.placeholder(tf.float32, [None, 1])
loss = tf.reduce_mean(tf.square(y_ - y))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化变量
init = tf.global_variables_initializer()
# 训练模型
with tf.Session() as sess:
sess.run(init)
for i in range(1000):
sess.run(train, feed_dict={x: x_data, y_: y_data})
# 输出权重和偏置
w_value, b_value = sess.run([w, b])
print("Weights: ", w_value.flatten())
print("Bias: ", b_value)
# 绘制拟合曲线
y_pred = np.matmul(x_data, w_value) + b_value
plt.scatter(range(len(y_data)), y_data, color='blue')
plt.plot(range(len(y_pred)), y_pred, color='red')
plt.show()
```
该代码首先生成了100个3维随机向量作为训练数据,权重为[9.0, 2.0, 8.0],偏置为1.0,然后定义了模型、损失函数和优化器,并通过GradientDescentOptimizer进行训练。训练完成后,输出了权重和偏置,并使用matplotlib绘制了拟合曲线。