• 【深度学习】paddlepaddle基础语法


     1 # 1、导入包
     2 import paddle.fluid as fluid
     3 import paddle
     4 
     5 # 2、数据预处理
     6 # 调整图片大小等---跟框架本身没有关系
     7 
     8 # 3、构造reader---本质:读取数据
     9 # (1)reader---获取一个样本数据
    10 # 返回ndarray类型 或者元组
    11 # def reader():
    12 #     while True:
    13 #         yield numpy.random.uniform(-1,1,size=width*height)  # 理解为返回的数据只有特征值
    14 #         yield numpy.random.uniform(-1,1,size=width*height),label # 返回一个样本,样本具有特征值与目标值
    15 # (2) batch reader ----返回多个样本
    16 # def reader():
    17 #      while True:
    18 #          yield [(特征,目标),(特征,目标),(特征,目标),(特征,目标)]---特征值为ndarray类型,样本是具有特征值与目标值
    19 #          yield [(特征,),(特征,),(特征,),(特征,)]---特征值为ndarray类型,样本只含有特征值
    20 # (3)reader creator ----返回一个reader函数
    21 # (4)reader decorator:----返回将多个reader函数合并成一个reader函数
    22 
    23 # 4、训练场所
    24 # 指定CPU运行
    25 place = fluid.CPUPlace()
    26 # 指定GPU运行
    27 # place= fluid.CUDAPlace(0)
    28 
    29 # 5、配置网络结构
    30 # 数据层
    31 # 特征数据层
    32 # name 数据层名称
    33 # shape  数据形状
    34 # dtype 数据类型
    35 # append_batch_size= True,传递的数据是一个批次样本
    36 # append_batch_size= False,传递的数据是一个样本
    37 x = fluid.layers.data(name="x", shape=[1, 28, 28], append_batch_size=True, dtype='float32')
    38 # print(x.shape)
    39 # 目标数据层
    40 y = fluid.layers.data(name="y", shape=[1], append_batch_size=True, dtype="int64")
    41 # print(y.shape)
    42 # 网络层
    43 # 以fc为演示
    44 # input 输入
    45 # size 该层的神经元个数
    46 # act 激活函数
    47 h1 = fluid.layers.fc(input=x, size=128, act="relu", name="h1")
    48 h2 = fluid.layers.fc(input=h1, size=64, act="relu", name="h2")
    49 # 结束--多分类
    50 # 3分类
    51 # 多分类的最后一层 吐出预测值
    52 y_pedict = fluid.layers.fc(input=h2, size=3, act="softmax", name="out_put")
    53 
    54 # 损失 --交叉熵损失
    55 # input 预测值
    56 # label 真实值
    57 # 总损失
    58 loss = fluid.layers.cross_entropy(input=y_pedict, label=y)
    59 # print(loss)
    60 # 计算平均损失
    61 avg_loss = fluid.layers.mean(loss)
    62 
    63 # 计算准确率----这一批次的准确率
    64 acc = fluid.layers.accuracy(input=y_pedict, label=y)
    65 
    66 # 优化损失---sgd
    67 # (1)构建sgd优化算法
    68 sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.1)
    69 # (2)指定优化损失
    70 sgd_optimizer.minimize(avg_loss)
    71 
    72 # 6、指定数据层与网络的联系
    73 feeder = fluid.DataFeeder(feed_list=[x, y], place=place)
    74 
    75 # 7、构建执行器
    76 exe = fluid.Executor(place=place)
    77 
    78 # 8、初始化训练参数
    79 # 显示的初始化网络参数
    80 exe.run(fluid.default_startup_program())
    81 
    82 # 9、开启训练
    83 # 双层循环--去训练数据
    84 # 外层---训练的轮数
    85 # 内层---加载数据进行训练
  • 相关阅读:
    2019-9-2-简单搭建自己的博客
    2018-7-15-WPF-在-DrawingContext-的-push-如何使用
    2018-7-15-WPF-在-DrawingContext-的-push-如何使用
    2019-7-3-Roslyn-理解-msbuild-的清理过程
    2019-7-3-Roslyn-理解-msbuild-的清理过程
    MySQL数据库事务详解
    求一个Map中最大的value值,同时列出键,值
    Struts1入门实例(简单登录)
    java字符流操作flush()方法及其注意事项
    HDU 1874 畅通工程续 2008浙大研究生复试热身赛(2)
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12116310.html
Copyright © 2020-2023  润新知