TensorFlow
文章平均质量分 90
蓬莱道人
半路出家的研究僧
展开
-
Tensorflow高级API介绍:Estimator
1、Estimator架构2、Estimator使用步骤3、从源码理解Estimator(1)Estimator的源码如下:(2)构建model_fn(3)什么是 tf.estimator.EstimatorSpec(4)指定config1、Estimator架构 可以看到Estimator是属于High level的API,而Mi...转载 2020-01-03 16:57:26 · 1102 阅读 · 0 评论 -
Slim读取TFrecord文件
1、TFrecord文件的格式定义 TFrecord文件介绍请看这里,使用Slim中的高级API来读取TFrecord文件和普通的读取方式还是有区别的,参考Slim中的实例flower,以及它的TFrecord的格式定义: def int64_feature(values): if not isinstance(values, (tuple, list)): v...原创 2018-09-19 16:21:33 · 4750 阅读 · 8 评论 -
tf.metric的原理
本文全文转载自:https://www.zybuluo.com/Team/note/12549881. 概述本文将深入介绍Tensorflow内置的评估指标算子,以避免出现令人头疼的问题。 tf.metrics.accuracy() tf.metrics.precision() tf.metrics.recall() tf.metrics.mean_iou...转载 2018-09-25 11:40:07 · 1771 阅读 · 1 评论 -
TensorFlow常用函数(四)
上一篇:TensorFlow常用函数(三)1、tf.logging.set_verbosity():设置显示哪些级别的日志信息 2、tf.nn.max_pool_with_argmax():带索引的最大池化,最大池化同时返回索引值3、tf.scatter_nd():根据索引(indices)将给定的张量(updates)散布到新的(初始为零)形状为shape的张量4、Unpool(...原创 2018-10-01 13:39:26 · 966 阅读 · 0 评论 -
TensorFlow实现深度可分离卷积
1、tf.nn.depthwise_conv2d(input,filter,strides,padding,rate=None,name=None,data_format=None):深度可分离卷积 参数: input: 指需要做卷积的输入图像,要求是一个4维Tensor,具有[batch, height, width, in_channels]这样的shape,具体含义是[训练时...原创 2018-09-15 13:59:56 · 8610 阅读 · 0 评论 -
TensorFlow多线程读取机制
1、TensorFlow读取机制图解 我们必须要把数据先读入后才能进行计算,假设读入用时0.1s,计算用时0.9s,那么就意味着每过1s,GPU都会有0.1s无事可做,这就大大降低了运算的效率。解决这个问题方法就是将读入数据和计算分别放在两个线程中,将数据读入内存的一个队列,如下图所示: 读取线程源源不断地将文件系统中的图片读入到一个内存的队列中,而负责计算的是另一个线程,...原创 2018-09-21 11:08:07 · 3332 阅读 · 0 评论 -
TensorFlow常用函数(三)
上一篇:TensorFlow常用函数(二)1、tf.app.flags:命令行解析2、tf.device():指定运行设备 3、tf.get_connection():从一个结合中取出全部变量,返回一个列表4、tf.GraphKeys : Graph collection中使用的标准命名定义在该类下5、tf.identity(input,name=None):返回和input有...原创 2018-09-21 22:51:51 · 3266 阅读 · 1 评论 -
Slim下的函数介绍(一)
1、slim.conv2d:二维卷积2、slim.nets.resnet_utils.conv2d_same():使用“SAME”填充的二维卷积3、 tf.variable_scope()的original_name_scope 和 name的区别:4、slim.utils.collect_named_outputs(collections, alias, outputs):为outp...原创 2018-09-22 15:07:29 · 22862 阅读 · 2 评论 -
tf.contrib.rnn下的函数介绍
1、tf.contrib.rnn.LSTMCell():LSTM的一个单元细胞定义2、tf.contrib.rnn.GRUCell():GRU的一个单元细胞定义3、tf.contrib.rnn.MultiRNNCell():将多个单元细胞串联为一个RNN网络4、tf.contrib.nn.DropoutWrapper():RNN中的Dropout层,与CNN中Dropout类似1、...原创 2019-01-08 23:11:03 · 7284 阅读 · 1 评论 -
Tensorflow计算一个模型的浮点运算数
1、统计模型的浮点运算数和参数量FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。 FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。 MACCs:是multipl...原创 2019-05-31 20:42:00 · 5801 阅读 · 0 评论 -
Slim.data模块
Slim.data模块下包含很多关于数据集处理的模块,包括:dataset、data_decoder、prefetch_queue、dataset_data_provider、tfexample_decoder、data_provider、parallel_reader,下面我们一次介绍。1、Slim.dataset2、Slim.data_decoder3、Slim.tfexa...原创 2018-09-18 23:37:04 · 2831 阅读 · 0 评论 -
Slim模型部署多GPU
1、多GPU原理 单GPU时,思路很简单,前向、后向都在一个GPU上进行,模型参数更新时只涉及一个GPU。多GPU时,有模型并行和数据并行两种情况。模型并行指模型的不同部分在不同GPU上运行。数据并行指不同GPU上训练数据不同,但模型是同一个(相当于是同一个模型的副本)。TensorFlow支持的是数据并行。数据并行的原理:CPU负责梯度平均和参数更新,在GPU上训练模型的副本。多GPU...原创 2018-09-18 17:37:28 · 5174 阅读 · 0 评论 -
tf.contrib.slim简介
1、简介 对于tensorflow.contrib这个库,tensorflow官方对它的描述是:此目录中的任何代码未经官方支持,可能会随时更改或删除。每个目录下都有指定的所有者。它旨在包含额外功能和贡献,最终会合并到核心TensorFlow中,但其接口可能仍然会发生变化,或者需要进行一些测试,看是否可以获得更广泛的接受。所以slim依然不属于原生tensorflow。那么什么是slim?...原创 2018-09-15 22:37:38 · 17642 阅读 · 11 评论 -
TensorFlow的常量、变量、常用函数(一)
TensorFlow常用函数(一)(1)tf.variable_scope('namespace')和tf.name_scope('namespace'):返回一个用于定义创建variable(层)的op的上下文管理器,相当于给下面的变量定义了一个命名空间,在这个with下面的所有节点会自动命名为:namespace/xxxx这样的格式(2)tf.nn.conv2d(input,filte...原创 2018-04-11 21:42:50 · 2213 阅读 · 0 评论 -
TensorFlow训练CIFAR-100
CIFAR-100数据集有100个类,每个类600张图片,总共有6000张图片。其中50000张是训练集,10000张作为测试集。采用CNN训练该数据集的代码如下:#coding=utf-8import pickle # 用于序列化和反序列化import numpy as np import os import matplotlib.pyplot as pltimport...原创 2018-06-11 22:30:11 · 8796 阅读 · 2 评论 -
TensorFlow实现自编码器
1、什么是自编码器 自编码器(Autoencoder,AE),是一种利用反向传播算法使得输出值等于输入值的神经网络,自动编码器内部有一个隐含层h,可以产生编码来表示输入。它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。自编码器由两部分组成: 编码器:这部分能将输入压缩成潜在空间表征,可以用编码函数h=f(x)表示。 解码器:这部分能重构来自潜在空间表征的输入,可以用解码...原创 2018-06-12 16:42:22 · 822 阅读 · 0 评论 -
Tensorflow训练Mnist数据集
1、使用softmax回归对mnist数据集进行分类,准确率大概为0.92左右 2、使用多层感知机(3层)对mnist数据集分类,准确率大概为0,98 3、使用CNN对mnist进行分类,准确率为0.99 #coding=utf-8import pickleimport numpy as npimport matplotlib.pyplot as pltimport tensor...原创 2018-06-06 20:40:32 · 1193 阅读 · 0 评论 -
TensorFlow可视化
在TensorFlow中,最常用的可视化方法有三种途径,分别为TensorFlow与OpenCv的混合编程、利用Matpltlib进行可视化、利用TensorFlow自带的可视化工具TensorBoard进行可视化。这三种方法中,TensorFlow中最重要的可视化方法是通过tensorBoard、tf.summary和tf.summary.FileWriter这三个模块相互合作来完成的。...原创 2018-06-22 19:19:59 · 3007 阅读 · 0 评论 -
TensorFlow载入数据的三种方式
Tensorflow数据读取有三种方式: 1)预加载数据; 2)产生数据,再把数据喂给后端; 3)从文件中直接读取1、预加载数据(仅适用于数据量比较小的情况):import tensorflow as tf # 设计Graph x1 = tf.constant([2, 3, 4]) x2 = tf.constant([4, 0, 1]) y = tf.add(x1, x2)...原创 2018-06-24 14:13:51 · 1539 阅读 · 0 评论 -
TensorFlow中的TFrecord
TFrecord数据文件是一种将图像数据和标签统一存储的二进制文件,能更好的利用内存,在tensorflow中快速的复制,移动,读取,存储等。tfrecord文件包含了tf.train.Example的协议缓冲区(protocol buffer,协议缓冲区包含了特征 Features)。你可以写一段代码获取你的数据, 将数据填入到tf.train.Example的协议缓冲区(protoco...原创 2018-07-14 12:47:18 · 865 阅读 · 0 评论 -
TensorFlow常用函数总结(二)
上一篇:TensorFlow常用函数(一)1、tf.meshgrid()2、tf.stack()、tf.vstack()、tf.hstack()3、tf.transpose() : 对tensor进行转置4、tf.maximum()、tf.minimum()5、tf.image.non_max_suppression():非极大抑制算法6、tf.gather():可以把向量...原创 2018-08-26 22:50:24 · 7325 阅读 · 1 评论 -
深度学习常用优化器介绍
深度学习的优化算法从SGD-->SGDM-->NAG-->AdaGrad-->AdaDelta-->Adam-->Nadam这样的发展历程,理论知识参考这里,下面我们依次介绍TensorFlow中这些优化器的实现类,官方文档。1、tf.train.Optimizer 优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一...原创 2018-09-05 11:23:15 · 1211 阅读 · 0 评论 -
TensorFlow :HelloWorld
1、TensorFlow简介 >使用计算图 (graph) 来表示计算任务. >在被称之为会话 (Session) 的上下文 (context) 中执行图. >使用 tensor 表示数据. >通过变量 (Variable) 维护状态. >使用feed和fetch可以为任意的操作(arbitrary operation) 赋值或者从其中获...原创 2018-04-10 20:14:43 · 1386 阅读 · 0 评论