Tensorflow Python API 翻译(math_ops)(第一部分)

TensorFlow开发者认证:从模型训练到生产部署的全链路工程能力 TensorFlow开发者认证聚焦于真实场景下的端到端机器学习工程能力,涵盖数据管道构建、自定义训练循环、模型评估诊断及TFLite轻量化部署等核心环节。其本质是考察开发者对tf.data、tf.function、SavedModel和TFLite等原生API的深度理解与鲁棒应用能力,而非理论记忆或高层封装调用。该认证强调内存效率、计算并行性、错误容错性与生产约束适配,适用于已具备Kaggle项目经验、能独立调试梯度流与部署问题的中级AI工程师。它代表从‘能跑通模型’到‘可交付系统’的关键跃迁,是工业级Te 阅读详情

算术运算符

TensorFlow提供了一些操作,你可以使用基本的算术运算符添加到你的图表。


tf.add(x, y, name = None)

解释:这个函数返回x与y逐元素相加的结果。

注意:tf.add操作支持广播形式,但是tf.add_n操作不支持广播形式。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant(2)
b = tf.constant(3)
c = tf.add(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int8,int16,int32,complex64,int64。
y: 一个Tensor,数据类型必须和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.sub(x, y, name = None)

解释:这个函数返回x与y逐元素相减的结果。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,2])
b = tf.constant(2)
c = tf.sub(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int8,int16,int32,complex64,int64。
y: 一个Tensor,数据类型必须和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.mul(x, y, name = None)

解释:这个函数返回x与y逐元素相乘的结果。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,2])
b = tf.constant(2)
c = tf.mul(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int8,int16,int32,complex64,int64。
y: 一个Tensor,数据类型必须和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.div(x, y, name = None)

解释:这个函数返回x与y逐元素相除的结果。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,2])
b = tf.constant(2)
c = tf.div(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int8,int16,int32,complex64,int64。
y: 一个Tensor,数据类型必须和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.mod(x, y, name = None)

解释:这个函数返回x与y逐元素取余的结果。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,2])
b = tf.constant(2)
c = tf.mod(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:int16,int32,float32,float64。
y: 一个Tensor,数据类型必须和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

基础的数学函数

TensorFlow提供了一些操作,你可以使用基本的数学函数,将它们添加到你的图表。


tf.add_n(inputs, name = None)

解释:这个函数的作用是对inputs列表中的元素相应位置累加。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,2], tf.int32)
b = tf.constant([3,4], tf.int32)
c = tf.add_n([a,b])
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

inputs: 一个列表,其中至少有一个Tensor,数据类型是必须是以下之一:float32,float64,int64,int32,uint8,int16,int8,complex64,qint8,quint8,quint32。并且列表中的每个Tensor必须有相同的数据维度。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和inputs相同。

tf.abs(x, name = None)

解释:这个函数的作用返回x的绝对值。

给定x,它是一个实数Tensor。这个操作返回一个tensor,这个tensor中的每个值是对应于x中的每个值得绝对值。

如果,你需要处理复数的绝对值,那么可以使用tf.complex_abs()函数。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,-2])
c = tf.abs(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float,double,int64或者int32。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和数据维度都和x相同。

tf.neg(x, name = None)

解释:这个函数的作用是得到x中每个值得负数,即y = -x

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,-2])
c = tf.neg(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.sign(x, name = None)

解释:这个函数是一个符号函数,按照如下规则转换x中的每一个值。

如果 x < 0,y = sign(x) = -1;
如果 x == 0,y = sign(x) = 0;
如果 x > 0,y = sign(x) = 1;

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([1,-2,0])
c = tf.sign(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int32,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.inv(x, name = None)

解释:这个函数是计算x中每个元素的倒数,即y = 1/x。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant(7.0)
c = tf.inv(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

译者注:
我测试了一下这个API,但好像x的数据类型只有是float类型时才能成功。


tf.square(x, name = None)

解释:这个函数是计算x中每个元素的平方,即y = x*x = x^2。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.0,7.0])
c = tf.square(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.round(x, name = None)

解释:这个函数是得到x中每个元素离它最接近的整数。

比如:

# 'a' is [0.9, 2.5, 2.3, -4.4]
tf.round(a) ==> [ 1.0, 3.0, 2.0, -4.0 ]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.9, 0.0, -2.1, 2.0, 7.2])
c = tf.round(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是float或者double。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同,数据维度和x相同。

tf.sqrt(x, name = None)

解释:这个函数是得到x中每个元素的开平方值,即y = x^{1/2}。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2, 3], tf.float32)
c = tf.sqrt(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.rsqrt(x, name = None)

解释:这个函数是得到x中每个元素的开平方值的导数,即y = 1/x^{1/2}。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2, 3], tf.float32)
c = tf.rsqrt(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.pow(x, y, name = None)

解释:这个函数是计算幂运算。

给定一个x和y,对应x和y中的每一个值,计算x^y。

比如:

# tensor 'x' is [[2, 2]], [3, 3]]
# tensor 'y' is [[8, 16], [2, 3]]
tf.pow(x, y) ==> [[256, 65536], [9, 27]]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2, 3])
b = tf.constant([2, 3])
c = tf.pow(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float,double,int32,complex64,int64。
y: 一个Tensor,数据类型必须是以下之一:float,double,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor。

tf.exp(x, name = None)

解释:这个函数是计算x中每个元素的指数,即y = e^x。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.0, 1], tf.float32)
c = tf.exp(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.log(x, name = None)

解释:这个函数是计算x中每个元素的自然对数,即y = log(x)。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.0, 1], tf.float32)
c = tf.log(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.ceil(x, name = None)

解释:这个函数是返回不小于x中每个元素的最小整数。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8], tf.float32)
c = tf.ceil(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.floor(x, name = None)

解释:这个函数是返回不大于x中每个元素的最大整数。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8], tf.float32)
c = tf.floor(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.maximum(x, y, name = None)

解释:这个函数是逐个比较x和y中的值,求得最大值,即x > y ? x : y。该函数支持广播形式。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8, 0.0])
b = tf.constant(1.0)
c = tf.maximum(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,int64。
y: 一个Tensor,数据类型和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.minimum(x, y, name = None)

解释:这个函数是逐个比较x和y中的值,求得最小值,即x < y ? x : y。该函数支持广播形式。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8, 0.0])
b = tf.constant(1.0)
c = tf.minimum(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,int64。
y: 一个Tensor,数据类型和x相同。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.cos(x, name = None)

解释:这个函数是计算x中每个元素的余弦值。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8, 0.0])
c = tf.cos(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

tf.sin(x, name = None)

解释:这个函数是计算x中每个元素的正弦值。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8, 0.0])
c = tf.sin(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,complex64,int64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同。

矩阵数学函数

TensorFlow提供了一些操作,你可以使用添加基本的矩阵数学函数在你的图中。


tf.diag(diagonal, name = None)

解释:这个函数是给定一个对角值diagonal,然后返回一个对角tensor。

给定一个对角值diagonal,这个操作返回一个对角tensor,对角线上面的值是diagonal,其余值都用0来填充。

假设diagonal的维度为[D1, D2, …, Dk],那么输出tensor的秩为2k,维度是[D1, D2, …, Dk, D1, D2, …, Dk],如下:

output[i1, i2, …, ik, i1, i2, …, ik] = diagonal[i1, .., ik],其余值都是0。

比如:

# 'diagonal' is [1, 2, 3, 4]
tf.diag(diagonal) ==> [[1, 0, 0, 0]
                       [0, 2, 0, 0]
                       [0, 0, 3, 0]
                       [0, 0, 0, 4]]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

a = tf.constant([2.2, -1.8, 1.0])
c = tf.diag(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

diagonal: 一个Tensor,数据类型必须是以下之一:float32,float64,int32,int64。它的秩最大为3。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和diagonal相同。

tf.transpose(a, perm = None, name = ‘transpose’)

解释:将a进行转置,并且根据perm参数重新排列输出维度。

输出数据tensor的第i维将根据perm[i]指定。比如,如果perm没有给定,那么默认是perm = [n-1, n-2, …, 0],其中rank(a) = n。默认情况下,对于二维输入数据,其实就是常规的矩阵转置操作。

比如:

input_data.dims = (1, 4, 3)
perm = [1, 2, 0]

# 因为 output_data.dims[0] = input_data.dims[ perm[0] ]
# 因为 output_data.dims[1] = input_data.dims[ perm[1] ]
# 因为 output_data.dims[2] = input_data.dims[ perm[2] ]
# 所以得到 output_data.dims = (4, 3, 1)
output_data.dims = (4, 3, 1)

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 

sess = tf.Session()
input_data = tf.constant([[1,2,3],[4,5,6]])
print sess.run(tf.transpose(input_data))
print sess.run(input_data)
print sess.run(tf.transpose(input_data, perm=[1,0]))
input_data = tf.constant([[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]])
print 'input_data shape: ', sess.run(tf.shape(input_data))
output_data = tf.transpose(input_data, perm=[1, 2, 0])
print 'output_data shape: ', sess.run(tf.shape(output_data))
print sess.run(output_data)
sess.close()

输入参数:

a: 一个Tensor。
perm: 一个对于a的维度的重排列组合。
name:(可选)为这个操作取一个名字。

输出参数:

一个经过翻转的Tensor。

tf.matmul(a, b, transpose_a = False, transpose_b = False, a_is_sparse = False, b_is_sparse = False, name = None)

解释:将矩阵a和矩阵b进行相乘,得到矩阵a*b。

输入数据必须是一个二维的矩阵,经过转置或者不转置,内部维度必须相匹配。

输入矩阵必须有相同的数据类型,数据类型为:float,double,int32,complex64。

矩阵可以被设置为转置操作,即transpose_a = True, transpose_b = True。默认情况下,该标记都是被设置为False。

如果矩阵中存在很多的0,那么我们可以使用sparse标记,即a_is_sparse = True, b_is_sparse = True。默认情况下,该标记都是被设置为False。

比如:

# 2-D tensor `a`
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3]) => [[1. 2. 3.]
                                                      [4. 5. 6.]]
# 2-D tensor `b`
b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2]) => [[7. 8.]
                                                         [9. 10.]
                                                         [11. 12.]]
c = tf.matmul(a, b) => [[58 64]
                        [139 154]]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(2,3))
b = tf.constant(np.random.rand(1,3))
c = tf.matmul(a, b, transpose_b = True)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

a: 一个Tensor,数据类型是float,double,int32或者complex64。
b: 一个Tensor,数据类型和a相同。
transpose_a: 如果该值维True,那么在矩阵计算之前,先将a进行转置。
transpose_b: 如果该值维True,那么在矩阵计算之前,先将b进行转置。
a_is_sparse: 如果该值维True,那么在矩阵计算的时候,将a当做一个sparse矩阵考虑。
b_is_sparse: 如果该值维True,那么在矩阵计算的时候,将b当做一个sparse矩阵考虑。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和a相同。

tf.batch_matmul(x, y, adj_x = None, adj_y = None, name = None)

解释:这个函数的作用是将两个张量按批切片进行相乘。

将张量x和y进行切片(每个切片就是一个批的元素),然后将对应的x和y的每个切片进行相乘,将得到的结果按照原来批的大小进行重新安排。如果我们把adj_x或者adj_y设置成True,在做乘法之前,每个独立的切片可以组成它的共轭(其实相当于转置)。

输入的x和y是三维tensor,或者更高维度的[…, r_x, c_x]和[…, r_y, c_y]。

输出tensor是一个三维的,或者更高维度的[…, r_o, c_o],其中:

r_o = c_x if adj_x else r_x
c_o = r_y if adj_y else c_y

计算过程如下:

out[…, :, :] = matrix(x[…, :, :]) * matrix(y[…, :, :])

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(2, 2, 3))
b = tf.constant(np.random.rand(3, 3, 1))
c = tf.batch_matmul(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(3, 2, 3, 1))
b = tf.constant(np.random.rand(3, 2, 3, 1))
c = tf.batch_matmul(a, b, adj_x = False, adj_y = True )
sess = tf.Session()
print sess.run(c)
print sess.run(tf.shape(c))
sess.close()

输入参数:

x: 一个Tensor,数据类型是float32,float64,int32或者complex64,数据维度是三维的,或者更高维度[..., r_x, c_x]。
y: 一个Tensor,数据类型和x相同,数据维度是三维的,或者更高维度[..., r_y, c_y]。
adj_x: 这是一个可选的布尔类型的值,默认情况下是False。如果我们设置为True,x的每个切片将进行转置。
adj_y: 这是一个可选的布尔类型的值,默认情况下是False。如果我们设置为True,y的每个切片将进行转置。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和x相同,数据维度是三维的,或者更高维度[..., r_o, c_o]。

tf.matrix_determinant(input, name=None)

解释:这个函数的作用是计算n阶矩阵的行列式。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(3, 3))
c = tf.matrix_determinant(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

input: 一个Tensor,数据类型是float32或者float64,数据维度是[M, M]。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor的标量,数据类型和input相同。

tf.batch_matrix_determinant(input, name=None)

解释:这个函数的作用是计算每个批(切片)的n阶矩阵的行列式。

输入tensor的数据维度必须是[…, M, M],其中内部必须是一个二维的方阵,对于所有的子矩阵,输出结果是一个一维的tensor。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(4, 2, 3, 3))
c = tf.batch_matrix_determinant(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

input: 一个Tensor,数据类型是float32或者float64,数据维度是[..., M, M]。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和input相同,数据维度是[...]。

tf.matrix_inverse(input, name=None)

解释:这个函数的作用是计算n阶矩阵的逆矩阵,并且检查可逆性。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(3, 3))
c = tf.matrix_inverse(a)
sess = tf.Session()
print sess.run(c)
d = tf.matmul(a, c)
print sess.run(d)
e = tf.matrix_determinant(d)
print sess.run(e)
sess.close()

输入参数:

input: 一个Tensor,数据类型是float32或者float64,数据维度是[M, M]。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和input相同,数据维度是[M, M]。

tf.batch_matrix_inverse(input, name=None)

解释:这个函数的作用是计算每个批(切片)的n阶矩阵的逆矩阵,并且检查可逆性。

输入tensor的数据类型是[…, M, M],其中内部必须是一个二维的方阵,对于每一个子矩阵,输出的矩阵的逆和输入数据有相同的数据维度。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant(np.random.rand(2, 3, 3))
c = tf.batch_matrix_inverse(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

input: 一个Tensor,数据类型是float32或者float64,数据维度是[..., M, M]。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和input相同,数据维度是[..., M, M]。

tf.cholesky(input, name=None)

解释:这个函数的作用是计算n阶矩阵的Cholesky分解。

输入数据必须是一个对称的正定矩阵,并且这个操作我们只会读入矩阵的下三角部分,不会读取矩阵的上三角部分。

输出结果是经过Cholesky分解之后的一个对角线元素为正数的下三角实矩阵。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([[2, np.random.rand()], [-2, 5]], tf.float32)
c = tf.cholesky(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

input: 一个Tensor,数据类型是float32或者float64,数据维度是[M, M]。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和input相同,数据维度是[M, M]。

tf.batch_cholesky(input, name=None)

解释:这个函数的作用是计算每个批(切片)的n阶矩阵的Cholesky分解。

输入tensor的数据类型是[…, M, M],其中内部必须是一个二维的方阵,并且满足Cholesky分解的条件。输出tensor和输入数据有相同的数据类型,并且每个切片都是经过Cholesky分解之后的值。

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([[[2, np.random.rand()], [-2, 5]], [[2, np.random.rand()], [-2, 5]]], tf.float32)
c = tf.batch_cholesky(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

input: 一个Tensor,数据类型是float32或者float64,数据维度是[..., M, M]。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型和input相同,数据维度是[..., M, M]。

复数函数

TensorFlow提供了一些复数函数,使得你可以去操作复数,你可以将它们添加到你的图表。


tf.complex(real, imag, name=None)

解释:这个函数的作用是将两个实数转换成一个复数。

这个操作就是去计算复数a + bj,其中a来自于输入数据real,表示实部,b来自于输入数据imag,表示虚部。

输入数据real和imag必须拥有相同的数据维度。

比如:

# tensor 'real' is [2.25, 3.25]
# tensor `imag` is [4.75, 5.75]
tf.complex(real, imag) ==> [[2.25 + 4.74j], [3.25 + 5.75j]]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([2.25, 3.25])
b = tf.constant([4.75, 5.75])
c = tf.complex(a, b)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

real: 一个Tensor,数据类型是float。
imag: 一个Tensor,数据类型是float。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型是complex64。

tf.complex_abs(x, name=None)

解释:这个函数的作用是计算复数的绝对值。

给定一个复数张量x,这个操作是计算x中的每个值的绝对值,并且返回一个float类型的张量。在x中的所有复数的形式必须是a + bj的形式,那么绝对值计算公式如下:

比如:

# tensor 'x' is [[-2.25 + 4.75j], [-3.25 + 5.75j]]
tf.complex_abs(x) ==> [5.25594902, 6.60492229]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([2.25 + 3.25j])
c = tf.complex_abs(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是complex64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型是float32。

tf.conj(in_, name=None)

解释:这个函数的作用是计算复数的复共轭。

给定一个复数张量in_,这个操作是计算in_中的每一个复数的复共轭。在in_中所有复数的形式必须是a + bj的形式,其中a是实数部分,b是虚数部分。

经过这个操作,复共轭的返回形式是a - bj。

比如:

# tensor 'in' is [-2.25 + 4.75j, 3.25 + 5.75j]
tf.conj(in) ==> [-2.25 - 4.75j, 3.25 - 5.75j]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([2.25 + 3.25j])
c = tf.conj(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是complex64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型是complex64。

tf.imag(in_, name=None)

解释:这个函数的作用是返回复数的虚部。

给定一个复数张量in_,这个操作是返回in_中的每一个复数的虚部。在in_中所有复数的形式必须是a + bj的形式,其中a是实数部分,b是虚数部分。

比如:

# tensor 'in' is [-2.25 + 4.75j, 3.25 + 5.75j]
tf.imag(in) ==> [4.75, 5.75]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([2.25 + 3.25j])
c = tf.imag(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是complex64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型是float32。

tf.real(in_, name=None)

解释:这个函数的作用是返回复数的实部。

给定一个复数张量in_,这个操作是返回in_中的每一个复数的实部。在in_中所有复数的形式必须是a + bj的形式,其中a是实数部分,b是虚数部分。

比如:

# tensor 'in' is [-2.25 + 4.75j, 3.25 + 5.75j]
tf.real(in) ==> [-2.25, 3.25]

使用例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np

a = tf.constant([2.25 + 3.25j])
c = tf.real(a)
sess = tf.Session()
print sess.run(c)
sess.close()

输入参数:

x: 一个Tensor,数据类型是complex64。
name:(可选)为这个操作取一个名字。

输出参数:

一个Tensor,数据类型是float32。
PyTorch、TensorFlow、Keras实战踩坑对比:数据加载到部署的四大生死环节 深度学习框架选择本质是工程权衡问题——从计算图机制(动态图vs静态图)出发,理解其对数据加载效率、模型构建灵活性、训练调试可观察性及部署兼容性的底层影响。TensorFlow依赖声明式tf.data流水线但易受CPU-GPU协同瓶颈制约;Keras以高抽象简化开发却在多进程内存管理与版本兼容上埋下隐性风险;PyTorch凭借纯Python nn.Module和透明DataLoader提供极致控制力,但也要求开发者亲手拧紧每颗性能螺丝。本文基于工业质检、医疗影像、边缘推理等真实场景,结合NVIDIA A100 阅读详情

相关推荐

TensorFlow手写单词识别:CNN+BiLSTM+CTC实战指南

手写单词识别是OCR落地的关键挑战,本质是图像理解、序列建模与语言约束的协同任务。其核心原理在于解决输入图像长度固定与输出字符序列长度可变之间的对齐难题,CTC(Connectionist Temporal Classification)损失函数为此提供了端到端的解决方案。相比单字符分类,该技术具备更强的真实场景鲁棒性,能应对倾斜、粘连、涂改等干扰,在医疗处方、教育笔记等轻量级文档数字化中具有明确工程价值。本文聚焦TensorFlow生态下的CNN+BiLSTM+CTC技术栈,覆盖数据构建、预处理矫正、模型

hqmln的博客 552

tensorflow学习math_ops(一)

math_ops函数使用,本篇为算术函数和基本数学函数。

华夏意匠的博客 7133

【立创开源】太阳能板充电方案单节3.7v锂电池充电

一直对太阳能板感兴趣,老是感觉充电好麻烦,要是放在那里就可以自己充电多好,所以尝试做了一个太阳能充电板。因为这几天都是阴天,所以测试效果不太好,但是下雨天也是能充电的,但是基本只能维持电量不掉,电压差不多4.2v以上,电流只有2mA。中午出太阳的时候,隔着玻璃放在太阳下测试,电流有12mA以上。能充起一点点电。等大晴天看一看能不能达到卖家说50mA。┗( T﹏T )┛感觉达不到。这个东西只能当一个玩具(;′⌒`)。不过如果汽车上一些行车记录仪加一个这个,汽车经常在太阳下停车,可能再也不用充电了。

贾saisai的博客 1万+

Tensorflow 物体检测(object detection) 之如何优雅地读数据

本文主要分析 models/research/object_detection/train.py 核心代码 其中配置示例 samples/configs/faster_rcnn_inception_resnet_v2_atrous_coco.config train_input_reader: { tf_record_input_reader { input_path: &amp;amp;amp;quot;...

wenxueliu的博客 2707

HDMI2.1/eDP TX接口设计:

HDMI2.1向下兼容,HDMI2.1工作在FRL模式,HDMI2.0工作在TMDS模式。因此采用AC耦合电压模式驱动器。一般采用220nF,封装建议0201。,但是协议要求,往 CEC 管脚通过 27K 电阻加 3.3V 电压,漏电不允许超过。NOTE:如果只需要支持 HDMI2.0 及以下模式时, MOS管也不能省掉。DDC_SCL/DDC_SDA 协议规定是。HDMI2.0模式:配置为高,MOS导通。HDMI2.1模式:配置为低,MOS不导通。,必须增加电平转换电路。形成直流偏置,大约3V。

qq_40010777的博客 7853

边缘AI硬件风向:从专用芯片到端侧大模型

边缘AI硬件正呈现五大发展趋势:专用AI加速芯片(如华为昇腾、谷歌EdgeTPU)凭借高能效比成为主流;端侧大模型催生支持Transformer架构的新硬件需求;存算一体技术突破内存墙限制;FPGA和可重构计算提供灵活性;异构集成与Chiplet技术实现模块化设计。这些发展需要配套软件工具链支持,未来边缘设备将演变成具备本地智能的"智能体",竞争焦点转向算力、能效、易用性和成本的多维平衡。

qq_37027335的博客 346

python3下tensorflow练习(八)之迁移学习

 这周帮同学做了一个CNN的分类任务,因为赶时间所以直接用InceptionV3的参数进行迁移学习,只替换最后一层全连接层,然后对自己的数据集进行4分类的训练。在最后这一层全连接层之前的网络层称之为瓶颈层(BOTTLENECK)。 最后实现了对'雨凇','霜','积雪', '露'的四分类,需要先下载InceptionV3的训练好的模型和我的四分类数据集 1.训练的代码 # -*- codi...

蒋成的博客 4081

晶圆测试(Wafer Sort)的核心技术与良率提升策略

晶圆测试(Wafer Sort)是芯片制造中的关键“入学考试”,通过探针台与自动测试设备(ATE)对晶圆上的芯片进行功能与参数测试,筛选不合格芯片以控制成本。本文深入解析了其核心技术,包括自动化视觉系统对准、测试流程优化策略,并探讨如何利用测试数据驱动良率提升,展望了DFT与AI智能测试的未来趋势。

e4f5g6h的博客 514

tensorflow接口 math_ops

math_ops函数使用: 1、tf.add(x, y, name=None)  功能:对应位置元素的加法运算。 输入:x, y具有相同尺寸的tensor, 可以为half, float32, float64, unit8, int8, int16, int32, int64, eg:  1、x = tf.constant(1.0) 2、y = f.constant(2.0) 3、z ...

gqixf的博客 1654

在SAP系统中,公司间关联交易(Intercompany Transactions)或内部往来主要有三种经典的实现模式。这些模式的选择取决于企业的业务复杂度、自动化需求以及对实时性的要求

SAP系统中公司间关联交易的三种实现模式分析:1)手工记账模式(FB60/FB70)适用于低频交易,灵活性高但易出错;2)SD/MM跨公司销售采购模式(VA01/VF01/ME21N)适用于真实业务流转,业务财务集成度高;3)自动清算模式(F.13/ICR)适合高频交易集团企业,支持实时自动对账。关键成功要素包括正确配置贸易伙伴字段、统驭科目及专用凭证类型。建议根据企业规模、业务复杂度及自动化需求选择合适模式,其中大型集团优先考虑自动对账方案以确保合并报表准确性。

金牌架构师 551

Explorer.exe系统错误,电脑重启后刚开始一段时间正常,过一会桌面任务栏就卡死,可以打开任务管理器

联想E14Win10专业版。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 8047

Tensorflow-Python-API-翻译(math_ops)(第一部分)

作者:chen_h 微信号 &amp; QQ:862251340 微信公众号:coderpai 计划现将 tensorflow 中的 Python API 做一个学习,这样方便以后的学习。 原文链接 该章介绍有关数学符号操作的API 第一部分 第二部分 算术运算符 TensorFlow提供了一些操作,你可以使用基本的算术运算符添加到你的图表。 ...

CoderPai的博客 407

基于多传感器融合的智身四足机器狗楼梯环境SLAM系统设计与实现

本文设计了一种基于多传感器融合的四足机器狗楼梯环境SLAM系统。系统采用Jetson Orin NX为主控制器,集成RealSense D435i深度相机和Livox Mid360激光雷达,在ROS2框架下实现平面定位精度<5cm、楼梯环境下导航不漂移的目标。通过多层次传感器融合策略、运动学约束优化和状态切换机制,解决了楼梯环境下的定位累积误差问题,实现了平面与楼梯环境的自动识别切换及精度复位功能。硬件设计注重传感器布局优化和精确标定,软件架构采用分层设计,确保实时性能。该系统为四足机器人在复杂地形中

huanghm88的专栏 238

Tensorflow Python API 翻译(math_ops)(第二部分)

计划现将 tensorflow 中的 Python API 做一个学习,这样方便以后的学习。原文链接 该章介绍有关数学符号操作的API 第一部分 第二部分 减少元素操作 TensorFlow提供了一些操作,你可以用它来执行常见的数学运算,以此减少张量的维...

chuange6363的博客 242

华为OD机试真题 新系统 9月27号 【数据中心最佳维护窗口】

华为OD机试真题 新系统【数据中心最佳维护窗口】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【数据中心最佳维护窗口】多语言题解。

qq_45776114的博客 1150

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Tensorflow-Python-API-翻译(math_ops)(第二部分)

作者:chen_h 微信号 &amp; QQ:862251340 微信公众号:coderpai 计划现将 tensorflow 中的 Python API 做一个学习,这样方便以后的学习。 原文链接 该章介绍有关数学符号操作的API 第一部分 第二部分 减少元素操作 TensorFlow提供了一些操作,你可以用它来执行常见的数学运算,以此减少张量...

CoderPai的博客 344

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CANN/asc-devkit TensorFlow算子适配

>[!NOTE]说明 >针对Ascend 950PR/Ascend 950DT,暂不支TensorFlow框架算子调用。 本章节介绍TensorFlow框架算子适配的流程,用于将TensorFlow框架的算子映射成CANN算子(开发者基于CANN框架自定义开发的算子),从而完成从TensorFlow框架调用到CANN算子的过程。同时给出TensorFlow框架侧算子调用的示例,便于开发者了解完

gitblog_00199的博客 465

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Neuropod深度揭秘:3大突破性技术实现TensorFlow与PyTorch跨框架统一部署实战

深度学习模型跨框架部署的终极解决方案Neuropod,为TensorFlow、PyTorch、TorchScript、Keras和Ludwig提供统一接口,彻底打破框架壁垒,让AI模型部署进入"一次编写,处处运行"的新时代。 ## 🎯 核心痛点:深度学习框架碎片化的困局 在当今AI开发领域,每个团队都可能同时使用多个深度学习框架:数据科学家偏爱PyTorch的灵活性,工程团队依赖Tensor

gitblog_00048的博客 400
上一篇: .NET Core Windows环境安装与体验
下一篇: Pika使用入门(一)【介绍】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值