动态图

作者: PaddlePaddle
日期: 2021.10
摘要: 从飞桨框架2.0版本开始,飞桨默认为开启了动态图开发模式。在这种模式下,每次执行一个运算,可以立即得到结果(而不是事先定义好网络结构,然后再执行)。在动态图模式下,你可以更加方便的组织代码,更容易的调试程序,本示例教程将向你介绍飞桨的动态图的使用。

一、环境配置

本教程基于 Paddle 2.2.0-rc0 编写,如果你的环境不是本版本,请先参考官网安装 Paddle 2.2.0-rc0。

import paddle
import paddle.nn.functional as F
import numpy as np

print(paddle.__version__)
2.2.0-rc0

二、基本用法

在动态图模式下,你可以直接运行一个飞桨提供的API,它会立刻返回结果到python。不再需要首先创建一个计算图,然后再给定数据去运行。

a = paddle.randn([4, 2])
b = paddle.arange(1, 3, dtype='float32')

print(a)
print(b)

c = a + b
print(c)

d = paddle.matmul(a, b)
print(d)
Tensor(shape=[4, 2], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
       [[-0.24989827,  0.66201270],
        [-1.58135796,  0.07232992],
        [-0.96044230,  0.31790161],
        [ 1.12384641,  0.66361523]])
Tensor(shape=[2], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
       [1., 2.])
Tensor(shape=[4, 2], dtype=float32