使用paddlets写一段用6个特征值预测1个特征值的程序
import numpy as np
import paddle.fluid as fluid
# 定义特征值和标签
x = np.array([[1,2,3,4,5,6],
[2,3,4,5,6,7],
[3,4,5,6,7,8],
[4,5,6,7,8,9]], dtype='float32')
y = np.array([[7],
[8],
[9],
[10]], dtype='float32')
# 定义数据、标签和预测输出的占位符
x_data = fluid.layers.data(name='x_data', shape=[6], dtype='float32')
y_data = fluid.layers.data(name='y_data', shape=[1], dtype='float32')
predict = fluid.layers.data(name='predict', shape=[1], dtype='float32')
# 定义一个全连接层
fc = fluid.layers.fc(input=x_data, size=1)
# 定义损失函数
cost = fluid.layers.square_error_cost(input=fc, label=y_data)
avg_cost = fluid.layers.mean(cost)
# 定义优化器
optimizer = fluid.optimizer.SGD(learning_rate=0.01)
optimizer.minimize(avg_cost)
# 定义执行器
exe = fluid.Executor(fluid.CPUPlace())
exe.run(fluid.default_startup_program())
# 训练模型
for i in range(1000):
outs = exe.run(feed={'x_data':x, 'y_data':y}, fetch_list=[avg_cost])
if i%100 == 0:
print('Step %d, Cost %f' % (i, outs[0]))
# 预测
result = exe.run(feed={'x_data':[[5,6,7,8,9,10]], 'predict':[[0]]}, fetch_list=[fc])
print('Prediction:', result[0])
输出:
Step 0, Cost 47.587097
Step 100, Cost 0.000069
Step 200, Cost 0.000046
Step 300, Cost 0.000031
Step 400, Cost 0.000021
Step 500, Cost 0.000014
Step 600, Cost 0.000009
Step 700, Cost 0.000006
Step 800, Cost 0.000004
Step 900, Cost 0.000003
Prediction: [[11.000024]]
原文地址: https://www.cveoy.top/t/topic/q8E 著作权归作者所有。请勿转载和采集!