to_variable_cn.rst 2.2 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5
.. _cn_api_fluid_dygraph_to_variable:

to_variable
-------------------------------

6

L
Leo Chen 已提交
7
.. py:function:: paddle.fluid.dygraph.to_variable(value, name=None, zero_copy=None)
H
Hao Wang 已提交
8

9

S
swtkiwi 已提交
10 11 12 13
:api_attr: 命令式编程模式(动态图)



14 15
该函数实现从tuple、list、numpy\.ndarray、Variable、ComplexVariable 对象创建一个 ``Variable`` 类型的对象。

H
Hao Wang 已提交
16 17

参数:
18 19
    - **value** (tuple|list|ndarray|Variable|Tensor|ComplexVariable) – 初始化的数据。可以是tuple、list、numpy\.ndarray、Variable、ComplexVariable。
      维度可以为多维,数据类型为numpy\.{float16, float32, float64, int16, int32, int64, uint8, uint16}中的一种。
20
    - **name**  (str, 可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。
21
    - **zero_copy**  (bool, 可选) – 是否与输入的numpy数组共享内存。此参数仅适用于CPUPlace,当它为None时将设置为True。默认值为None。
22
    - **dtype** (str, 可选) - 返回的 ``Variable`` 所需的数据类型。可以是 'bool','float16','float32','float64','int8','int16','int32','int64','uint8'。默认值: None。
H
Hao Wang 已提交
23 24


25
返回:如果 ``value`` 是tuple/list/numpy\.ndarray对象,返回对应numpy\.ndarray对象创建的 ``Tensor`` ;如果 ``value`` 是Variable对象,直接返回 ``value`` 。
H
Hao Wang 已提交
26 27 28 29 30 31 32 33 34

返回类型:Variable

**代码示例**:

.. code-block:: python
    
    import numpy as np
    import paddle.fluid as fluid
35
    with fluid.dygraph.guard(fluid.CPUPlace()):
36

H
Hao Wang 已提交
37
        x = np.ones([2, 2], np.float32)
38 39 40
        y = fluid.dygraph.to_variable(x, zero_copy=False)
        x[0][0] = -1
        y[0][0].numpy()  # array([1.], dtype=float32)
41

H
Hao Wang 已提交
42
        y = fluid.dygraph.to_variable(x)
43 44
        x[0][0] = 0
        y[0][0].numpy()  # array([0.], dtype=float32)
H
Hao Wang 已提交
45

46 47 48 49 50 51 52 53 54 55 56
        c = np.array([2+1j, 2])
        z = fluid.dygraph.to_variable(c)
        z.numpy() # array([2.+1.j, 2.+0.j])
        z.dtype # 'complex128'

        y = fluid.dygraph.to_variable([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])
        y.shape     # [3L, 2L]
        y = fluid.dygraph.to_variable(((0.1, 1.2), (2.2, 3.1), (4.9, 5.2)), dtype='int32')
        y.shape     # [3L, 2L]
        y.dtype     # core.VarDesc.VarType.INT32