tensorflow运算法则
import tensorflow as tf
tf.add(a,b) #加法
tf.subtract(a,b) #减法
tf.multiply(x,y) #乘法
tf.div(x,y) #整除
tf.truediv(x,y) #浮点数除法
tf.mod(x,y) #取余
tf.reduce_mean()
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
接口为:
reduce_mean(input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None)
- 第一个参数input_tensor: 输入的待降维的tensor;
- 第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
- 第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
- 第四个参数name: 操作的名称;
- 第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;
举个例子:
import tensorflow as tf
x = [[1,2,3],
[1,2,3]]
xx = tf.cast(x,tf.float32)
mean_all = tf.reduce_mean(xx, keep_dims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)
with tf.Session() as sess:
m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])
print m_a # output: 2.0
print m_0 # output: [ 1. 2. 3.]
print m_1 #output: [ 2. 2.]
类似的函数
- tf.reduce_sum :计算tensor指定轴方向上的所有元素的累加和;
- tf.reduce_max : 计算tensor指定轴方向上的各个元素的最大值;
- tf.reduce_all : 计算tensor指定轴方向上的各个元素的逻辑和(and运算);
- tf.reduce_any: 计算tensor指定轴方向上的各个元素的逻辑或(or运算);
np.linalg.norm()——范数
inalg=linear(线性)+algebra(代数),norm则表示范数。
x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)
1. x: 表示矩阵(可以是一维)
2. ord:范数类型
向量的三种范数求法:
矩阵的三种范数求法:
3. axis:处理类型
4. keepding:是否保持矩阵的二维特性
True表示保持矩阵的二维特性,False相反
例子:
import numpy as np
x = np.array([
[1, 2, 3],
[2, 4, 6]])
print "默认参数(矩阵2范数,不保留矩阵二维特性) :", np.linalg.norm(x)
print "矩阵2范数,保留矩阵二维特性:", np.linalg.norm(x, keepdims=True)
print "矩阵1范数(列和的最大值) :", np.linalg.norm(x, ord=1,keepdims=True)
print "矩阵2范数(求特征值,然后求最大特征值得算术平方根):", np.linalg.norm(x, ord=2, keepdims=True)
print "矩阵∞范数(行和的最大值) :", np.linalg.norm(x, ord=np.inf, keepdims=True)
print "矩阵每个行向量求向量的2范数:", np.linalg.norm(x, axis=1, keepdims=True)
print "矩阵每个列向量求向量的2范数:", np.linalg.norm(x, axis=0, keepdims=True)
print "矩阵每个行向量求向量的1范数:", np.linalg.norm(x, ord=1, axis=1, keepdims=True)
print "矩阵每个列向量求向量的1范数:", np.linalg.norm(x, ord=1, axis=0, keepdims=True)
输出结果为:
默认参数(矩阵2范数,不保留矩阵二维特性) : 8.36660026534
矩阵2范数,保留矩阵二维特性: [[8.36660027]]
矩阵1范数(列和的最大值) : [[9.]]
矩阵2范数(求特征值,然后求最大特征值得算术平方根): [[8.36660027]]
矩阵∞范数(行和的最大值) : [[12.]]
矩阵每个行向量求向量的2范数: [[3.74165739]
[7.48331477]]
矩阵每个列向量求向量的2范数: [[2.23606798 4.47213595 6.70820393]]
矩阵每个行向量求向量的1范数: [[ 6.]
[12.]]
矩阵每个列向量求向量的1范数: [[3. 6. 9.]]
参考资料: