tensorflow修炼之路
文章平均质量分 56
修炼之路
主要研究领域包括图像分类、目标检测、OCR、人脸识别等,搞过跨平台的深度学习模型的部署解决方案,设计过分布式的深度学习模型服务架构。
展开
-
tensorflow ckpt模型转saved_model格式并进行模型预测
导读tensorflow的checkpoint模型文件,只包含了模型的参数并不包含模型结构,为了方便使用tensorflow的serving进行部署,我们需要将checkpoint模型转换为saved_model格式转换代码如下def ckpt_to_pb(ckpt_path,output_pd_path):"""ckpt_path:checkpoint模型文件的目录output_pd_path:savedmodel模型文件保存的目录""" #加载模型的参数文件 experiment原创 2022-02-25 16:53:22 · 3102 阅读 · 1 评论 -
tensorflow报No OpKernel was registered to support Op ‘NcclAllReduce‘
导读在使用tensorflow训练模型的时候报如下错误tensorflow.python.framework.errors_impl.InvalidArgumentError: No OpKernel was registered to support Op 'NcclAllReduce' used by node AllReduceGrads/NcclAllReduce (defined at /home/zw/anaconda3/envs/tf_models/lib/python3.7/sit原创 2020-08-14 14:11:39 · 8353 阅读 · 5 评论 -
tensorflow中的tf.initialize_local_variables/tf.global_variables_initializer/initialize_all_variables
使用TensorFlow的时候定义了变量之后还需要初始化之后才能使用,不然会报错:Attempting to use uninitialized value,下面介绍TensorFlow中常用的几种初始化操作1、tf.global_variable_initializer官方介绍地址:https://tensorflow.google.cn/api_docs/python/tf/initi...原创 2018-10-18 20:16:12 · 4073 阅读 · 0 评论 -
tensorflow中常用的激活函数
激活函数(activation function)运行时激活神经网络中某一部分神经元,将激活神经元的信息输入到下一层神经网络中。神经网络之所以能处理非线性问题,这归功于激活函数的非线性表达能力。激活函数需要满足数据的输入和输出都是可微的,因为在进行反向传播的时候,需要对激活函数求导。在TensorFlow中也内置了许多的激活函数,安装好TensorFlow之后可以在tensorflow--&g...原创 2018-08-19 22:19:46 · 27126 阅读 · 0 评论 -
TensorFlow加载数据的方式
tensorflow作为符号编程框架,需要先构建数据流图,再读取数据,然后再进行训练。tensorflow提供了以下三种方式来加载数据:预加载数据(preloaded data):在tensorflow图中定义常量或变量来保存所有数据 填充数据(feeding):Python产生数据,再把数据填充到后端 从文件中读取数据(reading from file):通过队列管理器从文件中读取数据...原创 2018-08-26 17:25:16 · 5491 阅读 · 0 评论 -
使用tensorboard将卷积的过程可视化
本篇文章主要介绍如何使用tensorboard来分析在训练过程中损失值、准确率以及权重和偏置的变化,来帮助我们更好的分析系统是不是按照我们的要求进行着。还包括卷积的过程可视化,卷积过程是一个黑箱操作,我们也不知道它究竟做了什么。不过我们可以通过反卷积操作,来完成卷积的可视化,来分析卷积所记住的特征是不是我们想要的。在使用tensorboard来进行可视化分析的时候,主要是利用了手写数字识别来完成的...原创 2018-08-14 00:52:29 · 9225 阅读 · 2 评论 -
TensorFlow的batch_normalization
批量标准化(batch normalization简称BN)主要是为了克服当神经网络层数加深而导致难以训练而诞生的。当深度神经网络随着网络深度加深,训练起来会越来越困难,收敛速度会很慢,还会产生梯度消失问题(vanishing gradient problem)。在统计机器学习领域中有一个ICS(Internal Covariate Shift)理论:源域(source domain)和目标域...原创 2018-08-18 16:11:16 · 2847 阅读 · 0 评论 -
TensorFlow的variable_scope和name_scope详细介绍
TensorFlow中有两个作用域(scope),分别是name_scope和variable_scope。variable_scope主要是给variable_name(变量名)增加前缀,还可以给op_name(运算名称)增加前缀,而name_scope是,op_name(运算名称)增加前缀。接下来回详细介绍两者的区别和联系。一、variable_scope的使用tf.get_varia...原创 2018-08-17 22:41:21 · 1861 阅读 · 0 评论 -
tensorboard报No dashboards are active for the current data set
遇到这个错误,通过两步可以解决这个问题一、检查所指定的目录下是否存在event文件类似于上面箭头所指的文件,并不需要所指定的目录为event的上一级目录,比如像下面这种情况在启动tensorboard的时候,指定到log目录就行了,命令如下tensorboard -logdir=D:\python_workspace\machine_learn\com\xiulian\t...原创 2018-08-11 23:32:57 · 1850 阅读 · 1 评论 -
tensorflow的tf.pad函数详细介绍
一、函数功能介绍tf.pad函数主要是用来对tensor的大小进行扩展,包括水平、垂直、深度(通道)等。pad(tensor, paddings, mode="CONSTANT", name=None, constant_values=0)输入参数:tensor:输入的tensorpaddings:设置填充的大小mode:填充方式,默认是CONSTANT,还有REFLECT和SYMMETRICna...原创 2018-07-03 21:48:22 · 7058 阅读 · 0 评论 -
tensorflow实现inception V3
本文主要通过tensorflow的contrib.slim模块来实现Google Inception V3来减少设计Inception V3的代码量,使用contrib.slim模块便可以通过少量的代码来构建有42层深的Inception V3。一、Inception V3网络结构介绍...原创 2018-06-26 22:58:03 · 13922 阅读 · 6 评论 -
tensorflow中的队列和线程
一、队列tensorflow中主要有FIFOQueue和RandomShuffleQueue两种队列,下面就详细介绍这两种队列的使用方法和应用场景。1、FIFOQueueFIFOQueue是先进先出队列,主要是针对一些序列样本。如:在使用循环神经网络的时候,需要处理语音、文字、视频等序列信息的时候,我们希望处理的时候能够按照顺序进行,这时候就需要使用FIFOQueue队列。 ...原创 2018-08-24 23:49:33 · 1627 阅读 · 0 评论 -
tensorflow OP_REQUIRES failed at whole_file_read_ops.cc:114 : Invalid argument: NewRandomAccessFile
tensorflow错误提示:\src\github\tensorflow\tensorflow\core\framework\op_kernel.cc:1318] OP_REQUIRES failed at whole_file_read_ops.cc:114 : Invalid argument: NewRandomAccessFile failed to Create/Open: D:/...原创 2018-09-26 20:20:42 · 7918 阅读 · 3 评论 -
tensorflow Expected image (JPEG, PNG, or GIF), got unknown format starting with
tensorflow在读取图片的时候报上面的错误,提示还是比较明显的,意思是这个图片的路径存在问题,不是jpeg、png、git格式,仔细检查路径是否存在问题。如果你是自己使用os.walk生成的图片路径,在保存图片的路径之前做一个判断for root,dir,files in os.walk(os.path.join(train_abnormal_path,dir_name)): ...原创 2018-09-28 22:42:06 · 10456 阅读 · 10 评论 -
TensorFlow的tf.concat实例详细介绍
tf.concat函数:函数功能比较简单,主要用于连接两个数组参数:values:需要连接的数组axis:从哪个维度来连接数组例子:一维数组import tensorflow as tfif __name__ == "__main__": a = [1,2,3] b = [4,5,6] c = tf.concat([a,b],0) sess ...原创 2019-01-08 22:13:55 · 3723 阅读 · 0 评论 -
彻底搞懂CNN中的卷积和反卷积
前言卷积和反卷积在CNN中经常被用到,想要彻底搞懂并不是那么容易。本文主要分三个部分来讲解卷积和反卷积,分别包括概念、工作过程、代码示例,其中代码实践部分主结合TensorFlow框架来进行实践。给大家介绍一个卷积过程的可视化工具,这个项目是github上面的一个开源项目。卷积和反卷积卷积(Convolutional):卷积在图像处理领域被广泛的应用,像滤波、边缘检测、图片锐化等,都是通过...原创 2019-01-05 22:37:25 · 75308 阅读 · 34 评论 -
tensorflow报InvalidArgumentError (see above for traceback): Conv2DSlowBackpropInput
在使用TensorFlow求解转置卷积(反卷积)的时候,我们需要调用tf.nn.conv2d_transpose方法,在计算反卷积的时候,报了如下错误InvalidArgumentError (see above for traceback): Conv2DSlowBackpropInput: Size of out_backprop doesn't match computed: actua...原创 2019-01-01 19:22:30 · 7183 阅读 · 0 评论 -
tensorflow报NotFoundError (see above for traceback): Key G_b0 not found in checkpoint
错误提示在使用TensorFlow加载ckpt文件的时候报NotFoundError (see above for traceback): Key G_b0 not found in checkpoint错误,详细错误如下:加载ckpt文件的代码如下:saver = tf.train.Saver()saver.restore(sess,ckpt_path)分析错误从错误...原创 2018-12-23 18:43:36 · 4493 阅读 · 7 评论 -
tensorflow将图片保存为tfrecord和tfrecord的读取
tensorflow官方提供了3种方法来读取数据:预加载数据(preloaded data):在TensorFlow图中定义常量或变量来保存所有的数据,适用于数据量不太大的情况。 填充数据(feeding):通过Python产生数据,然后再把数据填充到后端。 从文件读取数据(reading from file):从文件中直接读取,然后通过队列管理器从文件中读取数据。本文主要介绍第三种方法...原创 2018-10-27 20:58:53 · 13273 阅读 · 22 评论 -
tensorflow中的control_flow_ops.switch函数介绍
tensorflow中的control_flow_ops模块属于tensorflow.python.ops中的一个模块,从switch函数的名称上看就是一个开关函数。函数:control_flow_ops.switch(data,pred,dtype=None,name=None)功能:用来选择数据的输出通道,如果pred为False则data从第一个输出,如果pred为True则数据从第...原创 2018-10-21 22:05:14 · 7099 阅读 · 2 评论 -
tensorflow实现inception Net数据增强
在CNN中,为了增大数据量避免模型的过拟合,通常都会对训练数据做数据增强处理,这篇文章主要介绍在Inception Net中是如何做数据增强的,tensorflow官方通过slim已经实现了VGG、Inception、LeNet网络的数据增强的,官网链接如下:https://github.com/tensorflow/models/tree/master/research/slim/preproc...原创 2018-10-22 22:40:08 · 1633 阅读 · 0 评论 -
tensorflow中的tf.train.batch详解
官方文档链接:https://tensorflow.google.cn/versions/r1.8/api_docs/python/tf/train/batchtf.train.batch( tensors, batch_size, num_threads=1, capacity=32, enqueue_many=False, shapes=N...原创 2018-10-18 21:56:59 · 38107 阅读 · 18 评论 -
tensorflow实现VGGNET
一、VGGNET介绍VGGNet是牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司一起研发的深度卷积神经网络。VGGNet探索了卷积神经网络的深度和其性能之间的关系,通过反复堆叠3×3的小型卷积核和2×2的最大池化层,VGGNet成功地构筑了16~19层深的卷积神经网络。到目前为止,VGGNet还经常被用来提取图像的特征。VGGNet训练后的模...原创 2018-06-18 21:08:41 · 8843 阅读 · 2 评论 -
tensorflow查看电脑的CPU和GPU
1、查看电脑GPU和CPUimport osfrom tensorflow.python.client import device_libos.environ["TF_CPP_MIN_LOG_LEVEL"] = "99"if __name__ == "__main__": print(device_lib.list_local_devices())2、指定CPU或GPU进行计算 ...原创 2018-06-09 22:03:25 · 41472 阅读 · 2 评论 -
tensorflow实现数据增强(随机裁剪、翻转、对比度设置、亮度设置)
数据增强(Data Augmentation):是指对图片进行随机的旋转、翻转、裁剪、随机设置图片的亮度和对比度以及对数据进行标准化(数据的均值为0,方差为1)。通过这些操作,我们可以获得更多的图片样本,原来的一张图片可以变为多张图片,扩大了样本容量,对于提高模型的准确率和提升模型的泛化能力非常有帮助,在进行数据增强的同时也会需要消耗大量的系统资源。利用opencv来读取图片,然后利用tensor...原创 2018-06-08 23:51:05 · 42127 阅读 · 18 评论 -
TensorFlow变量详细介绍
TensorFlow中变量的作用主要是用来保存和更新神经网络中的参数,TensorFlow提供了tf.Variable函数来创建和初始化变量。TensorFlow提供了许多的随机生成函数和常数生成函数来初始化变量。一、随机生成函数1、tf.random_normal函数,随机参数分布使用的是正态分布,主要参数包括平均值、标准差、取值类型import tensorflow as tf原创 2017-10-22 20:29:15 · 3164 阅读 · 0 评论 -
TensorFlow计算图、张量、回话详细介绍
从TensorFlow这个名字中,我们可以发现,tensor(张量),flow(流),在TensorFlow中两个最重要的概念,一个TensorFlow程序主要是由计算图、张量以及模型回话三个部分组成。一、计算图一个使用TensorFlow编写的程序主要分为两个部分,一个是构建计算图部分,一个是执行计算图。下面,我来构建一个非常简单的计算图。import tensorflow as t原创 2017-10-21 22:51:17 · 5536 阅读 · 0 评论 -
TensorFlow优化模型之学习率的设置
一、学习率使用TensorFlow训练一个模型时,我们需要通过优化函数来使得我们训练的模型损失值达到最小,常用的优化算法有随机梯度下降、批量梯度下降,而在使用优化算法的时候,我们都需要设置一个学习率(learning rate),而学习率的设置在训练模型的时候也是非常重要的,因为学习率控制了每次更新参数的幅度。如果学习率太大就会导致更新的幅度太大,就有可能会跨过损失值的极小值(不说最小值的原因原创 2017-10-29 20:39:41 · 21481 阅读 · 0 评论 -
TensorFlow创建变量
一、使用tf.Variable函数创建变量tf.Variable(initial_value=None,trainable=True,collections=None,validate_shape=True,caching_device=None,name=None,variable_def=None,dtype=None,expected_shape=None,import_scope=No原创 2017-11-06 21:21:32 · 6467 阅读 · 0 评论 -
TensorFlow自定义损失函数
TensorFlow提供了许多的损失函数,在训练模型中经常使用的损失函数有交叉熵、平方差。TensorFlow除了提供这些损失函数之外,还给开发者提供了一种自定义损失函数的方法。让开发者,可以根据实际项目的需要来自定义损失函数,让我们可以更好的训练出满足开发者需要的模型。一、为什么要自定义损失函数在某些开发场景下,系统提供的损失函数已经无法满足我们的要求。如,我们需要为一个奶茶店提供一个原原创 2017-10-27 22:02:41 · 19929 阅读 · 1 评论 -
tensorflow实现CNN识别手写数字
上一篇使用TensorFlow识别手写数字,是直接采用了softmax进行多分类,直接将28*28的图片转换成为了784维的向量作为输入,然后通过一个(784,10)的权重,将输入转换成一个10维的向量,最后再将对每一个数字预测一个概率,概率最大的数字就是预测的结果。因为,直接将图片转成一个784维的向量,丢弃了图片原有的结构信息,但是最后对于测试集准确率还是可以达到91%。这一篇,介绍通过CNN原创 2017-10-19 21:57:07 · 28416 阅读 · 11 评论 -
TensorFlow基础篇
TensorFlow作为Google开源的深度学习框架,其可用性、灵活性、效率以及对各个平台的支持都是很不错的。TensorFlow官网的教程也是非常的详细,下面的介绍主要也是根据官网的教程。TensorFlow最核心的就是计算图,整个编码过程其实可以分为两个阶段,一个是构建计算图一个是运行计算图。1、张量(tensors)张量:TensorFlow数据的中心单元,张量其实就是不同维数大小翻译 2017-10-04 11:02:48 · 1061 阅读 · 0 评论 -
TensorFlow实现识别手写数字
当学习一门新的编程语言的时候,我们总是以输出“hello word”作为学习这门编程语言的开始,表示我们开启了这门编程语言的大门。而在机器学习的领域中,识别手写数字就像输出“hello word”一样作为开启了机器学习的大门。一、MNIST介绍MNIST:在实现手写数字识别需要使用到手写数字的图片,是从MNIST下载的。MNIST(Modified National Institute o原创 2017-10-08 22:11:52 · 4732 阅读 · 5 评论 -
TensorFlow实现一个简单的线性回归预测
使用TensorFlow实现线性回归预测需要使用到numpy,所以在实现线性回归预测之前,先介绍需要使用到的相关的numpy函数。一、numpy相关函数介绍介绍一个numpy的api查看网站http://devdocs.io/numpy~1.11/np.random.rand()创建一个向量,参数决定产生向量的维数以及行和列的大小一个参数的时候,产生的是一个行向量,参数的大小决定向原创 2017-09-27 22:33:09 · 3261 阅读 · 0 评论 -
TensorFlow优化模型之正则化
在使用机器学习训练一个模型的时候,训练出来的模型很可能会出现两个常见的问题,过拟合和欠拟合从而导致模型对未知数据的预测能力会有所下降。欠拟合可能是由于模型的设计过于的简单,提取出来的特征不足以来刻画问题的趋势,比如说,使用一个模型来预测房价,影响房价的因素有房子所处位置、房子大小、卧室的数量、是否靠近医院、是否靠近学校等等。如果,我们在训练模型的时候仅仅只是用了房子的大小、房子所处的位置两个特征来原创 2017-10-30 21:30:10 · 18923 阅读 · 1 评论 -
使用TensorFlow实现二分类
使用TensorFlow构建一个神经网络来实现二分类,主要包括输入数据格式、隐藏层数的定义、损失函数的选择、优化函数的选择、输出层。下面通过numpy来随机生成一组数据,通过定义一种正负样本的区别,通过TensorFlow来构造一个神经网络来实现二分类。一、神经网络结构输入数据:定义输入一个二维数组(x1,x2),数据通过numpy来随机产生,将输出定义为0或1,如果x1+x2<1,...原创 2017-10-23 22:12:13 · 33174 阅读 · 17 评论 -
TensorFlow优化之滑动平均模型
一、滑动平均模型滑动平均模型,它可以使得模型在测试数据上更健壮,在使用随机梯度下降算法训练神经网络时,通过滑动平均模型可以在很多的应用中在一定程度上提高最终模型在测试数据上的表现。其实滑动平均模型,主要是通过控制衰减率来控制参数更新前后之间的差距,从而达到减缓参数的变化值(如,参数更新前是5,更新后的值是4,通过滑动平均模型之后,参数的值会在4到5之间),如果参数更新前后的值保持不变,通过滑动原创 2017-11-01 20:59:31 · 10243 阅读 · 0 评论 -
使用TensorFlow构建一个简单的回归预测模型
通过利用TensorFlow来构建一个单层的回归预测模型,使用梯度下降算法来优化损失函数,数据是通过模拟的一个线性的数据集。import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltif __name__ == "__main__": #设置参数 #设置梯度下降算法的学习率 lea...翻译 2018-05-31 23:10:32 · 13097 阅读 · 7 评论 -
tensorflow报ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape
错误原因:是因为tensorflow不能够开辟跟多的内存导致报错。解决办法:tensorflow中的run方法中的feed_dict的数据,由原来整个训练集(测试集)改为批量预测或者训练。...原创 2018-06-03 22:40:44 · 5946 阅读 · 0 评论 -
urllib.error.URLError urlopen error Errno 113 No route to host
问题描述:在使用tensorflow构建一个MNIST手写数字分类器的时候,报了这个错。原因分析:因为在使用tensorflow构建分类器的时候,需要去下载MNIST的数据集。而tensorflow是通过input_data方法调用urlilib去下载MNIST手写数字数据集的,从错误的提示分析是由于网络的问题。解决方法:设置urllib的代理,代码如下。#设置代理import urllib.r...原创 2018-06-03 22:35:15 · 6688 阅读 · 0 评论