tensorflow函数一览

本文详细介绍了TensorFlow 1.3.0版本中的各种函数,包括一元元素级操作(如数学函数、三角函数)、二元元素级操作(如算术运算)、张量生成和切片操作、变量操作以及概率分布和统计操作。内容涵盖了从基本的数学计算到复杂的张量操作,是理解TensorFlow函数的好资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tensorflow函数一览

注意本文介绍的是version 1.3.0下的函数,有些函数可能在旧版本中没有。

转载请注明出处变天式的博客

前言:名词解释


tensor张量,可以是一个数,也可以是一个向量、矩阵或者高纬度数据
operator操作,在tensorflow里面,函数也叫作操作
Uni一元,表示操作只有一个参数
Bi二元,表示操作有2个参数
element-wise元素级操作,表示该操作是对张量的每一个元素进行一一对应的操作,输出和输入的张量维度和元素个数保持不变
variable变量,表示可以微分和手动更新的参数,代表神经网络中可以训练的参数,比如weight和bias
placeholder占位符,如果把一整个神经网络看成一个未知的函数的话,占位符就相当于函数的输出
rank秩,数组的维度的维度,例如标量的rank=0, rank(vector)=1, rank(matrix)=2, rank([[[1],[1]],[[2],[2]]])=3,…,以此类推

一元元素级操作(Uni Element-wise Operaters)

一元元素操作的输入参数一般是(tensor, name=None), name表示操作的名称,tensor是输入张量, 输出是一个shape和输入完全相同的张量,表示对输入张量tensor的每一个参数都申请了同一个操作的结果。例如abs([1., -1., 3., -4.]) => [1., 1., 3., 4.]

数学函数

tf.abs|log|exp|square|sqrt|reciprocal(x, name=None)

Computes the absolute value/log/exp/square/sqare root/reciprocal of a tensor element-wise.
计算张量每个元素的绝对值/自然对数/自然指数/平方/平方根/倒数。

import tensorflow as tf
tf.global_variables_initializer()
sess.run(tf.reciprocal([[3., 4.]]))
## array([[ 0.33333334,  0.25      ]], dtype=float32)

三角函数与反三角函数

函数名参数-
tf.sin|cos|tan(x, name=None)三角函数
tf.asin|acos|atan(x, name=None)反三角函数

Computes sin/cos/tan/asin/acos/atan of x element-wise.
按照元素计算正弦/余弦/正切/反正弦/反余弦/反正切值,输出和x的形状相同。
反三角函数指的是三角函数在其单调区间中的反函数。具体可百度之

import math
sess.run(tf.asin([0, 0.5, math.sqrt(0.5), 1.0]))
# array([ 0.        ,  0.52359879,  0.78539813,  1.57079637], dtype=float32)

取整函数

tf.ceil|tf.floor|tf.round|tf.rint(x, name=None)

Returns element-wise smallest integer in not less than x.
Returns element-wise biggest integer in not greater than x.
Returns element-wise integer closest to x.
按照元素向上取整\向下取整\四舍五入。tf.rint和tf.round的效用相同。四舍五入的时候如果小数部分是0.5的话,则取偶数,例如(-0.5->0.), (1.5->2.0).

sess.run(tf.ceil([0, 0.5, math.sqrt(0.5), 1.0]))
# array([ 0.,  1.,  1.,  1.], dtype=float32)
sess.run(tf.floor([0, 0.5, math.sqrt(0.5), 1.0]))
# array([ 0.,  0.,  0.,  1.], dtype=float32)
sess.run(tf.round([0, 0.5, math.sqrt(0.5), 1.5]))
# array([ 0.,  0.,  1.,  2.], dtype=float32)
sess.run(tf.rint([0, 0.5, math.sqrt(0.5), -0.5]))
# array([ 0.,  0.,  1.,  0.], dtype=float32)

最值索引

函数名函数参数函数说明
tf.arg_max|arg_min(x, dimension, name=None)沿着指定的维度返回张量在指定维度最大值(或最小值)索引
tf.argmax|argmin(x, axis=None, name=None, dimension=None)同上

tf.argmaxtf.arg_max执行的是同一个操作,但是推荐使用argmax,因为arg_max在将来会被deprecated.

复杂的函数/激活函数

函数名函数参数函数说明
tf.sinh|cosh|tanh(x, name=None)双曲正弦,双曲余弦,双曲正切
tf.asinh|acosh|atanh(x, name=None)反双曲正弦,反双曲余弦,反双曲正切
tf.sigmoid(x, name=None)Sigmoid函数
tf.rsqrt(x, name=None)平方根的倒数

双曲三角函数

sinh(x)=exex2.0cosh(x)=ex+ex2.0tanh(x)=sinh(xcosh(x)=exexex+ex s i n h ( x ) = e x − e − x 2.0 c o s h ( x ) = e x + e − x 2.0 t a n h ( x ) = s i n h ( x c o s h ( x ) = e x − e − x e x + e − x

反双曲三角函数,故名思议,是三角函数的反函数
asinh(sinh(x))=xacosh(cosh(x))=xatanh(tanh(x))=x a s i n h ( s i n h ( x ) ) = x a c o s h ( c o s h ( x ) ) = x a t a n h ( t a n h ( x ) ) = x

Sigmoid函数
sigmoid(x)=11+ex=ex1+ex s i g m o i d ( x ) = 1 1 + e − x = e x 1 + e x

rsqrt函数
rsqrt(x)=1x r s q r t ( x ) = 1 x

y=tanh(x)的取值范围在(-1, +1)之间, y=sigmoid(x)的取值范围在(0, 1)之间,这两个函数都是S型曲线,通常用作神经网络的激活函数。

类型转换函数

函数名函数参数函数说明
tf.cast(x, dtype, name=None)强制类型转换
tf.to_bfloat(x, name='ToBFloat16')Casts a tensor to type bfloat16
tf.to_float(x, name='ToFloat')Casts a tensor to type float32
tf.to_double(x, name='ToDouble')Casts a tensor to type float64
tf.to_int32(x, name='ToInt32')Casts a tensor to type int32
tf.to_int64(x, name='ToInt64')Casts a tensor to type int64
tf.bitcast(x, dtype, name=None)强制类型转化,改变类型但是不改变内存中保存的内容
tf.as_string(x, precision=None, scientific=None, shortest=None, width=None, fill=None, name=None)转换成字符串
tf.sign(input, name=None)指示函数或曰符号函数,输出张量的类型和输出相同

1). cast(x, dtype, name=None)

Casts a tensor to a new type.
强制将张量中元素转换成新的类型

2). bitcast(x, dtype, name=None)

在内存中保存的二进制内容不变得情况下改变类型,相当于改变了二进制串的解码方式,所以该函数会改变张量的形状(shape).

3). as_string(x, precision=None, scientific=None, shortest=None, width=None, fill=None, name=None)

precision: 精度
scitentific:科学计数法
shortest: 是否选择最短的表示法
width: 宽度
fill:补全,如果设置了宽度且字符串小于width时补全字符,默认补全字符是空格

4). sign(input, name=None)

// for each element x in input:(伪代码)
if x > 0 then y = 1
if x == 0 or x is Nan then y = 0
if x < 0 then y = -1

5). to_bfloat16 | to_float | to_double | to_int32 | to_int64
将张量转化为16位、32位、64位精度的浮点小数
或者32位、64位的整形数字。

断言类函数

函数名函数参数断言式
tf.assert_non_negative|assert_negative断言非负数,断言是负数
tf.assert_non_positive|assert_positive断言非正数,断言是正数
tf.assert_interger断言是整数
tf.check_numerics(x,message,name=None)检查x中是否有Nan或者Inf,有的话报错(InvalidArguments),没有的话返回x
tf.assert_scalar(tensor, name=None)判断tensor是否是标量

二元元素级操作(Bi Element-wise Operaters)

二元元素集操作指的是输入时2个张量,输出为一个张量,输出张量为输入张量中的元素按照位置进行相应计算的操作。输入参数一般为(tensor_x, tensor_y, name=None)

算术操作 (加减乘除等)

函数名函数参数函数说明
tf.add(x, y, name=None)加法, tf.add(x,y)等价于x+y,支持广播(broadcasting)

断言类函数

二元断言操作

函数名函数参数断言式
tf.assert_equal|assert_none_equal(x, y, data=None, …)断言是否相等
tf.assert_greater|assert_greater_equal(x, y, data=None, …)断言是否大于/大于等于
tf.assert_less|assert_less_equal(x, y, data=None, …)断言是否小于/小于等于

反三角函数

函数名函数参数断言式
tf.atan2(x, y, name=None)tf.atan(y/x)

列表元素级操作(List Element-wise Operaters)

列表元素级操作指的是输入时一组张量(张量的列表), 输出是列表中张量按照位置进行相应操作输出结果。

算术操作(加减乘除等)

函数名函数参数函数说明
tf.accumulate_n(inputs, shape=None, tensor_dtype=None, name=None)加法
tf.add_n(inputs, name=None)加法,和accumulate_n执行相同的操作
a = [[1, 2, 3], [3, 4, 1]]
b = [[5, 0, -1], [0, 6, 4]]
tf.accumulate_n([a, b, a]) #=> a+b+a => [[7, 4, 5], [6, 14, 6]]

tf.add_ntf.accumulate_n执行的操作,区别在于tf.add_n会在所有的输入准备就绪后开始求和而tf.accumulate_n不会。

断言操作

函数名函数参数函数说明
tf.assert_proper_iterable(values)

1). assert_proper_iterable(values)

Static assert that values is a “proper” iterable.
判断values是不是一个合适的迭代器,如果values是一个Tensor, SparseTensor, np.array, tf.compat.bytes_or_texts_types则报错。或者不是迭代器也报错。
这个函数时有用处的,因为张量Tensor或者数组np.array本身也是可迭代的 (iterable).

张量生成操作(Tensor Generation Operators)

根据常量生成张量

函数名函数参数函数说明
tf.constant(value, dtype=None, shape=None, name=’Const’, verify_shape=False)从常量生成
tf.zeros|ones根据形状创建等值张量
tf.zeros_like|ones_like根据推断的形状创建等值张量

根据概率分布生成张量

函数名函数参数概率分布名
tf.random_uniform均匀分布
tf.random_normal正态分布
tf.zeros_like|ones_like根据推断的形状创建等值张量

张量切片操作(Tensor Slice Operations)

函数名函数参数函数说明
tf.boolean_mask(tensor, mask, name)Numpy equivalent is tensor[mask]

断言操作

函数名函数参数函数说明
tf.assert_rank(x, rank, …)判断x的rank是不是和指定的rank相等
tf.assert_rank_at_least(x, rank, …)判断x的rank是不是大于等于指定的rank
tf.zeros_like|ones_like根据推断的形状创建等值张量
tf.assert_same_float_dtype(tensors=None, dtype=None)判断是否是指定的float类型
tf.assert_type(tensor, tf_type, message=None, name=None)判断tensor是否是指定的类型q

变量操作 (Variables Operations)

创建操作

赋值操作 (assign )

变量的赋值操作,var必须是一个Variable,可以没有初始化。

函数名函数参数函数说明
tf.assign(var, value,…)Update var by assigning value to it, var = value
tf.assign_add(var, value,…)Update var by adding value to it, var += value
tf.assign_sub(var, value,…)Update var by substracting value from it, var -= value

初始化操作

函数名函数参数函数说明
tf.report_uninitialized_variables(var_list=None, name=’report_uninitialized_variables’)返回没有还没有被初始化的变量

概率分布

函数名函数参数函数说明
tf.betainc(a, b, x, name=None)计算正则非完全贝塔积分

1). tf.betainc(a, b, x)

Ix(a,b)=B(x;a,b)B(a,b) I x ( a , b ) = B ( x ; a , b ) B ( a , b )

其中
B(x;a,b)=x0ta1(1t)b1dt B ( x ; a , b ) = ∫ 0 x t a − 1 ( 1 − t ) b − 1 d t

在计算贝塔分布的时候有用。

统计操作

函数名函数参数函数说明
tf.bincount(arr, weights=None, minlength=None, maxlength=None, dtype=tf.int32)统计张量arr中每个数出现的次数

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值