TransorFlow笔记
文章平均质量分 69
马大哈先生
新人一枚,请大家多多关照!
展开
-
TensorFlow笔记(十一)——tensorflow 中batch normalize 函数的使用(定义网络时用)
目录一、辅助函数1.1 slim.arg_scope()1.2 slim.utils.collect_named_outputs()1.3 slim.utils.convert_collection_to_dict()二、层函数2.1 batch_norm处理2.3 tf.contrib.slim.conv2d()2.4 slim.max_pool2d2....转载 2019-06-29 15:01:31 · 1725 阅读 · 0 评论 -
TensorFlow笔记(九)——tensorflow中 tf.reduce_mean函数
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作loss计算,降维或者计算tensor(图像)的平均值。reduce_mean(input_tensor, axis=None, keep_dims=False, n...转载 2019-06-28 20:11:29 · 692 阅读 · 0 评论 -
TensorFlow笔记(八)——tf.nn.sigmoid_cross_entropy_with_logits()
函数原型【1】:tf.nn.sigmoid_cross_entropy_with_logits( _sentinel=None, labels=None, logits=None, name=None)参数:_sentinel:本质上是不用的参数,不用填 labels:和logits具有相同的type(float)和shape的张量(ten...转载 2019-06-28 20:07:30 · 3866 阅读 · 1 评论 -
TensorFlow基础(十六)——复现VGG卷积神经网络(不全)
目录一、app.py二、utils.py文件:预处理图片并显示处理结果三、vgg16.py:导入模型参数,复现网络结构一、app.py二、utils.py文件:预处理图片并显示处理结果三、vgg16.py:导入模型参数,复现网络结构运行程序app.py,输入待测图片路径名字:...原创 2019-07-08 20:51:52 · 332 阅读 · 0 评论 -
TensorFlow基础(十五)——深度学习中常用函数
当需要传入真实图片时,placeholder的参数配置:原创 2019-07-08 18:24:29 · 252 阅读 · 0 评论 -
TensorFlow基础(十四)——lenet5模型代码讲解
当输入图片为28*28*1的图片时,为适应图片大小修改网络如下: 正向传播代码实现:反向传播代码实现:在测试时,也要对x进行调整...原创 2019-07-08 16:16:25 · 655 阅读 · 1 评论 -
TensorFlow基础(十三)——卷积神经网络
输入28*28的黑白图像,做10分类,则 当图像是彩色图时,需要将上述参数扩大3倍,数量太多,所以需要先进行特征提取,再进行分类: CNN模型的主要模块主要包括以下几个部分: 在全连接之前做特征提取,用全连接做分类。 ...原创 2019-07-08 15:27:14 · 172 阅读 · 0 评论 -
多标签分类问题
原理介绍:https://blog.csdn.net/bemachine/article/details/10471383多类分类与多标签分类:https://blog.csdn.net/littlely_ll/article/details/81053928深度学习---多标签分类问题:https://blog.csdn.net/qq_38906523/article/details...原创 2019-07-02 22:00:57 · 2330 阅读 · 0 评论 -
TensorFlow基础(八)——正则化
针对过拟合情况,可采用正则化:举例:代码实现:生成的散点图:(关掉图片程序继续运行)执行无正则化训练:生成了无正则化的红蓝点区分线有正则化的区分线:...原创 2019-07-04 18:53:31 · 154 阅读 · 0 评论 -
TensorFlow基础(九)——MNIST数据集实战
一、MNIST数据集训练及测试流程分析:1.1 数据准备阶段1.1.1 MNIST数据集介绍及在tensorflow中读入本数据集的函数:1.1.2 深度学习中常用函数:1.2 训练及测试阶段1.2.1 保存和加载ckpt模型的思路:1.2.2 测试训练模型准确率思路二、代码实现2.1 数据集准备在训练的主函数里加入这两句,加载mnist数据集...原创 2019-07-04 20:40:30 · 259 阅读 · 0 评论 -
TensorFlow笔记(十五)——tf.slice()切片函数
def slice(input_, begin, size, name=None):其中“input_”是你输入的tensor,就是被切的那个。 “begin”是每一个维度的起始位置,这个下面详细说。 “size”相当于问每个维度拿几个元素出来【1】。下面看例1:t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4...转载 2019-07-16 19:44:45 · 1241 阅读 · 0 评论 -
TensorFlow笔记(十四)——降维函数tf.squeeze()、增维函数expand_dim()
一、降维函数tf.squeeze()squeeze( input, axis=None, name=None, squeeze_dims=None)该函数返回一个张量,这个张量是将原始input中所有维度为1的那些维都删掉的结果【1】axis可以用来指定要删掉的为1的维度,此处要注意指定的维度必须确保其是1,否则会报错>>>y ...转载 2019-07-16 19:25:46 · 9619 阅读 · 0 评论 -
TensorFlow基础(四)——搭建神经网络总结
一、神经网络包括:二、优化时添加的函数三、完整写法(加正则项、学习率、滑动平均):1.1 前向传播网络:1.2 反向传播网络demo:generateds.py生成数据forward.py定义前向传播网络backward.py反向传播网络运行结果:...原创 2019-07-01 14:11:49 · 184 阅读 · 0 评论 -
TensorFlow基础(三)——反向传播
代码实现:#coding:utf-8#0、导入模块,生成模拟数据集import tensorflow as tfimport numpy as np #python的科学计算模块BATCH_SIZE = 8 #数值不能过大seed = 23455#基于seed产生随机数rng = np.random.RandomState(seed)#随机数返回32行2列的矩阵...原创 2019-07-01 14:06:30 · 291 阅读 · 0 评论 -
TensorFlow基础(二)——前向传播
代码实现:#coding:utf-8#两层简单神经网络(全连接)import tensorflow as tf#定义输入和参数x = tf.constant([[0.7, 0.5]]) #用一行两列的二维张量表示x的体积和重量w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) 2行3列组成的随机矩阵...转载 2019-06-30 21:27:42 · 301 阅读 · 0 评论 -
TensorFlow笔记(十三)——Tensorflow针对不定尺寸的图片读写tfrecord文件总结
目录介绍利用slim.dataset.Dataset读写tfrecord文件利用tf.parse_single_example 读写tfrecord文件对比使用tf.image.decode_jpeg进行tobytes 格式的解码读取总结介绍最近在读取tfrecord时,遇到了关于tensorf shape的问题。我们需要知道,大多数情况下图片进行encode...转载 2019-06-29 22:31:40 · 1621 阅读 · 0 评论 -
TensorFlow笔记(十二)——tf.train中的Optimizer相关的函数与功能介绍
目录1、序言2、Tensorflow函数2.1 训练 (Training)█优化 (Optimizers)█Slots█协调器和队列运行器(Coordinator and QueueRunner)1、序言本文所讲的内容主要为以下列表中相关函数。函数training()通过梯度下降法为最小化损失函数增加了相关的优化操作,在训练过程中,先实例化一个优化函数,比如 ...转载 2019-06-29 22:25:47 · 5116 阅读 · 0 评论 -
TensorFlow基础(十二)——制作tfrecord训练集
学习这部分可以先看《你可能无法回避的 TFRecord 文件格式详细讲解》对tfrecord的基本格式有个大概的了解之后可以结合《Slim读取TFrecord文件》来看本博客tensorflow 的tfrecord格式转为图片:总的来说只有3步:1.读取tfrecords,只是读取器变成了tf.TFRecordReader来读取tfrecord文件。 2.通过一个解析器tf....原创 2019-07-05 08:46:00 · 983 阅读 · 0 评论 -
TensorFlow基础(十一)——基于MNIST数据集训练的模型,对输入的图片做预测
整体思路如下:在训练的时候,可以同时进行验证,当准确率达到一定程度后,还可以同时进行测试。即这三个过程可以一块进行训练:验证:测试:...原创 2019-07-04 22:08:36 · 606 阅读 · 0 评论 -
TensorFlow基础(十)——从上次中断的地方继续训练
在上一节mnist_backward.py的基础上,增加saver.restore()函数即可,具体如下:还有一种写法: TensorFlow | 自己动手写深度学习模型之全连接神经网络:https://zhuanlan.zhihu.com/p/33286042...原创 2019-07-04 21:30:53 · 5172 阅读 · 2 评论 -
TensorFlow基础(七)——滑动平均
后面再重复6次,结果原创 2019-07-01 16:54:53 · 194 阅读 · 0 评论 -
TensorFlow基础(六)——(优化)学习率
一、学习率的基本概念:代码:结果:w最后=1,达到预期效果。二、怎样设置学习率?代码:原创 2019-07-01 15:41:54 · 207 阅读 · 0 评论 -
深度学习实战(五)——卷积、池化函数的参数介绍
全连接层的缺点: 见下面1.2过滤器参数介绍中关于全连接层和卷积层参数的数量,通过对比发现,相同输入下,全连接的参数数量要远大于卷积所需要的数量。参数增多除了导致计算速 度减慢,还很容易导致过拟合问题。所以需要一个更合理的神经网络结构来有效地减少神经网络中参数个数。卷积神经网络就可以达到这个目的。 ...原创 2019-06-02 16:13:47 · 752 阅读 · 0 评论 -
Python笔记(十二)——image图像预处理模块
TensorFlow中有着一个image模块专门用于处理图片数据的预处理,里面定义了若干常见的图像预处理函数,让我们列举出来,介绍一下,API地为 tf.image.tf.image.adjust_brightness(images, delta) :用于改变原图像的明亮度,也就是在原图像的基础上加上一个delta,于是我们有new_image = old_image+delta。 tf.i...转载 2019-06-05 20:37:34 · 1385 阅读 · 0 评论 -
xml文件转化成tfrecord格式出现错误TypeError: None has type NoneType, but expected one of: int, long
此错误是由于数据集标注不全或标签拼写错误而引起的,应检查训练集以及测试集里的照片是否和生成的xml文件一一对应,改正之后,需要重新生成csv数据。生成tfrecords时报错:TypeError: None has type NoneType, but expected one of: int, long:https://blog.csdn.net/qq_27882063/article...转载 2019-05-08 22:41:08 · 1274 阅读 · 0 评论 -
查看已安装tensorflow版本
由于tensorflow版本不同,可能一些函数的调用也有变换,这时候可能需要查看tensorflow版本,可以在终端输入查询命令如下:pythonimport tensorflow as tftf.__version__查询tensorflow安装路径为:tf.__path__查询结果如下:---------------------作者:imperfect0...转载 2019-03-28 16:16:34 · 529 阅读 · 0 评论 -
Window下在TensorFlow中安装目标检测API
TensorFlow Object-detection API :github地址 这个API的目的是创建一个能够在单个图像中定位和识别多个对象的精确机器学习模型,这在仍然是计算机视觉领域仍然是一个核心挑战。该API是在tensorflow上构造的开源框架,易于构建、训练和部署目标检测模型,谷歌已经应用在公司的视觉项目中,来源是开头的那篇论文,如果有兴趣可以研究一下,主要对比了几种不同...原创 2019-03-28 16:13:22 · 1316 阅读 · 0 评论 -
google protobuf原理
一、原理protobuf全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。它和XML或者JSON差不多,也就是把某种数据结构的信息,以某种格式(XML,JSON)保存起来,protobuf与XML和JSON不同在于,protobuf是基于二进制的。主要用于数据存储、传输协议格式等场合。那既然有了XML等工具,为什么还要...转载 2019-03-28 16:11:57 · 589 阅读 · 0 评论 -
tensorflow命令行参数:tf.app.flags.DEFINE_string、tf.app.flags.DEFINE_integer、tf.app.flags.DEFINE_boolean
tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考: python中处理命令行参数的模块optpars )做了一层封装。optpars中的参数类型是通过参数 “type=xxx” 定义的,tf中每个合法类型都有对应的 “DEFINE_xxx”函数。常用:tf.app.flags.DEFINE_s...转载 2019-04-04 20:00:01 · 600 阅读 · 0 评论 -
更改Jupyter notebook的工作空间
一、更改Jupyter notebook的工作空间2.1 方式一“”不是每次都好用“”在其配置文件ipython_notebook_config.py中,有如下一句# The directory to use for notebooks and kernels.# c.NotebookApp.notebook_dir = u''该句就是用来指定其工作空间的,例如,默认的工...转载 2019-05-02 11:14:59 · 465 阅读 · 0 评论 -
window下搭建TensorFlow运行环境(用Anaconda)
一、Anaconda、conda、pip、virtualenv的区别① AnacondaAnaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。② condaconda是包及其依赖项和环境的管理工具。▪ 适用语言:Python, R, Ruby, Lua, Scala, ...转载 2019-03-28 16:15:06 · 513 阅读 · 0 评论 -
深度学习之参数初始化(一)——Xavier初始化
我们需要牢记参数初始化的目的是为了让神经网络在训练过程中学习到有用的信息,这意味着参数梯度不应该为0。而我们知道在全连接的神经网络中,参数梯度和反向传播得到的状态梯度以及入激活值有关——激活值饱和会导致该层状态梯度信息为0,然后导致下面所有层的参数梯度为0;入激活值为0会导致对应参数梯度为0。所以如果要保证参数梯度不等于0,那么参数初始化应该使得各层激活值不会出现饱和现象且激活值不为0。我...原创 2019-05-31 21:41:14 · 4588 阅读 · 1 评论 -
深度学习实战(四)——TensorFlow卷积层的定义方式
一、最底层的方式:tf.nn模块tf.get_variable:声明各种权重和偏置变量,该函数在变量没有定义时会创建变量,如果变量已经定义好了则会获取该变量的值,正可用于变量迭代过程。关于tf.get_variable函数及里面参数的介绍见这里。conv1_weights = tf.get_variable('conv1_weights', shape=[3, 3, num_cha...转载 2019-06-02 16:13:33 · 1415 阅读 · 0 评论 -
深度学习实战(六)——TensorFlow命令行参数:tf.flags.DEFINE_xxx()
读别人的代码的时候经常看到这几个函数:flags = tf.flagsFLAGS = flags.FLAGSflags.DEFINE_xxx()FLAGS.parse_flags() 这是tensorflow的命令行参数。在深度学习训练中,我们常常需要动态的配置诸如batch size、learning rate、epoch、kernel size等等超参数...转载 2019-06-02 18:38:59 · 4847 阅读 · 0 评论 -
TensorFlow基础(五)——(优化)损失函数
常用激活函数:神经网络的复杂度一、损失函数1.1 均方误差代码预测产品销量:结果:根据w1的预测结果得到y的计算公式: y = 0.98x1+1.02x2与y的生成公式 ...原创 2019-07-01 14:52:36 · 228 阅读 · 0 评论 -
深度学习中的batch、epoch、iteration的含义
深度学习的优化算法,说白了就是梯度下降。每次的参数更新有两种方式。 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,...转载 2019-06-12 11:49:35 · 2226 阅读 · 0 评论 -
TensorFlow笔记(四)——数据读取(一)
Tensorflow读取数据的一般方式有下面3种:preloaded直接创建变量:在tensorflow定义图的过程中,创建常量或变量来存储数据(仅适用于数据量比较小的情况)。 供给数据(feed):在TensorFlow程序运行的每一步/在运行程序时,通过feed_dict传入数据 reader从文件中读取数据:在tensorflow图开始时,通过一个输入管线从文件中读取数据一、Pr...转载 2019-06-12 10:50:33 · 246 阅读 · 0 评论 -
TensorFlow笔记(五)——数据读取(二)
读取机制Tensorflow中数据读取机制可见下图关于这张图,这篇文章已经介绍的非常详细,简而言之,Tensorflow为了不让数据读取成为代码的事件瓶颈,用了两个队列来进行文件的读取:文件队列,通过tf.train.string_input_producer()函数来创建,文件名队列不包含文件的具体内容,只是在队列中记录所有的文件名,所以可以在这个函数中对文件设置多个epoch,...转载 2019-06-11 22:28:34 · 607 阅读 · 0 评论 -
TensorFlow笔记(七)——基于matplotlib.pyplot函数的图片显示与保存
注:pyplot函数多用于生成折线图,坐标图等。显示正常图片用PIL库在上一章《TensorFlow笔记(六)——图像预处理》显示并保存图片时,遇到几个问题:with tf.Session( ) as sess: image_raw_data = tf.gfile.FastGFile(pic_path,"rb").read()#pic_path:图片路径 img...原创 2019-06-25 12:08:18 · 4062 阅读 · 2 评论 -
TensorFlow基础(一)——张量、计算图、会话
为了使用TensorFlow,我们需要明白什么是Tensorflow。下面介绍Tensorflow的5个特征:用计算图:Graph来表示计算过程 用会话:Sessions来执行图 使用张量:tensors来表示数据 使用参数:Variables来维护状态 使用feeds和fetches操作对任意的操作取出或者存入数据1. 综...转载 2019-06-20 21:26:09 · 899 阅读 · 2 评论