tensorflow编程: Math

来源:互联网 发布:wacom mac 笔记软件 编辑:程序博客网 时间:2024/06/05 05:49

Arithmetic Operators

tf.add、tf.subtract、tf.multiply、tf.scalar_mul、tf.div、tf.divide、tf.truediv、tf.floordiv、tf.realdiv、tf.truncatediv、tf.floor_div、tf.truncatemod、tf.floormod、tf.mod、tf.cross

# coding=utf-8import tensorflow as tfx = tf.constant([[10, 20]], dtype=tf.float32)y = tf.constant([[3, 4]], dtype=tf.float32)with tf.Session() as sess:    # 对应元素 相加    print '\ntf.add(x, y) : ', sess.run(tf.add(x, y))    # 对应元素 相减    print '\ntf.subtract(x, y) : ', sess.run(tf.subtract(x, y))    # 对应元素 相乘    print '\ntf.multiply(x, y) : ', sess.run(tf.multiply(x, y))    # 所有元素 等比例放大    print '\ntf.scalar_mul(9.0, x) : ', sess.run(tf.scalar_mul(9.0, x))    # 对应元素 相除    print '\ntf.div(x, y) : ', sess.run(tf.div(x, y))    # 对应元素 相除    print '\ntf.divide(x, y) : ', sess.run(tf.divide(x, y))    # 对应元素 相除    print '\ntf.truediv(x, y) : ', sess.run(tf.truediv(x, y))    # 对应元素 地板除    print '\ntf.floordiv(x, y) : ', sess.run(tf.floordiv(x, y))    # 对应元素 截断除 取余    print '\ntf.truncatemod(x, y) : ', sess.run(tf.truncatemod(x, y))    # 对应元素 地板除 取余    print '\ntf.floormod(x, y) : ', sess.run(tf.floormod(x, y))    # 对应元素 相除 取余    print '\ntf.mod(x, y) : ', sess.run(tf.mod(x, y))    # 两组 3元素向量的tensor 交叉乘    print '\ntf.cross([[10, 20, 30]], [[1, 2, 3]]) : ', sess.run(tf.cross([[10, 20, 30]], [[1, 2, 1]]))
tf.add(x, y) :  [[ 13.  24.]]tf.subtract(x, y) :  [[  7.  16.]]tf.multiply(x, y) :  [[ 30.  80.]]tf.scalar_mul(9.0, x) :  [[  90.  180.]]tf.div(x, y) :  [[ 3.33333325  5.        ]]tf.divide(x, y) :  [[ 3.33333325  5.        ]]tf.truediv(x, y) :  [[ 3.33333325  5.        ]]tf.floordiv(x, y) :  [[ 3.  5.]]tf.truncatemod(x, y) :  [[ 1.  0.]]tf.floormod(x, y) :  [[ 1.  0.]]tf.mod(x, y) :  [[ 1.  0.]]tf.cross([[10, 20, 30]], [[1, 2, 3]]) :  [[-40  20   0]]

Basic Math Functions

tf.add_n、tf.abs、tf.negative、tf.sign、tf.reciprocal、tf.square、tf.round、tf.sqrt、tf.rsqrt、tf.pow、tf.exp、tf.expm1、tf.log、tf.log1p、tf.ceil、tf.floor、tf.maximum、tf.minimum、tf.cos、tf.sin、tf.lbeta、tf.tan、tf.acos、tf.asin、tf.atan、tf.cosh、tf.sinh、tf.asinh、tf.acosh、tf.atanh、tf.lgamma、tf.digamma、tf.erf、tf.erfc、tf.squared_difference、tf.rint

# coding=utf-8import tensorflow as tfx = tf.constant([[-1.5, 0, 2]], dtype=tf.float32)y = tf.constant([[2, 0, 1]], dtype=tf.float32)with tf.Session() as sess:    # 对应元素 相加    print '\ntf.add_n([x, y]) : ', sess.run(tf.add_n([x, y]))    # 求 绝对值    print '\ntf.abs(x) : ', sess.run(tf.abs(x))    # 求 相反数    print '\ntf.negative(x) : ', sess.run(tf.negative(x))    # 求 符号    print '\ntf.sign(x) : ', sess.run(tf.sign(x))    # 求 倒数    print '\ntf.reciprocal(x) : ', sess.run(tf.reciprocal(x))    # 求 平方    print '\ntf.square(x) : ', sess.run(tf.square(x))    # 求 各元素各自距离最近的整数;若在中间,则取偶数值    print '\ntf.round(x) : ', sess.run(tf.round(x))    # 求 平方根    print '\ntf.sqrt(x) : ', sess.run(tf.sqrt(x))    # 求 平方根的倒数    print '\ntf.rsqrt(x) : ', sess.run(tf.rsqrt(x))    # 求 x各元素的y各元素次方    print '\ntf.pow(x) : ', sess.run(tf.pow(x, y))    # 求 自然数指数,即e^x    print '\ntf.exp(x) : ', sess.run(tf.exp(x))    # 求 自然指数减1,即e^x-1    print '\ntf.expm1(x) : ', sess.run(tf.expm1(x))    # 求 自然对数    print '\ntf.log(x) : ', sess.run(tf.log(x))    # 求 加1后的自然对数    print '\ntf.log1p(x) : ', sess.run(tf.log1p(x))    # 求 天花板整数    print '\ntf.ceil(x) : ', sess.run(tf.ceil(x))    # 求 地板整数    print '\ntf.floor(x) : ', sess.run(tf.floor(x))    # 求 各对应位置 上的 最大值    print '\ntf.maximum(x) : ', sess.run(tf.maximum(x, y))    # 求 各对应位置 上的 最小值    print '\ntf.minimum(x) : ', sess.run(tf.minimum(x, y))    # 求 cos(x)    print '\ntf.cos(x) : ', sess.run(tf.cos(x))    # 求 sin(x)    print '\ntf.sin(x) : ', sess.run(tf.sin(x))    # 求 ln(|Beta(x)|), 并以最末尺度进行归纳。    print '\ntf.lbeta(x) : ', sess.run(tf.lbeta(x))    # 求 tan(x)    print '\ntf.tan(x) : ', sess.run(tf.tan(x))    # 求 acos(x)    print '\ntf.acos(x) : ', sess.run(tf.acos(x))    # 求 asin(x)    print '\ntf.asin(x) : ', sess.run(tf.asin(x))    # 求 atan(x)    print '\ntf.atan(x) : ', sess.run(tf.atan(x))    # 求 cosh(x)    print '\ntf.cosh(x) : ', sess.run(tf.cosh(x))    # 求 sinh(x)    print '\ntf.sinh(x) : ', sess.run(tf.sinh(x))    # 求 asinh(x)    print '\ntf.asinh(x) : ', sess.run(tf.asinh(x))    # 求 acosh(x)    print '\ntf.acosh(x) : ', sess.run(tf.acosh(x))    # 求 atanh(x)    print '\ntf.atanh(x) : ', sess.run(tf.atanh(x))    # 求 ln(gamma(x))    print '\ntf.lgamma(x) : ', sess.run(tf.lgamma(x))    # 求 lgamma的导数,即gamma‘/gamma    print '\ntf.digamma(x) : ', sess.run(tf.digamma(x))    # 求 高斯误差    print '\ntf.erf(x) : ', sess.run(tf.erf(x))    # 求 高斯互补误差    print '\ntf.erfc(x) : ', sess.run(tf.erfc(x))    # 求 (x-y)(x-y)    print '\ntf.squared_difference(x) : ', sess.run(tf.squared_difference(x, y))    # 求 离x最近的整数,若为中间值,取偶数值。    print '\ntf.rint(x) : ', sess.run(tf.rint(x))
tf.add_n([x, y]) :  [[ 0.5  0.   3. ]]tf.abs(x) :  [[ 1.5  0.   2. ]]tf.negative(x) :  [[ 1.5 -0.  -2. ]]tf.sign(x) :  [[-1.  0.  1.]]tf.reciprocal(x) :  [[-0.66666669         inf  0.5       ]]tf.square(x) :  [[ 2.25  0.    4.  ]]tf.round(x) :  [[-2.  0.  2.]]tf.sqrt(x) :  [[        nan  0.          1.41421354]]tf.rsqrt(x) :  [[        nan         inf  0.70710677]]tf.pow(x) :  [[ 2.25  1.    2.  ]]tf.exp(x) :  [[ 0.22313017  1.          7.38905621]]tf.expm1(x) :  [[-0.77686983  0.          6.38905621]]tf.log(x) :  [[        nan        -inf  0.69314718]]tf.log1p(x) :  [[        nan  0.          1.09861231]]tf.ceil(x) :  [[-1.  0.  2.]]tf.floor(x) :  [[-2.  0.  2.]]tf.maximum(x) :  [[ 2.  0.  2.]]tf.minimum(x) :  [[-1.5  0.   1. ]]tf.cos(x) :  [[ 0.0707372   1.         -0.41614684]]tf.sin(x) :  [[-0.997495    0.          0.90929741]]tf.lbeta(x) :  [ inf]tf.tan(x) :  [[-14.1014204    0.          -2.18503976]]tf.acos(x) :  [[        nan  1.57079637         nan]]tf.asin(x) :  [[ nan   0.  nan]]tf.atan(x) :  [[-0.98279375  0.          1.10714877]]tf.cosh(x) :  [[ 2.3524096   1.          3.76219583]]tf.sinh(x) :  [[-2.12927938  0.          3.62686038]]tf.asinh(x) :  [[-1.19476318  0.          1.44363546]]tf.acosh(x) :  [[        nan         nan  1.31695795]]tf.atanh(x) :  [[ nan   0.  nan]]tf.lgamma(x) :  [[ 0.86004704         inf  0.        ]]tf.digamma(x) :  [[ 0.70315683         inf  0.42278421]]tf.erf(x) :  [[-0.96610516  0.          0.99532229]]tf.erfc(x) :  [[ 1.9661051   1.          0.00467773]]tf.squared_difference(x) :  [[ 12.25   0.     1.  ]]tf.rint(x) :  [[-2.  0.  2.]]

Matrix Math Functions

tf.diag、tf.diag_part、tf.trace、tf.transpose(a, perm=None)、tf.eye、tf.matrix_diag、tf.matrix_diag_part、tf.matrix_band_part、tf.matrix_set_diag、tf.matrix_transpose、tf.matmul、tf.norm、tf.matrix_determinant、tf.matrix_inverse、tf.cholesky、tf.matrix_triangular_solve、tf.matrix_solve_ls、tf.qr、tf.self_adjoint_eig、tf.self_adjoint_eigvals、tf.svd

# coding=utf-8import tensorflow as tfx = tf.constant([[1,5,0],[0,2,0],[0,0,3]])x_f = tf.cast(x, tf.float32)y = tf.constant([10, 20, 30])with tf.Session() as sess:    # 返回 对角矩阵    print '\ntf.diag(y) : \n', sess.run(tf.diag(y))    # 返回 对角阵的 对角元素    print '\ntf.diag_part(x) : \n', sess.run(tf.diag_part(x))    # 返回 矩阵的 迹    print '\ntf.trace(x) : \n', sess.run(tf.trace(x))    # 返回 矩阵的 转置。 perm参数项: x的尺寸排列顺序,默认为None。    print '\ntf.transpose(x) : \n', sess.run(tf.transpose(x))    # 返回 单位矩阵    print '\ntf.eye(3) : \n', sess.run(tf.eye(3))    # 根据对角值 返回 一批对角矩阵    print '\ntf.matrix_diag([[1,2,3],[4,5,6]]) : \n', sess.run(tf.matrix_diag([[1,2,3],[4,5,6]]))    # 返回 批对角阵 的 对角元素    print '\ntf.matrix_diag_part([x, x]) : \n', sess.run(tf.matrix_diag_part([x, x]))    # 返回矩阵的 上三角矩阵    print '\ntf.matrix_band_part(x, 0, -1) : \n', sess.run(tf.matrix_band_part(x, 0, -1))    # 返回矩阵的 下三角矩阵    print '\ntf.matrix_band_part(x, -1, 0) : \n', sess.run(tf.matrix_band_part(x, -1, 0))    # 返回矩阵的 对角矩阵    print '\ntf.matrix_band_part(x, 0, 0) : \n', sess.run(tf.matrix_band_part(x, 0, 0))    # 将输入矩阵的对角元素置换为对角元素    print '\ntf.matrix_set_diag(x, y) : \n', sess.run(tf.matrix_set_diag(x, y))    # 返回 转置矩阵    print '\ntf.matrix_transpose(x) : \n', sess.run(tf.matrix_transpose(x))    # 矩阵乘法    print '\ntf.matmul(x, x) : \n', sess.run(tf.matmul(x, x))    # 求 范数    print '\ntf.norm(x_f) : \n', sess.run(tf.norm(x_f))    # 求 行列式    print '\ntf.matrix_determinant(x_f) : \n', sess.run(tf.matrix_determinant(x_f))    # 求 逆矩阵    print '\ntf.matrix_inverse(x_f) : \n', sess.run(tf.matrix_inverse(x_f))    # 进行 cholesky分解    print '\ntf.cholesky(tf.constant([[2, -1], [-1, 5]], dtype=tf.float32))) : \n', sess.run(tf.cholesky(tf.constant([[2, -1], [-1, 5]], dtype=tf.float32)))    # 对矩阵进行 qr分解    print '\ntf.qr(x_f) : \n', sess.run(tf.qr(x_f))    # 求取 特征值 和 特征向量    print '\ntf.tf.self_adjoint_eig(x_f) : \n', sess.run(tf.self_adjoint_eig(x_f))    # 计算 多个矩阵 的 特征值    print '\ntf.self_adjoint_eigvals([x_f, x_f]) : \n', sess.run(tf.self_adjoint_eigvals([x_f, x_f]))    # 进行 奇异值分解    print '\ntf.svd(x_f) : \n', sess.run(tf.svd(x_f))
tf.diag(y) : [[10  0  0] [ 0 20  0] [ 0  0 30]]tf.diag_part(x) : [1 2 3]tf.trace(x) : 6tf.transpose(x) : [[1 0 0] [5 2 0] [0 0 3]]tf.eye(3) : [[ 1.  0.  0.] [ 0.  1.  0.] [ 0.  0.  1.]]tf.matrix_diag([[1,2,3],[4,5,6]]) : [[[1 0 0]  [0 2 0]  [0 0 3]] [[4 0 0]  [0 5 0]  [0 0 6]]]tf.matrix_diag_part([x, x]) : [[1 2 3] [1 2 3]]tf.matrix_band_part(x, 0, -1) : [[1 5 0] [0 2 0] [0 0 3]]tf.matrix_band_part(x, -1, 0) : [[1 0 0] [0 2 0] [0 0 3]]tf.matrix_band_part(x, 0, 0) : [[1 0 0] [0 2 0] [0 0 3]]tf.matrix_set_diag(x, y) : [[10  5  0] [ 0 20  0] [ 0  0 30]]tf.matrix_transpose(x) : [[1 0 0] [5 2 0] [0 0 3]]tf.matmul(x, x) : [[ 1 15  0] [ 0  4  0] [ 0  0  9]]tf.norm(x_f) : 6.245tf.matrix_determinant(x_f) : 6.0tf.matrix_inverse(x_f) : [[ 1.         -2.5         0.        ] [ 0.          0.5         0.        ] [ 0.          0.          0.33333334]]tf.cholesky(tf.constant([[2, -1], [-1, 5]], dtype=tf.float32))) : [[ 1.41421354  0.        ] [-0.70710677  2.12132025]]tf.qr(x_f) : Qr(q=array([[ 1.,  0.,  0.],       [ 0.,  1.,  0.],       [ 0.,  0.,  1.]], dtype=float32), r=array([[ 1.,  5.,  0.],       [ 0.,  2.,  0.],       [ 0.,  0.,  3.]], dtype=float32))tf.tf.self_adjoint_eig(x_f) : (array([ 1.,  2.,  3.], dtype=float32), array([[ 1.,  0.,  0.],       [ 0.,  1.,  0.],       [ 0.,  0.,  1.]], dtype=float32))tf.self_adjoint_eigvals([x_f, x_f]) : [[ 1.  2.  3.] [ 1.  2.  3.]]tf.svd(x_f) : (array([ 5.46498585,  3.        ,  0.36596629], dtype=float32), array([[ 0.93272191,  0.        ,  0.36059672],       [ 0.36059672,  0.        , -0.93272191],       [ 0.        ,  1.        ,  0.        ]], dtype=float32), array([[ 0.17067236,  0.        ,  0.9853279 ],       [ 0.9853279 ,  0.        , -0.17067236],       [ 0.        ,  1.        ,  0.        ]], dtype=float32))

Tensor Math Function

tf.tensordot

# coding=utf-8import tensorflow as tfx = tf.constant([[1,5,0],[0,2,0],[0,0,3]])x_f = tf.cast(x, tf.float32)y = tf.constant([10, 20, 30])with tf.Session() as sess:    # 同numpy.tensordot,根据axis计算点乘。输入:axes=1或axes=[[1],[0]],即为矩阵乘。    print '\ntf.tensordot(x, x, axes=1) : \n', sess.run(tf.tensordot(x, x, axes=1))
tf.tensordot(x, x, axes=1) : [[ 1 15  0] [ 0  4  0] [ 0  0  9]]

Complex Number Functions

tf.complex、tf.conj、tf.imag、tf.real

# coding=utf-8import tensorflow as tfx = tf.constant([[1,5,0],[0,2,0],[0,0,3]])x_f = tf.cast(x, tf.float32)y = tf.constant([10, 20, 30])with tf.Session() as sess:    # 将实数 转化为 复数    print '\ntf.complex(x_f, x_f) : \n', sess.run(tf.complex(x_f, x_f))    # 返回 x的 共轭复数    print '\ntf.conj(tf.constant([1+2j, 2-3j])) : \n', sess.run(tf.conj(tf.constant([1+2j,2-3j])))    # 返回 虚数部分    print '\ntf.imag(tf.constant([1+2j,2-3j])): \n', sess.run(tf.imag(tf.constant([1+2j,2-3j])))    # 返回 实数部分    print '\ntf.real(tf.constant([1+2j,2-3j])): \n', sess.run(tf.real(tf.constant([1+2j,2-3j])))
tf.complex(x_f, x_f) : [[ 1.+1.j  5.+5.j  0.+0.j] [ 0.+0.j  2.+2.j  0.+0.j] [ 0.+0.j  0.+0.j  3.+3.j]]tf.conj(tf.constant([1+2j, 2-3j])) : [ 1.-2.j  2.+3.j]tf.imag(tf.constant([1+2j,2-3j])): [ 2. -3.]tf.real(tf.constant([1+2j,2-3j])): [ 1.  2.]

Reduction

tf.reduce_sum、tf.reduce_prod、tf.reduce_min、tf.reduce_max、tf.reduce_mean、tf.reduce_all、tf.reduce_any、tf.reduce_logsumexp、tf.count_nonzero、tf.accumulate_n

# coding=utf-8import tensorflow as tfx = tf.constant(range(1, 10), shape=[3, 3])x_bool =  tf.constant([[True,True,False,False],[True,False,False,True]])with tf.Session() as sess:    # 沿着维度axis 计算 元素和 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_sum(x) : \n', sess.run(tf.reduce_sum(x))    print '\ntf.reduce_sum(x, axis=0) : \n', sess.run(tf.reduce_sum(x, axis=0))    print '\ntf.reduce_sum(x, axis=1) : \n', sess.run(tf.reduce_sum(x, axis=1))    # 沿着维度axis 计算 元素积 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_prod(x) : \n', sess.run(tf.reduce_prod(x))    print '\ntf.reduce_prod(x, axis=0) : \n', sess.run(tf.reduce_prod(x, axis=0))    print '\ntf.reduce_prod(x, axis=1) : \n', sess.run(tf.reduce_prod(x, axis=1))    # 沿着维度axis 计算 最小值 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_min(x) : \n', sess.run(tf.reduce_min(x))    print '\ntf.reduce_min(x, axis=0) : \n', sess.run(tf.reduce_min(x, axis=0))    print '\ntf.reduce_min(x, axis=1) : \n', sess.run(tf.reduce_min(x, axis=1))    # 沿着维度axis 计算 最大值 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_max(x) : \n', sess.run(tf.reduce_max(x))    print '\ntf.reduce_max(x, axis=0) : \n', sess.run(tf.reduce_max(x, axis=0))    print '\ntf.reduce_max(x, axis=1) : \n', sess.run(tf.reduce_max(x, axis=1))    # 沿着维度axis 计算 均值 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_mean(x) : \n', sess.run(tf.reduce_mean(x))    print '\ntf.reduce_mean(x, axis=0) : \n', sess.run(tf.reduce_mean(x, axis=0))    print '\ntf.reduce_mean(x, axis=1) : \n', sess.run(tf.reduce_mean(x, axis=1))    # 沿着维度axis 计算 逻辑与 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_all(x_bool) : \n', sess.run(tf.reduce_all(x_bool))    print '\ntf.reduce_all(x_bool, ax_boolis=0) : \n', sess.run(tf.reduce_all(x_bool, axis=0))    print '\ntf.reduce_all(x_bool, ax_boolis=1) : \n', sess.run(tf.reduce_all(x_bool, axis=1))    # 沿着维度axis 计算 逻辑或 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_any(x_bool) : \n', sess.run(tf.reduce_any(x_bool))    print '\ntf.reduce_any(x_bool, ax_boolis=0) : \n', sess.run(tf.reduce_any(x_bool, axis=0))    print '\ntf.reduce_any(x_bool, ax_boolis=1) : \n', sess.run(tf.reduce_any(x_bool, axis=1))    # 沿着维度axis 计算 log(sum(exp())) 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    print '\ntf.reduce_min(x) : \n', sess.run(tf.reduce_min(x))    print '\ntf.reduce_min(x, axis=0) : \n', sess.run(tf.reduce_min(x, axis=0))    print '\ntf.reduce_min(x, axis=1) : \n', sess.run(tf.reduce_min(x, axis=1))    # 沿着维度axis 计算 非0个数 。axis=None 时沿所有维度求和;keep_dims=True 时阶数保持不变。    a = tf.constant([[0,0,0], [0,1,2]])    print '\ntf.count_nonzero(a) : \n', sess.run(tf.count_nonzero(a))    print '\ntf.count_nonzero(a, axis=0) : \n', sess.run(tf.count_nonzero(a, axis=0))    print '\ntf.count_nonzero(a, axis=1) : \n', sess.run(tf.count_nonzero(a, axis=1))    # 相对位置 元素相加    print '\ntf.accumulate_n([x, x]) : \n', sess.run(tf.accumulate_n([x, x]))
tf.reduce_sum(x) : 45tf.reduce_sum(x, axis=0) : [12 15 18]tf.reduce_sum(x, axis=1) : [ 6 15 24]tf.reduce_prod(x) : 362880tf.reduce_prod(x, axis=0) : [ 28  80 162]tf.reduce_prod(x, axis=1) : [  6 120 504]tf.reduce_min(x) : 1tf.reduce_min(x, axis=0) : [1 2 3]tf.reduce_min(x, axis=1) : [1 4 7]tf.reduce_max(x) : 9tf.reduce_max(x, axis=0) : [7 8 9]tf.reduce_max(x, axis=1) : [3 6 9]tf.reduce_mean(x) : 5tf.reduce_mean(x, axis=0) : [4 5 6]tf.reduce_mean(x, axis=1) : [2 5 8]tf.reduce_all(x_bool) : Falsetf.reduce_all(x_bool, ax_boolis=0) : [ True False False False]tf.reduce_all(x_bool, ax_boolis=1) : [False False]tf.reduce_any(x_bool) : Truetf.reduce_any(x_bool, ax_boolis=0) : [ True  True False  True]tf.reduce_any(x_bool, ax_boolis=1) : [ True  True]tf.reduce_min(x) : 1tf.reduce_min(x, axis=0) : [1 2 3]tf.reduce_min(x, axis=1) : [1 4 7]tf.count_nonzero(a) : 2tf.count_nonzero(a, axis=0) : [0 1 1]tf.count_nonzero(a, axis=1) : [0 2]tf.accumulate_n([x, x]) : [[ 2  4  6] [ 8 10 12] [14 16 18]]

Scan

tf.cumsum、tf.cumprod

# coding=utf-8import tensorflow as tfx = tf.constant(range(1, 10), shape=[3, 3])x_bool =  tf.constant([[True,True,False,False],[True,False,False,True]])with tf.Session() as sess:    # 沿着维度axis 进行 累加 。axis=None 时沿所有维度累加。    print '\ntf.cumsum(x) : \n', sess.run(tf.cumsum(x))    print '\ntf.cumsum(x, axis=0) : \n', sess.run(tf.cumsum(x, axis=0))    print '\ntf.cumsum(x, axis=1) : \n', sess.run(tf.cumsum(x, axis=1))    # 沿着维度axis 进行 累积 。axis=None 时沿所有维度累加。    print '\ntf.cumprod(x) : \n', sess.run(tf.cumprod(x))    print '\ntf.cumprod(x, axis=0) : \n', sess.run(tf.cumprod(x, axis=0))    print '\ntf.cumprod(x, axis=1) : \n', sess.run(tf.cumprod(x, axis=1))
tf.cumsum(x) : [[ 1  2  3] [ 5  7  9] [12 15 18]]tf.cumsum(x, axis=0) : [[ 1  2  3] [ 5  7  9] [12 15 18]]tf.cumsum(x, axis=1) : [[ 1  3  6] [ 4  9 15] [ 7 15 24]]tf.cumprod(x) : [[  1   2   3] [  4  10  18] [ 28  80 162]]tf.cumprod(x, axis=0) : [[  1   2   3] [  4  10  18] [ 28  80 162]]tf.cumprod(x, axis=1) : [[  1   2   6] [  4  20 120] [  7  56 504]]

Segmentation


Sequence Comparison and Indexing

tf.argmin、tf.argmax

# coding=utf-8import tensorflow as tfx = tf.constant(range(1, 10), shape=[3, 3])x_bool =  tf.constant([[True,True,False,False],[True,False,False,True]])with tf.Session() as sess:    # 返回 沿axis维度 最小值 的 下标。axis=None 时 返回 全局 最小值 的下标。    print '\ntf.argmin(x) : \n', sess.run(tf.argmin(x))    print '\ntf.argmin(x, axis=0) : \n', sess.run(tf.argmin(x, axis=0))    print '\ntf.argmin(x, axis=1) : \n', sess.run(tf.argmin(x, axis=1))    # 返回 沿axis维度 最大值 的 下标。axis=None 时 返回 全局 最大值 的下标。    print '\ntf.argmax(x) : \n', sess.run(tf.argmax(x))    print '\ntf.argmax(x, axis=0) : \n', sess.run(tf.argmax(x, axis=0))    print '\ntf.argmax(x, axis=1) : \n', sess.run(tf.argmax(x, axis=1))
tf.argmin(x) : [0 0 0]tf.argmin(x, axis=0) : [0 0 0]tf.argmin(x, axis=1) : [0 0 0]tf.argmax(x) : [2 2 2]tf.argmax(x, axis=0) : [2 2 2]tf.argmax(x, axis=1) : [2 2 2]


原创粉丝点击