tensorflow
文章平均质量分 80
yuanlulu
做过嵌入式Linux开发、深度学习平台开发。擅长c++和python。
展开
-
tensorflow2.x:构建tf.keras.Model实例的几种方式
我看到教程里搭建模型主要就是实例化一个tf.keras.Model并对它进行各种设置,实例化一个tf.keras.Model对象竟然同时存在多种方式,这也不是“灵活”能解释的通的,感觉还是没有实现一种好用的方式达到“一招鲜”,多种方式并存的原因可能还是设计不够简单。如果是多输入输出的话,输入用[inoput1, input2]这样的方式来传入就可以,输出用[out1,out2]的方式来返回。Sequential只能搭建简单的网络,如果内部有复杂的结构,就需要直接使用tf.keras.Model构造。原创 2022-08-24 12:36:20 · 2258 阅读 · 0 评论 -
tensorflow 15:使用卷积和pool识别MNIST数据集
概述前面的博文讲到的是全连接识别MNIST。这篇博客主要讲解使用卷积和池化(POOL)来和别MNIST。牵涉的代码来自tensorflow的源码工程,目录是:tensorflow\examples\tutorials\mnist\minist_deep.py。源码中构建的计算图前向推断结构如下:graph LR输入数据-->卷积层1卷积层1-->POOL1POOL1--&...原创 2018-10-29 17:25:41 · 1373 阅读 · 0 评论 -
tensorflow 16:数据读取(以cifar10_input.py为例)
数据读取概述TensorFlow程序读取数据一共有3种方法:供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。目前我用过的主要是第一种,就是提供fee...原创 2018-11-05 20:45:25 · 5681 阅读 · 3 评论 -
tensorflow 17:搭建图片分类计算图(cifar10.py)
概述书接上回,继续讲cifar10的例子,这次讲cifar10.py。代码在https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10cifar10.py速览这个文件主要包含以下几个部分:读取数据搭建前向预测计算图搭建loss搭建train下载cifar10数据集并解压这个文件的代码没有搭建...原创 2018-11-05 20:48:10 · 1072 阅读 · 0 评论 -
tensorflow 18:cifar10图片分类训练(cpu或单gpu)
概述接着前面几篇博客讲cifar10的训练,本文牵涉的代码文件主要是cifar10_train.py。仔细看前面的cifar10.py就会发现,所有变量都被声明放在cpu上,如参考资料里的《卷积神经网络》所说,这是为了多个GPU上共享变量。只有train部分的节点没指定设备,如果有gpu的话训练还是默认在gpu上,其他部分都在cpu上。代码分解命令行选项参数FLAGS = tf.app....原创 2018-11-06 00:48:38 · 2259 阅读 · 0 评论 -
tensorflow 19: tflite 概念理解
概述学术界对精度、自由度的要求和工业界对速度、精简度的要求形成了反差,这就使得越来越多的框架开始把training和inference分开,各公司都开始针对移动设备纷纷推出高性能inference库。tflitetflite其实就是谷歌自己的一个轻量级推理库。主要用于移动端。之前的tensorflow mobile那一套到2019年就不再维护了。tflite使用的思路主要是从预训练的模型转...原创 2018-11-14 11:24:53 · 20034 阅读 · 9 评论 -
tensorflow 20:搭网络、导出模型、运行模型
概述以前自己都利用别人搭好的工程,修改过来用,很少把模型搭建、导出模型、加载模型运行走一遍,搞了一遍才知道这个事情也不是那么简单的。搭建模型和导出模型参考《TensorFlow固化模型》,导出固化的模型有两种方式.方式1:导出pb图结构和ckpt文件,然后用 freeze_graph 工具冻结生成一个pb(包含结构和参数)在我的代码里测试了生成pb图结构和ckpt文件,但是没接着往下走,...原创 2018-12-12 19:59:04 · 4906 阅读 · 0 评论 -
tensorflow 21:用python转换tflite模型并在PC上调用
概述想玩玩tflite,无奈对android开发环境不熟。经过搜索找到了在PC上python下调用tflite模型的方法。环境python3.6tf-nightly 1.13win10 64位i7 8550U制作frozen模型模型制作参考前面的一篇博客《tensorflow 20:搭网络、导出模型、运行模型》。主要就是两层卷积和两层全连接用来识别mnist数据集,保存为fro...原创 2019-01-04 00:11:06 · 27888 阅读 · 90 评论 -
树莓派上为python装tensorflow和opencv
环境树莓派3B+, python3.5,官方系统准备sudo apt updatesudo apt install python3-dev python3-pipsudo apt install libatlas-base-dev # required for numpy安装opencvpip3 install opencv-python==3.3.0.10# t...原创 2019-01-04 19:19:44 · 2761 阅读 · 4 评论 -
这就是神经网络 7:深度学习-目标检测-超详细图解Faster R-CNN
本文动机说实话,介绍Faster R-CNN的文章我看了很多,论文的英文原文和翻译都看过,我知道two-statge和anchor的主要思想,可是我脑子里始终没法建立一个完整的Faster R-CNN的框架,有太多的细节没有搞清楚,每个步骤的tensor是什么维度?这些维度是什么含义?第二阶段的坐标回归和第一阶段一样吗?有太多的细节让我疑惑不已。别人的文章讲的都是别人建立了整体概念以后的细节分解...原创 2019-02-06 21:43:28 · 7018 阅读 · 1 评论 -
rk3399环境配置:安装opencv、dlib和tensorflow,并测试ncnn性能
概述最近入手了NanoPC-T4开发板,上面用的是rk3399这款芯片。安装系统:rk3399-eflasher-friendlydesktop-bionic-4.4-arm64-20181219。这是一个ubuntu18.04为基础的Linux系统。安装过程下面的操作都是在root用户下完成的。更新源到/etc/apt/sources.list.替换url为http://mirror...原创 2019-02-24 12:57:03 · 8362 阅读 · 9 评论 -
这就是神经网络 12:深度学习-语义分割-DeepLabV1、V2、V3和V3+
概述说到语义分割,谷歌的DeepLab系列都是一个无法绕过的话题。目前这个系列共出了4个版本:V1、V2、V3和V3+。DeepLab是全景分割,也有DeeperLab原班人马在里面参与。本文主要关注DeepLabV3+和DeepLab。V1、V2作为前作,有一定的参考价值,但是我精力有限,这两篇主要从其它总结材料里学习而不是原论文,V3和V3+才是我的重点。一个系列看下来,感觉好漫长,半辈...原创 2019-03-31 16:31:20 · 4254 阅读 · 0 评论 -
tensorflow 22:量化模型在pc环境调用
概述之前写过一文探讨tflite模型在pc环境下的调用:《tensorflow 21:用python转换tflite模型并在PC上调用》我就想,能不能只量化,格式还是普通的pb格式,然后在pc环境调用。这样既享受了量化压缩带来的好处,又不受制于tflite支持的算子不全面。结论没啥用!在pc环境用graph_transforms工具将incrption-v2模型量化,然后PC环境下调用...原创 2019-04-19 16:14:48 · 1336 阅读 · 0 评论 -
tensorflow 23:从ckpt文件导出固化PB文件
概述需要从ckpt文件生成固化的PB文件,给生成现场用。现在我探索下不依赖代码里的网络结构、仅仅用CKPT文件来生成PB文件。转化训练生成的ckpt文件目录如下:$ ls ./ckpt0507/checkpoint graph.pbtxt model.ckpt-3251.data-000...原创 2019-05-09 20:02:15 · 2947 阅读 · 3 评论 -
基于语义分割的身份证部件解析和文字检测
概述这个工作主要是利用人脸解析项目的算法,探索一下语义分割的功能。安排实习生利用合成的身份证照片进行了语义分割的标注。我的目的有两个:1.检测身份证上的信息是否齐全;2.确定身份证各文字信息的位置,把文字抠出来给OCR程序。基于opencv的算法之前写过一篇文章《python_opencv–身份证文字区域检测》,利用opencv的接口进行二值化,然后找出所有的阴影对应的外接矩形。这个方法...原创 2019-05-10 18:09:42 · 4990 阅读 · 9 评论 -
项目实践中对语义分割网络DeepLabV3+的改进
概述最近用deepv3+做了一些语义分割的工作,从github上下载了别人实现的tensorflow实现。发现速度不能满足需求,所以本人对deepv3+做了一些改进。原始的网络结构下图左侧是DeepLabV3的结构,中间是U-Net风格的编解码结构,最右侧就是DeepLabV3+的结构。和V3相比,V3+融合了一次底层特征图(主干网络也换了,但是这里体现不出来)。改进方向替换backb...原创 2019-05-15 21:20:32 · 11279 阅读 · 15 评论 -
tensorflow 13:tensorboard可视化
概述如前篇博文《tensorflow 12:双隐层+softmax回归实现mnist图片识别之二》所写,可以将训练的计算图和训练中的状态信息写入一个日志文件,采用tensorboard实时查看,也可以事后查看。权重(w和b)、度量(loss、accuracy)、超参和其它统计信息,都可以写入tensorboard的事件日志文件。一些常亮也可以写入。除了计算图结构,tensorboard汇总的...原创 2018-10-08 09:17:37 · 2948 阅读 · 0 评论 -
tensorflow 9. 参数解析和经典入口函数tf.app.run
概述本文总结两种参数解析的接口,一种是python的参数解析包自带的功能,使用时需要import argparse。另一类是tensorflow自带的功能,解析时import tensorflow就行了。python中的参数解析parse_known_args的例子tensorflow下的一个例子tensorflow/examples/tutorials/mnist/mnist_deep...原创 2018-10-07 00:51:03 · 2334 阅读 · 0 评论 -
tensorflow 3. 线性回归和优化器
本节例子在这里本节例子主要计算Y=X*W + b公式里的W和b参数。优化器选用的是GradientDescentOptimizer。我手工敲了一遍,翻译了注释,如下:import tensorflow as tf import numpyimport matplotlib.pyplot as plt rng = numpy.random# 超参数learning_rate ...原创 2018-03-18 22:54:07 · 1438 阅读 · 0 评论 -
tensorflow 0:开头及资源
希望建立一个系列的笔记记录自己的tensorflow学习之路,并与他人分享。tensorflow是谷歌开源的深度学习框架,作为工程开发人员,再tensorflow上既可以动手实现自己设计的深度学习框架,也非常易于重现论文中的成果。作为从其它软件开发方向转入到深度学习方向的人来说,tensorflow封装了很多常用模块和功能,使得我们易于学习和掌握。这里摘抄一段来自http://ww原创 2018-03-13 12:39:53 · 551 阅读 · 0 评论 -
tensorflow 1. 人生只若如hello
temsprflow的hello world入门例程和基本概念原创 2018-03-13 12:59:00 · 612 阅读 · 0 评论 -
tensorflow 2. 变量和存钱
tensorflow变量的使用,feed和fetch的演示原创 2018-03-13 13:18:51 · 505 阅读 · 0 评论 -
tensorflow 4. 逻辑回归-mnist和softmax的应用
这里有一个例子演示使用softmax算法对mnist数据集做逻辑回归训练。代码在这里 这里的例子与temsorflow tutorials下的例子有较大差异。官方的源码在这里主要差异在官方例子严格封装了四部曲:预测、损失、训练、评估。本文的例子也都有相应的步骤,但是没有将每一步封装成函数。所以推荐大家去看下tensorflow官网例子的代码风格。四部曲的一个讲解图片: 本次先来研究...原创 2018-03-21 23:23:03 · 962 阅读 · 0 评论 -
tensorflow 6. 动态计算图实现线性回归(eager execution)
本例程源码来自这里。目前我已把我自己手工敲写加注释的代码放到自己的github账户上面,项目地址在这里:https://github.com/RootYuan/tensorflow_examples_practice/。下面是正文分割线tensorflow一直以来是基于静态计算图的,这其实跟程序的执行过程并不一致,没办法使用python语言取控制中间流程。PyTorch 的动态图一...原创 2018-04-01 11:43:28 · 1773 阅读 · 0 评论 -
tensorflow 7. 最近邻识别MNIST手写数据集
目前我已把我自己手工敲写加注释的代码放到自己的github账户上面,项目地址在这里:https://github.com/RootYuan/tensorflow_examples_practice/。最近邻算法,即找到训练样本中与之最近的数据,采用那个数据点的标注作为预测输出。实际上这里没有训练,选取样本本身就是训练。计算量主要在遍历所有点挨个计算距离。训练样本数量越多,越准确,但是计...原创 2018-04-01 15:13:42 · 605 阅读 · 0 评论 -
tensorflow 8. MNIST的脚手架--input_data
在之前的案例中经常见到这样使用MNIST数据集的用法:from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("/tmp/data/", one_hot=False)这句话的作用是,如果”/tmp/data/”目录下存在mnist数据集,则加载,否则先下载后...原创 2018-04-03 22:22:24 · 2573 阅读 · 0 评论 -
tensorflow 5. K均值回归用于手写数字识别
本代码展示的是tensorflow中K均值算法。 代码原始地址在这里下面这段摘自百度百科: K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。代码里面并没有把K的值直接设为10,而是设为25.然后把这25簇分为10类(对应10个数字)。相当于K均值之后用最近邻再次分类,思路...原创 2018-03-29 14:33:46 · 1399 阅读 · 0 评论 -
在树莓派上安装tensorflow最新版本
昨天刚看了一篇文章,《树莓派+Movidius NCS神经计算棒》,作者认可了树莓派加Movidius NCS神经计算棒的组合效果,但同时也指出这种组合的缺点在于性能略低,且树莓派版本的ubuntu没法安装最新版本的tensorflow(作者只看到支持tf1.1)。对于树莓派性能低没什么可说的,毕竟硬件参数在那,可是经过搜索,树莓派上安装高版本的tensorflow已经不再是问题。首先,维护树...原创 2018-05-23 13:48:35 · 6326 阅读 · 1 评论 -
ARM64+ubuntu18.04深度学习环境安装小结
概述本人断断续续花费了两周时间,在某国产ARM64+linux环境的服务器上,使用docker容器安装成功了公司深度学习项目所需的环境。中间过程坎坷,在此结文以记,希望能对他人有所帮助,少踩坑。目前成功搭建的环境如下:aarch64 docker容器,ubuntu18.04, python2, opencv3.3, dlib19.15, tensorflow1.5, sklearn。上...原创 2018-08-12 15:59:53 · 14472 阅读 · 1 评论 -
tensorflow 14:XLA编译器用于JIT加速
概述XLA(加速线性代数)是用于优化TensorFlow计算的线性代数的域特定编译器。XLA 利用 JIT 编译技术分析用户在运行时创建的 TensorFlow 图表,根据实际运行时维度和类型将其专门化,将多个运算融合在一起并为它们生成高效的本机代码——适用于 CPU、GPU 之类的设备和自定义加速器(例如,Google 的 TPU)。目前XLA是实验性的。大多数使用情况在性能(加快速度或减...原创 2018-10-11 21:07:29 · 4933 阅读 · 0 评论 -
tensorflow 10: sofmax回归识别mnist手写数字图片
Softmax回归介绍为了得到一张给定图片属于某个特定数字类的证据(evidence),我们对图片像素值进行加权求和。如果这个像素具有很强的证据说明这张图片不属于该类,那么相应的权值为负数,相反如果这个像素拥有有利的证据支持这张图片属于这个类,那么权值是正数。我们也需要加入一个额外的偏置量(bias),因为输入往往会带有一些无关的干扰量。下面的图片显示了一个模型学习到的图片上每个像素对于特定数...原创 2018-10-05 15:44:44 · 2318 阅读 · 0 评论 -
tensorflow 11:双隐层+softmax回归实现mnist图片识别
概述上篇文章讲到的sofmax回归,除了输入层,只有线性层+sofmax,这两者合起来可以被称为输出层。没有中间的隐藏层。本文介绍在sofmax回归基础上增加两层隐藏层的方法。本文的主要参考来自参考资料里的《TensorFlow运作方式入门》和《TensorFlow实现双隐层SoftMax Regression分类器》。主要代码来自tensorflow源码目录下的例程mnist.py。借...原创 2018-10-06 17:18:54 · 3027 阅读 · 0 评论 -
tensorflow 12:双隐层+softmax回归实现mnist图片识别之二
概述tensorflow的自带例程用两个文件演示了“全连接层+softmax回归”实现mnist图片识别的功能。一个文件是mnist.py,在之前一篇文章《tensorflow 11:双隐层+softmax回归实现mnist图片识别》已经介绍过了。不过mnist.py侧重搭建计算图,没有调用过程。本文讲解fully_connected_feed.py这个文件,主要讲解调用过程相关的知识点。f...原创 2018-10-07 00:44:23 · 2464 阅读 · 0 评论 -
unbuntu下的tensorflow docker转移到REHL7.X下遇到的问题总结
红帽系统中运行docker run遇到的nvidia-docker-plugin相关的错误:在ubuntu x86_64下做好的docker镜像,使用docker save保存为tar文件,复制文件到另一台红帽REHL7.X x86_64设备上,运行docker run遇到以下错误:nvidia-docker-plugin | 2018/01/12 00:56:15 Received cr原创 2018-01-11 21:08:50 · 762 阅读 · 0 评论