python库--tensorflow
阅读原文时间:2023年07月12日阅读:2

方法

返回值类型

参数

说明

张量   

.constant()

Tensort

张量

实例t

value

创建一个常量tensor

dtype=None

输出类型

shape=None

返回tensor的形状

name='Const'

张量名

verify_shape=False

是否保留输入数据的形状且不能被更改. True若shape与输入形状不一致则报错

t.device

str

表示tensor将被产生的设备名称

t.dtype

 

元素类型

t.graph

 

此tensor被哪个图所有

t.name

 

张量名

t.op

 

产生这个tensor作为输出的操作

t.shape

TensorShape

tensor的形状

t.value_index

 

表示这个tensor在其操作结果中的索引

t.consumers()

list

 

返回消耗这个tensor的操作列表

t.eval()

ndarray

feed_dict=None

用于placeholder赋初始值{placeholder_object: value}

session=None

用来计算此tensor的session

t.get_shape()

TensorShape

 

tensor的形状

t.set_shape()

None

shape

更新tensor的形状, verify_shape=False

.zeros()

Tensor

(shape, dtype=tf.float32, name=None) 按shape生成一个全0 tensor

.zeros_like()

Tensor

(tensor, dtype=None, name=None) 按tensor的shape创建一个新全0 tensor

.ones()   .ones_like()

Tensor

参考上面两个, 创建全1 tensor

.fill()

Tensor

(dims, value, name=None) 值全为value, 形状为dims的tensor

.linspace()

1DTensor

创建包含num个元素, 且步长固定的tensor

start

起始值(包含)

stop

结束值(包含)

num

步长 = (stop - start) / (num-1)

name=None

张量名

.range()

1DTensor

(start, limit, delta=1, name='range') 创建范围为[start, limit)步长为delta的tensor

.placeholder()

占位符(feed_dictation) run的时候才赋初始值

Tensor

dtype

数据类型, 必须制定, 推荐float32(或1)

shape=None

指定返回张量的形状, None表示任意形状, 某一维为None则表示次维不做限制

name=None

张量名

.nn.embedding_

lookup()

Tensor

params

多维数据,

ids

多维数据, 值为params的索引, 返回params的对应值

partition_strategy='mod'

 

name=None

张量名

validate_indices=True

 

max_norm=None

 

.layers.dense()

全连接层

Tensor

 

inputs

二维tensor

units

输出空间的维度(该层神经单元节点数)

activation及其以后参数同tf.layers.conv1d

变量   

.Variable()

Variable

变量

实例v

initial_value

Tensor or Tensor_like. 变量的初始化值. 必须指定shape, 除非validate_shape=False

trainable=True

是否将该变量添加到图形集合`GraphKeys.TRAINABLE_VARIABLES`

collections=None

图表集合键的列表。新的变量被添加到这些集合中。默认为`[GraphKeys.GLOBAL_VARIABLES]`

validate_shape=True

是否允许变量初始化为未知形状的值

caching_device=None

描述设备的字符串, 表示哪个设备用来读取缓存. 默认是device

name=None

变量名

variable_def=None

 

dtype=None

指定数据类型

expected_shape=None

TensorShape类型. 要是设置了, 那么初始的值会是这种形状

import_scope=None

 

v.device

 

设备名称

v.dtype

 

数据类型

v.graph

 

存放变量的图

v.initial_value

Tensor

变量的初始值

v.initializer

 

变量的初始化器

v.name

 

变量名

v.op

 

产生这个variable作为输出的操作

v.assign()

Variable

value

为变量指定一个新值(形状相同)

use_locking=False

 

v.assign_add()

Variable

delta, use_locking

为这个变量加上一个值(形状相同)

v.assign_sub()

Variable

delta, use_locking

为这个变量减去一个值(形状相同)

v.count_up_to()

Variable

limit

上限值. 当Op运行时, 它试图将变量+1, 如果增加变量使其超过限制, 将会引发异常

v.eval()

 

session=None

在一个session里计算并返回变量值

v.get_shape()

 

 

返回变量的形状

v.initialized_value()

Tensor

 

返回已经初始化变量的值

v.load()

Variable

value

新的变量值. 把新值载入到变量里

session=None

用来估算这个变量的Session

v.read_value()

Tensor

 

返回这个变量的值

v.scatter_sub()

 

sparse_delta

 

use_locking=False

 

v.set_shape()

Variable

shape

改变变量形状

 .get_variable()

Variable

name

新的或现有变量名(可用于变量复用)

shape=None

新变量或现有变量的形状

dtype=None

新变量或现有变量的类型

initializer=None

变量的初始值设定项

regularizer=None

 

trainable=True

是否将变量添加到图形集合

collections=None

图形集合键列表

caching_device=None

 

partitioner=None

 

validate_shape=True

是否允许变量初始化为未知形状的值

use_resource=None

 

custom_getter=None

 

 

 

将value赋给ref来更新ref

.assign()

Variable

ref

Veriable

 

 

value

跟ref同类型的Tensor

 

 

validate_shape=None

True: value需和ref形状相同(默认)

 

 

False: ref将对value的形状进行引用

 

 

use_locking=None

 

 

 

name=None

操作的名称

.global_variables()

 

 

返回全局变量

.local_variables()

 

 

返回局部变量

.variables_ initializer()

 

var_list

待初始化变量列表

name='init'

操作的名称

.global_variables_ initializer()

Op

 

(替换tf.initialize_all_variables()的新方法)返回一个初始化所有全局变量的操作. 类似variables_initializers(global_variables())

.local_variables_ initializer()

Op

 

返回一个初始化所有局部变量的操作

Graph(图)   

.get_default_graph()

 

 

返回默认图

.Graph()

实例g

 

创建一个图

g.building_function

 

 

 

g.finalized

 

 

若此图被终止了则返回True

g.graph_def_versions

 

 

 

g.seed

 

 

此图的图层随机种子

g.version

 

 

 

g.add_to_collection()

 

 

name

 

value

 

g.as_default()

with…:

 

将此图设为默认, 其包含的张量将在此图中

g.device()

 

matmul_on_gpu

参见tf.device

g.finalize()

 

 

结束这个Graph, 使得它只读

g.get_all_collection_ key()

list

 

返回Graph中的collection列表

g.get_operation_ by_name()

 

name

根据操作名返回操作

g.get_operations()

list

 

返回图中操作列表

g.get_tensor_by_ name()

Tensor

name

根据张量名返回tensor

g.is_feedable()

bool

tensor

判断tensor能否被feed

g.is_fetchable()

bool

tensor_or_op

判断tensor或op能否被取到

g.name_scope()

 

 

参考tf.name_scope()

Session

.InteractiveSession()

实例s

创建一个新的session并设为默认

target=''

连接执行引擎, 默认in-process

graph=None

要计算的graph

config=None

 

.Session()

实例s

创建一个新的session, 包含了操作对象执行的环境

target=''

连接执行引擎, 默认in-process

graph=None

要计算的graph

config=None

 

s.graph

 

 

"投放"到session中的图

s.graph_def

 

 

图的描述

s.sess_str

 

 

 

s.run()

 

运行操作计算tensor

fetches

图中的一个元素, 或元素列表. 或一个字典, 返回也将是字典, key不变, 值变为运算后的值

feed_dict=None

用于placeholder赋初始值

options=None

 

run_metadata=None

 

s.close()

 

 

关闭这个session

s.as_default()

with…:

 

将此对象设为默认的session

优化器Optimizer(tf.train)

.Optimizer()

 

 

优化器类的基类(基本不用)

.GradientDescent Optimizer()

Op

创建一个梯度下降算法的优化器

learning_rate

要是用的学习率

use_locking=False

 

name='GradientDescent'

操作的名称

Op.compute_ gradients()

 

 

loss

待减小的值

var_list=None

默认GraphKey.TRAINABLE_VARIABLES

gate_gradients= GATE_OP

 

aggregation_method=N

 

colocate_gradients_with_ ops=False

 

grad_loss=None

 

.AdadeltaOptimizer

 

实现了Adadelta算法的优化器, 可以算是Adagrad算法的改进版

learning_rate=0.001

学习率

rho=0.95

衰减率

epsilon=1e-08

 

use_locking=False

 

name='Adadelta'

操作的名称

.AdagradOptimizer

 

实现了Adagrad算法的优化器

learning_rate

学习率

initial_accumulator_ value=0.1

 

use_locking=False

 

name='Adagrad'

操作的名称

.Momentum Optimizer()

 

 

 

.AdamOptimizer()

 

 

 

数学函数(Math)点击跳转到官方API(有墙)

.argmax()

Tensor

返回指定维度最大值的位置

input

Tensor

axis=None

默认维度0

name=None

操作名称

output_type=tf.int64

tf.int32或tf.int64

.argmin()

Tensor

同.argmax但作用相反

.matmul()

Tensor

计算矩阵的积

 

a,b

需要计算的两个矩阵

transpose_a=False

是否将a计算前进行转置

transpose_b=False

是否将b计算前进行转置

adjoint_a=False

是否将a计算前进行共轭转置

adjoint_b=False

是否将b计算前进行共轭转置

a_is_sparse=Fasle

a是否是稀疏矩阵

b_is_sparse=Fasle

b是否是稀疏矩阵

随机值   

.random_normal()

Tensor

返回一个指定形状,被随机正态分布值填充的tensor

shape

指定返回张量的形状

mean=0.0

正态分布的均值

stddev=1.0

正态分布的标准差

dtype=tf.float32

输出类型: float32, float64, int32或int64

seed=None

随机数种子

name=None

张量名

.truncated_normal()

Tensor

返回一个指定形状,被截断正态分布(truncated normal distribution)值填充的tensor(参数同上)

.random_unifrom()

Tensor

服从均值分布的随机数, 区间为[minval, maxval)

shape

指定返回张量的形状

minval=0

随机值范围的下界(默认[0, 1))

maxval=None

随机值范围的上界(int则必须指定此值)

dtype, seed, name

同上

.random_shuffle() 

Tensor 

在第一个维度随机打乱顺序(可在随机梯度下降的时候用)

value

待打乱的tensor

seed, name

同上

形状相关操作

.shape()

Tensor

返回输入Tensor的形状

input

输入的Tensor

name=None

操作的名称

out_type=tf.int32

输出数据的数据类型

.shape_n()

 

 

 

.size()

 

返回输入Tensor的元素数量(参数同tf.shape)

.rank()

 

(input, name=None)返回tensor的维度数

.reshape()

Tensor

改变一个tensor的形状

tensor

输入tensor

shape

tensor形状(某个分量可以是-1, 将将自动计算此值)

name=None

操作的名称

.squeeze()

 

 

 

.expand_dims()

 

 

 

.reduce_max()

参考np.max

Tensor

input_tensor

传入一个tensor或可转换为tensor的数据

axis=None(原reduction_indices)

选择操作的维度, 默认操作全部数据

keep_dims=False

是否保留原维度, 否则计算后维度降低

name=None

张量名

.reduce_*

Tensor

参考.reduce_max参数

参考np.*

基本神经网络组件

激活函数(输入输出维度一致)

 

 

.nn.relu()

Tensor

计算修正线性单元

features

tensor

name=None

操作的名称

.nn.relu6()

 

 

 

.nn.crelu()

 

 

 

.nn.elu()

 

 

 

.nn.softsign()

 

 

 

.nn.dropout()

Tensor

随机丢弃一部分神经元 (有助于防止过度拟合)

inputs

Tensor

rate=0.5

丢包率

noise_shape=None

 

seed=None

随机种子

training=False

 

name=None

操作名称

.nn.bias_add()

 

 

 

.sigmoid()

 

 

 

.tanh()

 

 

 

分类

 

 

 

.nn.sigmoid_cross_ entropy_with_logits()

 

 

 

.nn.softmax()

Tensor

softmax = tf.exp(logits) / tf.reduce_sum(tf.exp(logits), dim)

logits

Tensor

dim=-1

运算的维度, 默认最后一个维度

name=None

操作名称

.nn.log_softmax()

Tensor

logsoftmax = logits - log(reduce_sum(exp(logits), dim))

参数同.nn.softmax()

 

.nn.softmax_cross_ entropy_with_logits()

Tensor

计算交叉熵(禁止使用位置参数)(损失函数, 越小模型越优)

labels=None

有效概率分布

logits=None

估计概率分布

dim=-1

维度, 默认最后一个维度

name=None

操作名称

.nn.sparse_softmax_ cross_entropy_with_ logits()

 

 

 

.nn.weighted_cross_ entropy_with_logits()

 

 

 

各种卷积网络

基本卷积操作

 

 

 

.layers.conv1d()

Tensor

inputs

张量输入

filters

整数, 输出空间的维数(即, 卷积核的数量)

kernel_size

一个整数或一个整数的元组/列表, 指定1D卷积窗的长度

strides=1

一个整数或一个整数的元组/列表, 指定卷积的步幅长度

padding='valid'

'valid'或'same'不区分大小写

data_format= 'channels_last'

 

dilation_rate=1

 

activation=None

激活函数, 默认线性激活

ues_bias=True

是否使用偏置

kernel_initializer=None

卷积核初始化

bias_initializer= tf.zeros_initializer()

偏置初始化, 默认初始化为0

kernel_regularizer=None

卷积核化的正则化

bias_regularizer=None

偏置项的正则化

activity_regularizer=None

输出的正则化函数

kernel_constraint=None

 

bias_constraint=None

 

trainable=True

该层的参数是否参与训练, True则变量加入到图集合中

name=None

该层的名称

reuse=None

是否重复使用参数

.layers.conv2d()

Tensor

二维卷积

参数同.layers.conv1d, 只列出不同

kernel_size

一个整数或2个整数的元组/列表, 指定2D卷积窗口的高度和宽度. 一个整数表示高=宽

strides

一个整数或2个整数的元组/列表, 指定沿高度和宽度的步幅长度

dilation_rate

 

.nn.conv2d()

Tensor

二维卷积

input

输入

filter

[滤波器高,滤波器宽,深度(同输入),滤波器个数(输出的深度 )]

strides

滑动步长, 一般为[1, x_strides, y_strides, 1]

padding

'SAME'会有0填充, 使步长为1时保持输入输出尺寸不变, 而'VALID'则采取丢弃

use_cudnn_on_gpu=N

 

data_format=None

指明输入数据和输出数据的格式. 'NHWC': 数据存储格式为[batch, in_height, in_width, in_channels]; 'NCHW': 数据存储格式为[batch, in_channels, in_height, in_width]

name=None

操作的名称

.nn.atrous_conv2d()

Tensor

空洞卷积(没有stride参数, 因为被固定为了1)

value

4DTensor, 需要'NHWC'格式

filters

[滤波器高,滤波器宽,深度(同输入),滤波器个数(输出的深度 )]

rate

插入(rate-1)数量的'0'

padding

'VALID'或'SAME'. 'VALID'返回:[batch, height-2*(filter_width-1), width-2*(filter_height-1), out_channels]的Tensor; 'SAME'返回:[batch, height, width, out_channels]的Tensore

name=None

操作的名称

池化操作(Pooling) 

 

 

.nn.avg_pool()

Tensor

平均

value

[batch, height, width, channels]

ksize

滤波器形状, 一般二维图像为[1,高,宽,1]

strides

步长, 一般为[1, x_strides, y_strides, 1]

padding

'VALID'或'SAME'

date_format='NHWC'

'NHWC'或'NCHW'

name=None

操作名

.nn.max_pool()

 

 

 

.nn.max_pool_with_ argmax()

 

 

 

.nn.avg_pool3d()

 

 

 

.nn.max_pool3d()

 

 

 

.nn.fractional_avg_ pool()

 

 

 

.nn.fractional_max_ pool()

 

 

 

.nn.pool()

 

 

 

.device()

with…:

'/cpu:0'

指定运算设备为CPU, 即使多个CPU也不区分.

'/gpu:n'

多个GPU的名称是不同的, 第一个为'/gpu:0'

.name_scope()

with…:

name

在其下使用Variable, 变量名(V_n)前会被加上'name/…'且相同V_n会自动添加后缀加以区分, 使用get_variable, V_n不会变化, 且出现相同V_n会报错

default_name=None

如果`name`参数是`None`,则使用默认名称

values=None

 

.variable_scope()

with…as sc:

name_or_scope

Variable以及get_variable变量名(V_n)前面都会被加上'name/…'但只有Variable的V_n会自动加后缀区分, 而在get_variable重复V_n前面加上sc.reuse_variables()可实现变量复用(指向同一变量)不加则报错

default_name=None

如果`name_or_scope`参数是`None`,则使用默认名称

values=None

 

initializer=None

此范围内变量的默认初始值设定项

regularizer=None

此范围内的变量的默认regularizer

caching_device=None

此范围内的变量的默认缓存设备

partitioner=None

此范围内变量的默认分区程序

custom_getter=None

这个范围内的变量的默认自定义getter

reuse=None

 

dtype=None

在此作用域中创建的变量类型

use_resource=None

 

#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }
#s3gt_translate_tooltip_mini { display: none !important }