paddle1.8-官方文档1-快速上手(1)-基本概念 目录划分
一、基本概念:
1.1 编程指南
1.2 Variable
1.3 Tensor
1.4 LoDTensor
1.5 Operator
1.6 Program
1.7 Executor
1.8 命令式编程使用教程
学习:
1. 如何表示和定义数据变量。
2.如何完整组建一个深度学习网络 并进行训练。
paddle使用 tensor 承载数据,包括: 模型中的可学习参数(如 网络权重、偏置等),网络中每一层 输入、输出数据,常量数据。
import paddle.fluid as fluid
# 定义一个数据类型 int64 的二维数据变量X,X的第一维的维度为3,第二个维度未知,要在程序执行过程中 才能确定,因此X的形状 可以指定为 【3, None】
x = fluid.data(name="x", shape=[3, None], dtype="int64")
# 大多数网络都会采用 batch 方式进行数据组织, batch 大小在定义时不确定,因此 batch 所在维度(通常时第一维)可以指定 None
batched_x = fluid.data(name="", shape=[None, 3, None], dtype="int64")
import paddle.fluid as fluid
data = fluid.layers.fill_constant(shape=[3, 4], value=16, dtype="int64")
*需要注意的是: 在声明式编程模型方式中,上述定义的 Tensor 并不具有值(即使创建常量的时候指定了 Value),他们仅代表将要执行的操作,在网络执行时(训练或预测)才会进行真正的赋值操作,比如打印上述代码中的data 将会得到对其信息的描述:
print(data)
输出结果:
name: "fill_constant_0.tmp_0"
type {
type: LOD_TENSOR
lod_tensor {
tensor {
data_type: INT64
dims: 3
dims: 4
}
}
}
persistable: false
方式一的代码实现如下所示:
import paddle.fluid as fluid
data = fluid.layers.fill_constant(shape=[3, 4], value=16, dtype=‘int64‘)
data = fluid.layers.Print(data, message="Print data:")
place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())
ret = exe.run()
运行时输出结果:1571742368 Print data: The place is:CPUPlace
Tensor[fill_constant_0.tmp_0]
shape: [3,4,]
dtype: x
data: 16,16,16,16,16,16,16,16,16,16,16,16,
使用 fluid.data 创建数据变量之后,需要把网络执行所需要的数据读取到对应变量中,具体数据准备,参考Paddle静态图、动态图数据准备
在Paddle中,数据计算类API统一称为Operator(算子),简称OP,大多数OP在 paddle.fluid.layers 模块中提供。
例如用户可以利用 paddle.fluid.layers.elementwise_add() 实现两个输入Tensor的加法运算:
原文:https://www.cnblogs.com/zhangtao-0001/p/14830170.html