zoukankan      html  css  js  c++  java
  • PaddlePaddle Perceptron Example

     

    简单例子 y = 2x + 0.05

     

    首先加载需要的包

    In [2]:
    import paddle.v2 as paddle
    import numpy as np
    
     

    初始化PaddlePaddle

    In [3]:
    paddle.init(use_gpu=False, trainer_count=1)
    
     

    模型结构

    In [4]:
    x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(1))
    y_predict = paddle.layer.fc(input=x,
                                    size=1,
                                    act=paddle.activation.Linear())
    y = paddle.layer.data(name='y', type=paddle.data_type.dense_vector(1))
    cost = paddle.layer.square_error_cost(input=y_predict, label=y)
    
     

    保存网络拓扑(optional)

    In [24]:
    # Save the inference topology to protobuf.
    inference_topology = paddle.topology.Topology(layers=y_predict)
    with open("inference_topology.pkl", 'wb') as f:
        inference_topology.serialize_for_inference(f)
    
     

    创建参数

    In [25]:
    parameters = paddle.parameters.create(cost)
    
     

    创建Trainer

    In [26]:
    optimizer = paddle.optimizer.Momentum(momentum=0)
    
    trainer = paddle.trainer.SGD(cost=cost,
                                 parameters=parameters,
                                 update_equation=optimizer)
    
    In [27]:
    feeding={'x': 0, 'y': 1}
    
    # define training dataset reader
    def train_reader():
        #d =uci_housing.train()()
        dat = np.random.randn(100) 
        def reader():
            for d in dat:
                yield np.array([d]),np.array([(d*2+0.05)]) # y:2x + 5 
    
        return reader
    
    In [29]:
    trainer.train(
        reader= paddle.batch(train_reader(), batch_size=10),
        feeding=feeding,
        num_passes=100)
    
     

    应用模型

    1. 生成测试数据

    In [30]:
    test_data_creator = train_reader()
    test_data = []
    
    for item in test_data_creator():
        test_data.append((item[0],))
        if len(test_data) == 10:
            break
    
     

    2. 推测 inference

    In [31]:
    probs = paddle.infer(
        output_layer=y_predict, parameters=parameters, input=test_data)
    
    for i in xrange(len(probs)):
        print "x=" + str(test_data[i]) + ", predict=" + str(probs[i][0])
    
     
    x=(array([ 1.19117966]),), predict=2.43236
    x=(array([ 1.03761235]),), predict=2.12522
    x=(array([ 1.41373377]),), predict=2.87746
    x=(array([-0.19559635]),), predict=-0.341192
    x=(array([ 1.49282158]),), predict=3.03564
    x=(array([ 0.1219947]),), predict=0.293989
    x=(array([-1.27387922]),), predict=-2.49776
    x=(array([ 2.01031024]),), predict=4.07062
    x=(array([ 1.89486369]),), predict=3.83972
    x=(array([ 0.55526183]),), predict=1.16052
    
  • 相关阅读:
    SubString函数总结
    button按钮居中
    2019 面试题
    linux(centos)搭建SVN服务器
    svn 设置钩子将代码同步到web目录下面
    sql 语句总结
    php 多维数组转换
    php 两个数组是否相同,并且输出全面的数据,相同的加一个字段标示
    PHP错误类型及屏蔽方法
    设置div中文字超出时自动换行
  • 原文地址:https://www.cnblogs.com/freebird92/p/8485594.html
Copyright © 2011-2022 走看看