.. _cn_api_fluid_layers_sum:

sum
-------------------------------

.. py:function:: paddle.fluid.layers.sum(x)

该OP用于对输入的一至多个Tensor或LoDTensor求和。如果输入的是LoDTensor，输出仅与第一个输入共享LoD信息（序列信息）。

例1：
::
    输入：
    	input.shape = [2, 3]
    	input = [[1, 2, 3],
	      	  [4, 5, 6]]

    输出：
    	output.shape = [2, 3]
    	output = [[1, 2, 3],
	          [4, 5, 6]]
	
例2：
::
    输入：
	第一个输入：
    	    input1.shape = [2, 3]
    	    input1 = [[1, 2, 3],
	      	      [4, 5, 6]]
	
	第二个输入：
    	    input2.shape = [2, 3]
    	    input2 = [[7, 8, 9],
	              [10, 11, 12]]

    输出：
    	output.shape = [2, 3]
    	output = [[8, 10, 12],
	          [14, 16, 18]]

参数：
    **x** (Variable|list(Variable)) - 输入的一至多个Variable。如果输入了多个Variable，则不同Variable间的shape和数据类型应保持一致。Variable为多维Tensor或LoDTensor，数据类型支持：float32，float64，int32，int64

返回：对输入 ``x`` 中的Variable求和后的结果，shape和数据类型与 ``x`` 一致

返回类型：Variable


**代码示例：**

.. code-block:: python
	
	import paddle.fluid as fluid
	input0 = fluid.layers.fill_constant(shape=[2, 3], dtype='int64', value=5)
	input1 = fluid.layers.fill_constant(shape=[2, 3], dtype='int64', value=3)
	sum = fluid.layers.sum([input0, input1])

	#用户可以通过executor打印出求和的结果
	out = fluid.layers.Print(sum, message="the sum of input0 and input1: ")
	exe = fluid.Executor(fluid.CPUPlace())
	exe.run(fluid.default_main_program())

	#打印出的数据为：
	1570701754	the sum of input0 and input1: 	The place is:CPUPlace
	Tensor[sum_0.tmp_0]
		shape: [2,3,]
		dtype: l
		data: 8,8,8,8,8,8,

	#输出了shape为[2,3]的Tensor，与输入的shape一致
	#dtype为对应C++数据类型，在不同环境下可能显示值不同，但本质相同
	#例如：如果Tensor中数据类型是int64，则对应的C++数据类型为int64_t，所以dtype值为typeid(int64_t).name()，
	#      其在MacOS下为'x'，linux下为'l'，Windows下为'__int64'，都表示64位整型变量






