tf.Graph
操作 | 描述 |
---|---|
class tf.Graph | tensorflow中的计算以图数据流的方式表示 一个图包含一系列表示计算单元的操作对象 以及在图中流动的数据单元以tensor对象表现 |
tf.Graph.__init__() | 建立一个空图 |
tf.Graph.as_default() | 一个将某图设置为默认图,并返回一个上下文管理器 如果不显式添加一个默认图,系统会自动设置一个全局的默认图。 所设置的默认图,在模块范围内所定义的节点都将默认加入默认图中 |
tf.Graph.as_graph_def (from_version=None, add_shapes=False) |
返回一个图的序列化的GraphDef表示 序列化的GraphDef可以导入至另一个图中(使用 import_graph_def()) 或者使用C++ Session API |
tf.Graph.finalize() | 完成图的构建,即将其设置为只读模式 |
tf.Graph.finalized | 返回True,如果图被完成 |
tf.Graph.control_dependencies(control_inputs) | 定义一个控制依赖,并返回一个上下文管理器 with g.control_dependencies([a, b, c]): # `d` 和 `e` 将在 `a`, `b`, 和`c`执行完之后运行. d = … e = … |
tf.Graph.device(device_name_or_function) | 定义运行图所使用的设备,并返回一个上下文管理器with g.device('/gpu:0'): ... with g.device('/cpu:0'): ...
|
tf.Graph.name_scope(name) | 为节点创建层次化的名称,并返回一个上下文管理器 |
tf.Graph.add_to_collection(name, value) | 将value以name的名称存储在收集器(collection)中 |
tf.Graph.get_collection(name, scope=None) | 根据name返回一个收集器中所收集的值的列表 |
tf.Graph.as_graph_element (obj, allow_tensor=True, allow_operation=True) |
返回一个图中与obj相关联的对象,为一个操作节点或者tensor数据 |
tf.Graph.get_operation_by_name(name) | 根据名称返回操作节点 |
tf.Graph.get_tensor_by_name(name) | 根据名称返回tensor数据 |
tf.Graph.get_operations() | 返回图中的操作节点列表 |
tf.Graph.gradient_override_map(op_type_map) | 用于覆盖梯度函数的上下文管理器 |
神经网络(Neural Network)
- 激活函数(Activation Functions)
操作 | 描述 |
---|---|
tf.nn.relu(features, name=None) | 整流函数:max(features, 0) |
tf.nn.relu6(features, name=None) | 以6为阈值的整流函数:min(max(features, 0), 6) |
tf.nn.elu(features, name=None) | elu函数,exp(features) - 1 if < 0,否则features Exponential Linear Units (ELUs) |
tf.nn.softplus(features, name=None) | 计算softplus:log(exp(features) + 1) |
tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) |
计算dropout,keep_prob为keep概率 noise_shape为噪声的shape |
tf.nn.bias_add(value, bias, data_format=None, name=None) | 对value加一偏置量 此函数为tf.add的特殊情况,bias仅为一维, 函数通过广播机制进行与value求和, 数据格式可以与value不同,返回为与value相同格式 |
tf.sigmoid(x, name=None) | y = 1 / (1 + exp(-x)) |
tf.tanh(x, name=None) | 双曲线切线激活函数 |
- 卷积函数(Convolution)
操作 | 描述 |
---|---|
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None) |
在给定的4D input与 filter下计算2D卷积 输入shape为 [batch, height, width, in_channels] |
tf.nn.conv3d(input, filter, strides, padding, name=None) | 在给定的5D input与 filter下计算3D卷积 输入shape为[batch, in_depth, in_height, in_width, in_channels] |
- 池化函数(Pooling)
操作 | 描述 |
---|---|
tf.nn.avg_pool(value, ksize, strides, padding, data_format=’NHWC’, name=None) |
平均方式池化 |
tf.nn.max_pool(value, ksize, strides, padding, data_format=’NHWC’, name=None) |
最大值方法池化 |
tf.nn.max_pool_with_argmax(input, ksize, strides, padding, Targmax=None, name=None) |
返回一个二维元组(output,argmax),最大值pooling,返回最大值及其相应的索引 |
tf.nn.avg_pool3d(input, ksize, strides, padding, name=None) |
3D平均值pooling |
tf.nn.max_pool3d(input, ksize, strides, padding, name=None) |
3D最大值pooling |
- 数据标准化(Normalization)
操作 | 描述 |
---|---|
tf.nn.l2_normalize(x, dim, epsilon=1e-12, name=None) | 对维度dim进行L2范式标准化 output = x / sqrt(max(sum(x**2), epsilon)) |
tf.nn.sufficient_statistics(x, axes, shift=None, keep_dims=False, name=None) |
计算与均值和方差有关的完全统计量 返回4维元组,*元素个数,*元素总和,*元素的平方和,*shift结果 参见算法介绍 |
tf.nn.normalize_moments(counts, mean_ss, variance_ss, shift, name=None) | 基于完全统计量计算均值和方差 |
tf.nn.moments(x, axes, shift=None, name=None, keep_dims=False) |
直接计算均值与方差 |
- 损失函数(Losses)
操作 | 描述 |
---|---|
tf.nn.l2_loss(t, name=None) | output = sum(t ** 2) / 2 |
- 分类函数(Classification)
操作 | 描述 |
---|---|
tf.nn.sigmoid_cross_entropy_with_logits (logits, targets, name=None)* |
计算输入logits, targets的交叉熵 |
tf.nn.softmax(logits, name=None) | 计算softmax softmax[i, j] = exp(logits[i, j]) / sum_j(exp(logits[i, j])) |
tf.nn.log_softmax(logits, name=None) | logsoftmax[i, j] = logits[i, j] - log(sum(exp(logits[i]))) |
tf.nn.softmax_cross_entropy_with_logits (logits, labels, name=None) |
计算logits和labels的softmax交叉熵 logits, labels必须为相同的shape与数据类型 |
tf.nn.sparse_softmax_cross_entropy_with_logits (logits, labels, name=None) |
计算logits和labels的softmax交叉熵 |
tf.nn.weighted_cross_entropy_with_logits (logits, targets, pos_weight, name=None) |
与sigmoid_cross_entropy_with_logits()相似, 但给正向样本损失加了权重pos_weight |
- 符号嵌入(Embeddings)
操作 | 描述 |
---|---|
tf.nn.embedding_lookup (params, ids, partition_strategy=’mod’, name=None, validate_indices=True) |
根据索引ids查询embedding列表params中的tensor值 如果len(params) > 1,id将会安照partition_strategy策略进行分割 1、如果partition_strategy为”mod”, id所分配到的位置为p = id % len(params) 比如有13个ids,分为5个位置,那么分配方案为: [[0, 5, 10], [1, 6, 11], [2, 7, 12], [3, 8], [4, 9]] 2、如果partition_strategy为”div”,那么分配方案为: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]] |
tf.nn.embedding_lookup_sparse(params, sp_ids, sp_weights, partition_strategy=’mod’, name=None, combiner=’mean’) |
对给定的ids和权重查询embedding 1、sp_ids为一个N x M的稀疏tensor, N为batch大小,M为任意,数据类型int64 2、sp_weights的shape与sp_ids的稀疏tensor权重, 浮点类型,若为None,则权重为全’1’ |
- 循环神经网络(Recurrent Neural Networks)
操作 | 描述 |
---|---|
tf.nn.rnn(cell, inputs, initial_state=None, dtype=None, sequence_length=None, scope=None) |
基于RNNCell类的实例cell建立循环神经网络 |
tf.nn.dynamic_rnn(cell, inputs, sequence_length=None, initial_state=None, dtype=None, parallel_iterations=None, swap_memory=False, time_major=False, scope=None) |
基于RNNCell类的实例cell建立动态循环神经网络 与一般rnn不同的是,该函数会根据输入动态展开 返回(outputs,state) |
tf.nn.state_saving_rnn(cell, inputs, state_saver, state_name, sequence_length=None, scope=None) |
可储存调试状态的RNN网络 |
tf.nn.bidirectional_rnn(cell_fw, cell_bw, inputs, initial_state_fw=None, initial_state_bw=None, dtype=None, sequence_length=None, scope=None) |
双向RNN, 返回一个3元组tuple (outputs, output_state_fw, output_state_bw) |
— tf.nn.rnn简要介绍—
cell: 一个RNNCell实例
inputs: 一个shape为[batch_size, input_size]的tensor
initial_state: 为RNN的state设定初值,可选
sequence_length:制定输入的每一个序列的长度,size为[batch_size],值范围为[0, T)的int型数据
其中T为输入数据序列的长度
@
@针对输入batch中序列长度不同,所设置的动态计算机制
@对于在时间t,和batch的b行,有
(output, state)(b, t) = ? (zeros(cell.output_size), states(b, sequence_length(b) - 1)) : cell(input(b, t), state(b, t - 1))
- 求值网络(Evaluation)
操作 | 描述 |
---|---|
tf.nn.top_k(input, k=1, sorted=True, name=None) | 返回前k大的值及其对应的索引 |
tf.nn.in_top_k(predictions, targets, k, name=None) | 返回判断是否targets索引的predictions相应的值 是否在在predictions前k个位置中, 返回数据类型为bool类型,len与predictions同 |
对于有巨大量的多分类与多标签模型,如果使用全连接softmax将会占用大量的时间与空间资源,所以采用候选采样方法仅使用一小部分类别与标签作为监督以加速训练。
操作 | 描述 |
---|---|
Sampled Loss Functions | |
tf.nn.nce_loss(weights, biases, inputs, labels, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=False, partition_strategy=’mod’, name=’nce_loss’) |
返回noise-contrastive的训练损失结果 |
tf.nn.sampled_softmax_loss(weights, biases, inputs, labels, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, partition_strategy=’mod’, name=’sampled_softmax_loss’) |
返回sampled softmax的训练损失 参考- Jean et al., 2014第3部分 |
Candidate Samplers | |
tf.nn.uniform_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, seed=None, name=None) |
通过均匀分布的采样集合 返回三元tuple 1、sampled_candidates 候选集合。 2、期望的true_classes个数,为浮点值 3、期望的sampled_candidates个数,为浮点值 |
tf.nn.log_uniform_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, seed=None, name=None) |
通过log均匀分布的采样集合,返回三元tuple |
tf.nn.learned_unigram_candidate_sampler (true_classes, num_true, num_sampled, unique, range_max, seed=None, name=None) |
根据在训练过程中学习到的分布状况进行采样 返回三元tuple |
tf.nn.fixed_unigram_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, vocab_file=”, distortion=1.0, num_reserved_ids=0, num_shards=1, shard=0, unigrams=(), seed=None, name=None) |
基于所提供的基本分布进行采样 |
保存与恢复变量
操作 | 描述 |
---|---|
类tf.train.Saver(Saving and Restoring Variables) | |
tf.train.Saver.__init__(var_list=None, reshape=False, sharded=False, max_to_keep=5, keep_checkpoint_every_n_hours=10000.0, name=None, restore_sequentially=False, saver_def=None, builder=None) |
创建一个存储器Saver var_list定义需要存储和恢复的变量 |
tf.train.Saver.save(sess, save_path, global_step=None, latest_filename=None, meta_graph_suffix=’meta’, write_meta_graph=True) |
保存变量 |
tf.train.Saver.restore(sess, save_path) | 恢复变量 |
tf.train.Saver.last_checkpoints | 列出最近未删除的checkpoint 文件名 |
tf.train.Saver.set_last_checkpoints(last_checkpoints) | 设置checkpoint文件名列表 |
tf.train.Saver.set_last_checkpoints_with_time(last_checkpoints_with_time) | 设置checkpoint文件名列表和时间戳 |
『TensorFlow』函数查询列表_神经网络相关的更多相关文章
-
『TensorFlow』函数查询列表_张量属性调整
数据类型转换Casting 操作 描述 tf.string_to_number(string_tensor, out_type=None, name=None) 字符串转为数字 tf.to_doubl ...
-
『TensorFlow』函数查询列表_数值计算
基本算术运算 操作 描述 tf.add(x, y, name=None) 求和 tf.sub(x, y, name=None) 减法 tf.mul(x, y, name=None) 乘法 tf.div ...
-
『TensorFlow』第七弹_保存&;载入会话_霸王回马
首更: 由于TensorFlow的奇怪形式,所以载入保存的是sess,把会话中当前激活的变量保存下来,所以必须保证(其他网络也要求这个)保存网络和载入网络的结构一致,且变量名称必须一致,这是caffe ...
-
『TensorFlow』第十一弹_队列&;多线程&;TFRecod文件_我辈当高歌
TF数据读取队列机制详解 一.TFR文件多线程队列读写操作 TFRecod文件写入操作 import tensorflow as tf def _int64_feature(value): # val ...
-
『TensorFlow』第三弹_可视化框架介绍_悄悄问圣僧
添加记录节点 -> 汇总记录节点 -> run汇总节点 -> [书写器生成]书写入文件 [-> 刷新缓冲区] 可视化关键点: 注意, 1.with tf.name_scope( ...
-
『TensorFlow』第十弹_队列&;多线程_道路多坎坷
一.基本队列: 队列有两个基本操作,对应在tf中就是enqueue&dequeue tf.FIFOQueue(2,'int32') import tensorflow as tf '''FIF ...
-
『TensorFlow』专题汇总
TensorFlow:官方文档 TensorFlow:项目地址 本篇列出文章对于全零新手不太合适,可以尝试TensorFlow入门系列博客,搭配其他资料进行学习. Keras使用tf.Session训 ...
-
『TensorFlow』模型保存和载入方法汇总
『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...
-
『PyTorch x TensorFlow』第八弹_基本nn.Module层函数
『TensorFlow』网络操作API_上 『TensorFlow』网络操作API_中 『TensorFlow』网络操作API_下 之前也说过,tf 和 t 的层本质区别就是 tf 的是层函数,调用即 ...
随机推荐
-
Atitit 多元化战略 适合我们发展 的核心业务attilax总结
Atitit 多元化战略 适合我们发展 的核心业务attilax总结 1.1. 历史的大趋势,全球范围内人员的大流动1 1.2. 衣食住行1 1.3. 农村包围城市战略1 1.4. 挪开三座大山(住房 ...
-
UVa 11995:I Can Guess the Data Structure!(数据结构练习)
I Can Guess the Data Structure! There is a bag-like data structure, supporting two operations: 1 x T ...
-
HDU 4089 Activation 概率DP 难度:3
http://acm.hdu.edu.cn/showproblem.php?pid=4089 这道题中一共有两个循环: 1.事件1 如果一直落在Activation failed事件上,那么就会重新继 ...
-
如何创建sequence
我用的是在oracle中的方法,在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequence 你首先要有CREATE ...
-
pageContext.request.contextPath
jsp:<c:set var="ctxStatic" value="${pageContext.request.contextPath}"/>嵌套d ...
-
JSP Servlet SQL 三者之间数据传递
前言: 最近一直在做WEB开发,现总结一下这一段时间的体会和感触. 切记,web开发重点在于前台数据交互,页面美化而不要太沉溺于底层数据. 浏览器时代来到,向我们召唤出更炫.更简洁.更方便.更大气的网 ...
-
JVMGC机制
GC 是JVM的垃圾回收器.与C/C++不同,java程序员无需考虑太多内存分配的位置,更不用考虑内存释放的机制,java对象内存的申请和释放都有JVM托管.JVM的内存释放机制就是GC. GC的过程 ...
-
FragmentXlistview
package com.example.lenovo.tablayout; /** * Created by lenovo on 2018/7/18. */ import android.os.Asy ...
-
uva 1633 Dyslexic Gollum
题意: 给出n和k,求出长度为n的不包含长度大于等于k的回文串的01字符串的个数. 思路: 如果一个字符串包含长度为k的回文串,那么它肯定包含长度为k-1的回文串,所以考虑第i位的时候,只要前缀中不包 ...
-
linux python虚拟环境 相关的
为什么要用虚拟环境 在使用python开发过程中,各种业务需求多了,导致工程任务多了,难免会碰到不同的工程依赖不同版本库的问题,;或者是在开发的时候不想让物理环境里充斥各种各样的库,引发依赖环境灾难, ...