针对于常用的TensorFlow方法进行一个简要的汇总介绍。
1. 变量转换
- 构造
- 形状与重塑
- 切片与插入
tf.slice(input_, begin, size, name=None)tf.split(split_dim, num_split, value, name='split')tf.tile(input, multiples, name=None)tf.pad(input, paddings, name=None)tf.concat(concat_dim, values, name='concat')tf.pack(values, name='pack')tf.unpack(value, num=None, name='unpack')tf.reverse_sequence(input, seq_lengths, seq_dim, name=None)tf.reverse(tensor, dims, name=None)tf.transpose(a, perm=None, name='transpose')tf.gather(params, indices, name=None)tf.dynamic_partition(data, partitions, num_partitions, name=None)tf.dynamic_stitch(indices, data, name=None)
2.构建图
3. 运行图
- Session 管理
- 错误分类
class tf.OpErrorclass tf.errors.CancelledErrorclass tf.errors.UnknownErrorclass tf.errors.InvalidArgumentErrorclass tf.errors.DeadlineExceededErrorclass tf.errors.NotFoundErrorclass tf.errors.AlreadyExistsErrorclass tf.errors.PermissionDeniedErrorclass tf.errors.UnauthenticatedErrorclass tf.errors.ResourceExhaustedErrorclass tf.errors.FailedPreconditionErrorclass tf.errors.AbortedErrorclass tf.errors.OutOfRangeErrorclass tf.errors.UnimplementedErrorclass tf.errors.InternalErrorclass tf.errors.UnavailableErrorclass tf.errors.DataLossError
4. 变量,序列以及随机数
- 常量张量
- 序列
- 随机张量
- 例子:
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)tf.random_uniform(shape, minval=0.0, maxval=1.0, dtype=tf.float32, seed=None, name=None)tf.random_shuffle(value, seed=None, name=None)tf.set_random_seed(seed)
5.控制流
- 控制流
- 逻辑运算符
- 比较操作
- 调试操作
tf.is_finite(x, name=None)tf.is_inf(x, name=None)tf.is_nan(x, name=None)tf.verify_tensor_all_finite(t, msg, name=None)tf.check_numerics(tensor, message, name=None)tf.add_check_numerics_ops()tf.Assert(condition, data, summarize=None, name=None)tf.Print(input_, data, message=None, first_n=None, summarize=None, name=None)
6.图像
- 编码解码
tf.image.decode_jpeg(contents, channels=None, ratio=None, fancy_upscaling=None, try_recover_truncated=None, acceptable_fraction=None, name=None)tf.image.encode_jpeg(image, format=None, quality=None, progressive=None, optimize_size=None, chroma_downsampling=None, density_unit=None, x_density=None, y_density=None, xmp_metadata=None, name=None)tf.image.decode_png(contents, channels=None, name=None)tf.image.encode_png(image, compression=None, name=None)
- 调整
- 剪裁
tf.image.resize_image_with_crop_or_pad(image, target_height, target_width)tf.image.pad_to_bounding_box(image, offset_height, offset_width, target_height, target_width)tf.image.crop_to_bounding_box(image, offset_height, offset_width, target_height, target_width)tf.image.random_crop(image, size, seed=None, name=None)tf.image.extract_glimpse(input, size, offsets, centered=None, normalized=None, uniform_noise=None, name=None)
- 翻转和置换
- 图像调整
tf.image.adjust_brightness(image, delta, min_value=None, max_value=None)tf.image.random_brightness(image, max_delta, seed=None)tf.image.adjust_contrast(images, contrast_factor, min_value=None, max_value=None)tf.image.random_contrast(image, lower, upper, seed=None)tf.image.per_image_whitening(image)
7.输入与读取
- 占位符
- 读取
- 转换
tf.decode_csv(records, record_defaults, field_delim=None, name=None)tf.decode_raw(bytes, out_type, little_endian=None, name=None)- 示例序列缓冲区
tf.parse_example(serialized, names=None, sparse_keys=None, sparse_types=None, dense_keys=None, dense_types=None, dense_defaults=None, dense_shapes=None, name='ParseExample')tf.parse_single_example(serialized, names=None, sparse_keys=None, sparse_types=None, dense_keys=None, dense_types=None, dense_defaults=None, dense_shapes=None, name='ParseSingleExample')
- 队列
- 文件系统处理
- 输入管道
- 输入管道的开始
tf.train.match_filenames_once(pattern, name=None)tf.train.limit_epochs(tensor, num_epochs=None, name=None)tf.train.range_input_producer(limit, num_epochs=None, shuffle=True, seed=None, capacity=32, name=None)tf.train.slice_input_producer(tensor_list, num_epochs=None, shuffle=True, seed=None, capacity=32, name=None)tf.train.string_input_producer(string_tensor, num_epochs=None, shuffle=True, seed=None, capacity=32, name=None)- Batching at the end of an input pipeline
tf.train.batch(tensor_list, batch_size, num_threads=1, capacity=32, enqueue_many=False, shapes=None, name=None)tf.train.batch_join(tensor_list_list, batch_size, capacity=32, enqueue_many=False, shapes=None, name=None)tf.train.shuffle_batch(tensor_list, batch_size, capacity, min_after_dequeue, num_threads=1, seed=None, enqueue_many=False, shapes=None, name=None)tf.train.shuffle_batch_join(tensor_list_list, batch_size, capacity, min_after_dequeue, seed=None, enqueue_many=False, shapes=None, name=None)
8.数学相关
- 算术运算符
- 基本属性函数
tf.add_n(inputs, name=None)tf.abs(x, name=None)tf.neg(x, name=None)tf.sign(x, name=None)tf.inv(x, name=None)tf.square(x, name=None)tf.round(x, name=None)tf.sqrt(x, name=None)tf.rsqrt(x, name=None)tf.pow(x, y, name=None)tf.exp(x, name=None)tf.log(x, name=None)tf.ceil(x, name=None)tf.floor(x, name=None)tf.maximum(x, y, name=None)tf.minimum(x, y, name=None)tf.cos(x, name=None)tf.sin(x, name=None)
- 矩阵数学函数
tf.diag(diagonal, name=None)tf.transpose(a, perm=None, name='transpose')tf.matmul(a, b, transpose_a=False, transpose_b=False, a_is_sparse=False, b_is_sparse=False, name=None)tf.batch_matmul(x, y, adj_x=None, adj_y=None, name=None)tf.matrix_determinant(input, name=None)tf.batch_matrix_determinant(input, name=None)tf.matrix_inverse(input, name=None)tf.batch_matrix_inverse(input, name=None)tf.cholesky(input, name=None)tf.batch_cholesky(input, name=None)
- 复数函数
- 减值
tf.reduce_sum(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.reduce_prod(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.reduce_min(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.reduce_max(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.reduce_all(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.reduce_any(input_tensor, reduction_indices=None, keep_dims=False, name=None)tf.accumulate_n(inputs, shape=None, tensor_dtype=None, name=None)
- 分割
tf.segment_sum(data, segment_ids, name=None)tf.segment_prod(data, segment_ids, name=None)tf.segment_min(data, segment_ids, name=None)tf.segment_max(data, segment_ids, name=None)tf.segment_mean(data, segment_ids, name=None)tf.unsorted_segment_sum(data, segment_ids, num_segments, name=None)tf.sparse_segment_sum(data, indices, segment_ids, name=None)tf.sparse_segment_mean(data, indices, segment_ids, name=None)
- 序列中的比较和索引
9.神经网络相关
- 激活函数
- 卷积
- 池化
- 归一化
- 损失函数
- 分类
- 嵌入张量查找值
- 评估
- 候选采样
- 采样损失函数
tf.nn.nce_loss(weights, biases, inputs, labels, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=False, name='nce_loss')tf.nn.sampled_softmax_loss(weights, biases, inputs, labels, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, name='sampled_softmax_loss')- 候选取样器
tf.nn.uniform_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, seed=None, name=None)tf.nn.log_uniform_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, seed=None, name=None)tf.nn.learned_unigram_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, seed=None, name=None)tf.nn.fixed_unigram_candidate_sampler(true_classes, num_true, num_sampled, unique, range_max, vocab_file='', distortion=0.0, num_reserved_ids=0, num_shards=1, shard=0, unigrams=[], seed=None, name=None)- 其它候选抽样工具
tf.nn.compute_accidental_hits(true_classes, sampled_candidates, num_true, seed=None, name=None)
10.稀疏张量
11.变量
- Variables
- Variable helper functions
- Saving and Restoring Variables
- Sharing Variables
tf.get_variable(name, shape=None, dtype=tf.float32, initializer=None, trainable=True, collections=None)tf.get_variable_scope()tf.variable_scope(name_or_scope, reuse=None, initializer=None)tf.constant_initializer(value=0.0)tf.random_normal_initializer(mean=0.0, stddev=1.0, seed=None)tf.truncated_normal_initializer(mean=0.0, stddev=1.0, seed=None)tf.random_uniform_initializer(minval=0.0, maxval=1.0, seed=None)tf.uniform_unit_scaling_initializer(factor=1.0, seed=None)tf.zeros_initializer(shape, dtype=tf.float32)
- Sparse Variable Updates
12.训练
- Optimizers
- Gradient Computation
- Gradient Clipping
- Decaying the learning rate
- Moving Averages
- Coordinator and QueueRunner
- Summary Operations
tf.scalar_summary(tags, values, collections=None, name=None)tf.image_summary(tag, tensor, max_images=None, collections=None, name=None)tf.histogram_summary(tag, values, collections=None, name=None)tf.nn.zero_fraction(value, name=None)tf.merge_summary(inputs, collections=None, name=None)tf.merge_all_summaries(key='summaries')
- Adding Summaries to Event Files
- Training utilities

