四则运算

算术操作 描述
tf.add(x, y) 将 x 和 y 逐元素相加
tf.subtract(x,y) 将 x 和 y 逐元素相减
tf.multiply(x, y) 将 x 和 y 逐元素相乘
tf.dvide(x,y) 将 x 和 y 逐元素相除
tf.math.mod(x, y) 对 x 逐元素取模

加减乘除法运算,都是这两个张量逐元素的运算,并且要求各个张量中的元素数据类型必须一致。

幂指数运算

算术操作 描述
tf.pow(x, y) 对 x 求 y 的幂次方
tf.square(x) 对 x 逐元素求计算平方
tf.sqrt(x) 对 x 逐元素开平方根
tf.exp(x) 计算 e 的 x 次方(x 为浮点数)
tf.math.log(x) 计算自然对数底数为 e

开平方根函数,要求参数是浮点数:tf.pow(x, y)(其中 y<1)、tf.sqrt、tf.exp(x)

自然指数和自然对数运算

tf.exp 和 tf.math.log 也要求张量是浮点数。 tensorflow 只提供了自然对数,没有提供其他底数的对数。如需使用,可以采用换底公式来计算。

16152544294725

指数运算和对数运算不在同一个模块中,以及没有提供以其他自然数为底的对数运算

其他运算

函数 描述
tf.sign(x) 返回 x 的符号
tf.abs(x) 对 x 逐元素求绝对值
tf.negative(x) 对 x 逐元素求相反数,y=-x
tf.reciprocal(x) 取 x 的倒数
tf.logical_not(x) 对 x 逐元素求的逻辑非
tf.ceil(x) 向上取整
tf.floor(x) 向下取整
tf.rint(x) 取最接近的整数
tf.round(x) 对 x 逐元素求舍入最接近的整数
tf.maximum(x, y) 返回两 tensor 中的最大值
tf.minimum(x, y) 返回两 tensor 中的最小值
运算符 构造方法 运算符 构造方法
x+y tf.add( ) x&y tf.logical_and()
x-y t. subtract() x y tf.logical_or()
x*y tf.multiply() x^y tf.logical_xor()
x/y(python2.0) tf.divide() ~X tf.logical_not()
x/y(python3.0) tf.truediv() x<y tf.less()
x//y(python3.0) floordiv() X<=y tf.less_ equal()
x%y tf.math.mod() x>y tf.greater()
x**y tf.pow() X>=y tf.greater_equal()
-x tf.neg()
abs(x) tf.abs()

广播机制:要求两个张量的最后一个维度相等。 当张量和一个数字进行运算时,会将这个数字值广播到张量的各个元素。

张量和 NumPy 数组之间的相互转换

  1. NumPy 数组转化为张量:tf.constant();tf.convert_to_tensor
  2. 张量转换为 NumPy 数组:Tensor.numpy()

当张量和 NumPy 数组共同参与运算时:

  1. 执行 TensorFlow 操作,那么 TensorFlow 将自动的把 NumPy 数组转换为张量
  2. 执行 NumPy 操作,那么 NumPy 将自动的张量转换为 NumPy 数组
  3. 只要操作数中有一个 Tensor 对象,就把所有的操作数都转化为张量,然后再进行运算。

张量乘法

元素乘法:tf.multiply(value_a,value_a), * 运算符 向量乘法:tf.matmul(value_a,)value_a, @ 运算符 多维向量乘法采用广播机制,最后两维相乘,前面维度维度不变。 当相乘张量的维度都大于 2 时,最后两维相乘,前面维度维度不变。

注意:tf.range() 和 np.arange() 默认的 dtype 不一样,numpy.arange 默认 int64, tf.range 默认 32. 16152575706255

数据统计:求张量在某个维度上、或者全局的统计值

函数 描述
tf.reduce_sum(input_tensor, axis) 求和
tf.reduce_mean(input_tensor, axis) 求平均值
tf.reduce_max(input_tensor, axis) 求最大值
tf.reduce_min(input_tensor, axis) 求最小值

如果张量元素为 int, 那么均值也会舍为 int,如果希望精确地得到浮点数均值,有两种方式:

  1. 定义张量的 dtype=tf.float32 等浮点类型
  2. 如果定义时,使用了整数,可以在调用 tf.reduce_mean() 时, 采用 tf.cast(values, tf.flaot32) 来将张量值转换为浮点数
16152605253799

求最值的索引

tf.argmax(), tf.argmin()

16152610087523