paddlepaddle環境の構築とテスト
2633 ワード
環境情報:
mac EI Capitan 10.11.6 (15G31),
pip --version
pip 18.0
python --version
Python 2.7.15
paddlepaddle開発環境(pip):
コードの作成:
実行コード:
python testLinear.py
出力結果:
iter=0,cost=1514.11755371
iter=50,cost=0.136218622327
iter=100,cost=0.0561065897346
iter=150,cost=0.0232472866774
iter=200,cost=0.00963244494051
iter=250,cost=0.00399107066914
iter=300,cost=0.00165370781906
iter=350,cost=0.000685188453645
iter=400,cost=0.000283911387669
iter=450,cost=0.000117633331683
9a+5b+2c+10d=[99.94308]
mac EI Capitan 10.11.6 (15G31),
pip --version
pip 18.0
python --version
Python 2.7.15
paddlepaddle開発環境(pip):
pip install paddlepaddle
コードの作成:
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import paddle.fluid as fluid
import numpy as np
#
np.random.seed(0)
outputs = np.random.randint(5, size=(10, 4))
res = []
for i in range(10):
# y=4a+6b+7c+2d
y = 4*outputs[i][0]+6*outputs[i][1]+7*outputs[i][2]+2*outputs[i][3]
res.append([y])
#
train_data=np.array(outputs).astype('float32')
y_true = np.array(res).astype('float32')
#
x = fluid.layers.data(name="x",shape=[4],dtype='float32')
y = fluid.layers.data(name="y",shape=[1],dtype='float32')
y_predict = fluid.layers.fc(input=x,size=1,act=None)
#
cost = fluid.layers.square_error_cost(input=y_predict,label=y)
avg_cost = fluid.layers.mean(cost)
#
sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.05)
sgd_optimizer.minimize(avg_cost)
#
cpu = fluid.CPUPlace()
exe = fluid.Executor(cpu)
exe.run(fluid.default_startup_program())
## , 500
for i in range(500):
outs = exe.run(
feed={'x':train_data,'y':y_true},
fetch_list=[y_predict.name,avg_cost.name])
if i%50==0:
print ('iter={:.0f},cost={}'.format(i,outs[1][0]))
#
params_dirname = "result"
fluid.io.save_inference_model(params_dirname, ['x'], [y_predict], exe)
#
infer_exe = fluid.Executor(cpu)
inference_scope = fluid.Scope()
#
with fluid.scope_guard(inference_scope):
[inference_program, feed_target_names,
fetch_targets] = fluid.io.load_inference_model(params_dirname, infer_exe)
#
test = np.array([[[9],[5],[2],[10]]]).astype('float32')
#
results = infer_exe.run(inference_program,
feed={"x": test},
fetch_list=fetch_targets)
# 【9,5,2,10】 y=4*9+6*5+7*2+10*2
print ("9a+5b+2c+10d={}".format(results[0][0]))
実行コード:
python testLinear.py
出力結果:
iter=0,cost=1514.11755371
iter=50,cost=0.136218622327
iter=100,cost=0.0561065897346
iter=150,cost=0.0232472866774
iter=200,cost=0.00963244494051
iter=250,cost=0.00399107066914
iter=300,cost=0.00165370781906
iter=350,cost=0.000685188453645
iter=400,cost=0.000283911387669
iter=450,cost=0.000117633331683
9a+5b+2c+10d=[99.94308]