方法
返回值类型
参数
说明
张量
.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()
.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 }
手机扫一扫
移动阅读更方便
你可能感兴趣的文章