“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。
目前,越来越多的互联网公司内部都有自己的一套框架去训练模型,而模型训练时需要的数据则都保存在分布式文件系统(HDFS)上。Hive作为构建在HDFS上的一个数据仓库,它本质上可以看作是一个翻译器,可以将HiveSQL语句翻译成MapReduce程序或Spark程序,因此模型需要的数据例如csv/libsvm文件都会保存成Hive表并存放在HDFS上,那么问题就来了,如何大规模地把HDFS中的数据直接喂到Tensorflow中呢?
如果你是 Tensorflow 的初学者,那么你或多或少在网络上别人的博客上见到过 TFRecord 的影子,但很多作者都没有很仔细地对它进行说明,这也许会让你感受到了苦恼。本文按照我自己的思路对此进行一番讲解,也许能够提供给你一些帮助。
本文主要以MNIST数据集为例介绍TFRecords文件如何制作以及加载使用。所讲内容可以在SIGAI 在线编程功能中的sharedata/intro_to_tf文件夹中可以免费获取。此项功能对所有注册用户免费开放。非注册用户在官网注册即可使用。
假设emo文件夹下,有1,2,3,4等文件夹,每个文件夹代表一个类别 1 import tensorflow as tf 2 from PIL import Image 3 from glob import glob 4 import os 5 import progressbar 6 import time 7 8 9 class TFRecord(): 10 def __init__(self, path=None, tfrecord_file=None):
Data API还可以从现成的文件(比如CSV文件)、固定大小的二进制文件、使用TensorFlow的TFRecord格式的文件(支持大小可变的记录)读取数据。TFRecord是一个灵活高效的二进制格式,基于Protocol Buffers(一个开源二进制格式)。Data API还支持从SQL数据库读取数据。另外,许多开源插件也可以用来从各种数据源读取数据,包括谷歌的BigQuery。
众所周知,要训练出一个模型,首先我们得有数据。我们第一个例子中,直接使用dataset的api去加载mnist的数据。(minst的数据要么我们是提前下载好,放在对应的目录上,要么就根据他给的url直接从网上下载)。
新用户和冷用户喜好预测问题一直是推荐系统领域的难题,并广泛存在于计算广告、App 推荐、电子商务和信息流推荐场景。
在上一篇文章使用TensorFlow一步步进行目标检测(1)中,我们选择了目标检测的预训练模型。在这篇文章中,我将展示如何将数据集转换为TFRecord文件,这样我们就可以使用该数据集对模型进行再训练。这是整个过程中最棘手的部分之一,除非我们所选择的数据集是采用的特定格式,否则还需要编写一些代码来处理数据集。
这次只记录我在实验中遇到的情况和略懂的几点,多余的我没有怎么看【笑哭】,一个是因为懒,一个是因为官网介绍页太少了8,有点心塞~~ 开门见山,关于Tensorflow读取数据,官网给出了三种方法,分别是: 1.供给数据(Feeding): 在TensorFlow程序训练或者测试的每一个epoch,在tf.Session().run()函数中,以字典的形式通过feed_dict参数进行赋值。 2.从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。 3.预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。
##TFRecord## TensorFlow提供了TFRecord的格式来统一存储数据,TFRecord格式是一种将图像数据和标签放在一起的二进制文件,能更好的利用内存,在tensorflow中快速的复制,移动,读取,存储 等等。 TFRecords文件包含了tf.train.Example 协议内存块(protocol buffer)(协议内存块包含了字段 Features)。我们可以写一段代码获取你的数据, 将数据填入到Example协议内存块(protocol buffer),将协议内存块序列化为一个字符串, 并且通过tf.python_io.TFRecordWriter 写入到TFRecords文件。 从TFRecords文件中读取数据, 可以使用tf.TFRecordReader的tf.parse_single_example解析器。这个操作可以将Example协议内存块(protocol buffer)解析为Tensor。 ##Image to TFRecord##
Google官方推荐在对于中大数据集来说,先将数据集转化为TFRecord数据,这样可加快你在数据读取,预处理中的速度。除了“快”,还有另外一个优点就是,在多模态学习(比如视频+音频+文案作为特征)中可以将各种形式的特征预处理后统一放在TFRecord中,避免了读取数据时候的麻烦。
本文介绍如何利用 TensorFlow 将多个 TFRecord 文件读取到内存中并显示为图片。首先介绍了 TFRecord 文件的结构和读取方法,然后通过一个具体的例子演示了如何使用 TensorFlow 读取和显示车牌号图片。最后,通过多线程的方式批量读取多个 TFRecord 文件,并将它们显示为图片。
TFRecord文件中的数据都是通过tf.train.Example Protocol Buffer的格式存储的。以下代码给出了tf.train.Example的定义。
该文是YJango:TensorFlow中层API Datasets+TFRecord的数据导入的后续。
参考书 《TensorFlow:实战Google深度学习框架》(第2版) 例子:从一个张量创建一个数据集,遍历这个数据集,并对每个输入输出y = x^2 的值。 #!/usr/bin/env python # -*- coding: UTF-8 -*- # coding=utf-8 """ @author: Li Tian @contact: 694317828@qq.com @software: pycharm @file: dataset_test1.py @time: 2019/2/10 1
本节学习来源斯坦福大学cs20课程,有关本节源代码已同步只至github,欢迎大家star与转发,收藏!
项目链接:https://github.com/signatrix/efficientdet
美团图灵机器学习平台在长期的优化实践中,积累了一系列独特的优化方法。本文主要介绍了图灵机器学习平台在内存优化方面沉淀的优化技术,我们深入到源码层面,介绍了Spark算子的原理并提供了最佳实践。希望为读者带来一些思路上的启发。
tensorflow提供了一种统一的格式来存储数据,这个格式就是TFRecord,TFRecord文件中的数据都是通过tf.train.Example Protocol Buffer的格式.proto来存储的。以下代码给出了tf.train.Example的定义。
网上关于VGG模型的文章有很多,有介绍算法本身的,也有代码实现,但是很多代码只给出了模型的结构实现,并不包含数据准备的部分,这让人很难愉快的将代码迁移自己的任务中。为此,这篇博客接下来围绕着如何使用VGG实现自己的图像分类任务,从数据准备到实验验证。代码基于Python与TensorFlow实现,模型结构采用VGG-16,并且将很少的出现算法和理论相关的东西。
本篇文章在上篇TensorFlow-手写数字识别(一)的基础上进行改进,主要实现以下3点:
由于工作繁忙原因,对人脸识别技术原理的连载停了一段时间,从今天开始尝试恢复回来。我们先回想一下前面完成的工作。这几节主要任务就是为神经网络的训练准备足够多的数据,第一步是创建不包含或者包含人脸部分小于30%的图片,我们从人脸图片数据集中的每张图片随机选取一个矩形区域,确定该区域与人脸区域不重合或重合部分少于30%,这部分数据我们成为neg,目的是告诉网络没有人脸的图片是怎样的。
本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79111949,感谢此博客作者。
概述关于tensorflow读取数据,官网给出了三种方法: 1、供给数据:在tensorflow程序运行的每一步,让python代码来供给数据 2、从文件读取数据:建立输入管线从文件中读取数据 3、预加载数据:如果数据量不太大,可以在程序中定义常量或者变量来保存所有的数据。 这里主要介绍一种比较通用、高效的数据读取方法,就是tensorflow官方推荐的标准格式:tfrecord。 tfrecord数据文件 tfrecord数据文件是一种将图像数据和标签统一存储的二进制文件,能更好的利用内存,在tenso
在利用深度学习算法搭建完成网络之后,我们要对网络进行训练,要训练网络就要有训练数据,通常我们会直接对硬盘上存放数据进行操作,来fetch到网络中。这样直接从硬盘上读取 数据太慢了,为了加快数据读取,今天我们介绍一种比较好的数据格式 tfrecord,那么什么是tfrecord呢?
在这一篇文章里,我们将继续上一篇文章的工作,并且在上一篇文章的前提下加入数据集的制作,最终我们将完成这个全连接神经网络的小栗子. 先说说我们上一篇文章我们的自制数据集的一切缺点,第一,数据集过于分散,在一个文件夹里读取难免导致内存利用率低,而我们将会使用TensorFlow的tfrecords()函数来讲图片和标签制作成这种二进制文件,这样我们的内存利用率会增加不少. 将数据保存为tfrecords文件可以视为这样一个流程: 提取features -> 保存为Example结构对象 -> TFRecordW
tf2相比于tf1来说更加的友好,支持了Eager模式,代码和keras基本相同,所以代码也很简单,下面就如何用tf2-yolov3训练自己的数据集。 项目的代码包:链接: tf2-yolov3.需要自行下载 至于tf2-yolov3的原理可以参考这个链接,我觉得是讲的最好一个:链接: yolov3算法的一点理解.
TFRecord 是谷歌推荐的一种二进制文件格式,理论上它可以保存任何格式的信息。TFRecord的核心内容在于内部有一系列的Example,Example是Protocol Buffer协议下的消息体。(Protobuf是Google开源的一款类似于Json,XML数据交换格式,其内部数据是纯二进制格式,不依赖于语言和平台,具有简单,数据量小,快速等优点。
2. 对接性:TensorFlow中也加入了高级API (Estimator、Experiment,Dataset)帮助建立网络,和Keras等库不一样的是:这些API并不注重网络结构的搭建,而是将不同类型的操作分开,帮助周边操作。可以在保证网络结构控制权的基础上,节省工作量。若使用Dataset API导入数据,后续还可选择与Estimator对接。
在 Object Detection API 的示例代码中包含了一个训练识别宠物的 Demo,包括数据集和相应的一些代码。虽然本课程中我们会自己准备数据和脚本来进行训练,但是在这之前还需要安装一些库、配置一下环境。在配置完成之后,运行一下这个训练宠物的 Demo,以便检查环境配置是否 OK,同时对训练过程先有个整体的了解,然后再准备自己的数据和训练脚本。 请确保已经安装好了 Python 2.7。 安装 Object Detection API 首先下载 Object Detection API 的代码:
之前写了一篇如何在windows系统上安装Tensorflow Object Detection API?
本章我们来介绍如何使用Tensorflow训练一个区分不同音频的分类模型,例如你有这样一个需求,需要根据不同的鸟叫声识别是什么种类的鸟,这时你就可以使用这个方法来实现你的需求了。话不多说,来干。
在这一篇文章里,我们将继续上一篇文章的工作,并且在上一篇文章的前提下加入数据集的制作,最终我们将完成这个全连接神经网络的小栗子.
最近秋色甚好,一场大风刮散了雾霾,难得几天的好天气,周末回家在大巴上看着高速两旁夕阳照射下黄澄澄的树叶,晕车好像也好了很多。 特地周六赶回来为了周末去拍点素材,周日天气也好,去了陕师大拍了照片和视频。 说正经的,如何来制作数据集。
TFRecords其实是一种二进制文件,虽然它不如其他格式好理解,但是它能更好的利用内存,更方便复制和移动,并且不需要单独的标签文件
参考 tf.python_io.TFRecordWriter() - 云+社区 - 腾讯云
这里要注意的是,TFrecord文件的格式定义中,一定要包含“image/encoded”和“image/format”两个关键字 ,第一个关键字的值为图像的二进制值,第二个为图像的格式。
本章介绍如何使用Tensorflow实现简单的声纹识别模型,首先你需要熟悉音频分类,没有了解的可以查看这篇文章《基于Tensorflow实现声音分类》。基于这个知识基础之上,我们训练一个声纹识别模型,通过这个模型我们可以识别说话的人是谁,可以应用在一些需要音频验证的项目。
注意:@tf.function修饰的函数内,尽量只用 tf 的内置函数,变量只用 tensor、numpy 数组
本文介绍了如何使用深度学习模型进行图像分类,并探讨了在训练和评估模型时出现的问题及解决方案。
需要注意的是,如下教程的tf.data的模块需要将tensorflow升级到1.4的版本,才可以支持,低于1.4的版本的导入数据教程,见之前的翻译教程,戳这里(https://www.jianshu.com/p/64bd6a49a94a) Dataset的API让你能从简单,可重用的模块中构建复杂的输入管道。例如一个图片模型的输入管道,可能要从分布式的文件系统中获得数据,对每张图片做随机扰动,以及将随机选取的图片合并到一个批次中用作训练。文本模型的输入管道可能涉及到从原始文本数据中提取符号,然后将其转换到查
作者:张旭 编辑:张欢 这是一篇以实践为主的入门文章,目的在于用尽量少的成本组织起来一套可以训练和测试自己的分类任务的代码,其中就会用到迁移学习,TF-Slim库的内容,所以我们分为下面几个步骤介绍:: 什么是迁移学习; 什么是TF-Slim; TF-Slim实现迁移学习的例程; 应用自己的数据集完成迁移学习。 操作系统:Win10 开发语言:Python3.5 算法:TensorFlow1.1 1 什么是迁移学习: 一般在初始化CNN的卷积核时,使用的是正态随机初始化,此时训练这个网
现在,有位热心公益的程序猿 (Yunyang1994) ,为它做了纯TensorFlow代码实现。
!!!num_epochs=None,不指定迭代次数,这样文件队列中元素个数也不限定(None*数据集大小)。
显杰,美团点评技术专家,2018年加入美团,目前主要负责配送算法数据平台深度学习相关的研发工作。
导读:ETA(预计送达时间预估)是配送调度环节中非常重要的一环,而且涉及的因素特别多。本文阐述了ETA深度学习技术迭代中的一些尝试及效果。
Tensorflow自从发布了object detection API这套对象检测框架以来,成为很多做图像检测与对象识别开发者手中的神兵利器,因为他不需要写一行代码,就可以帮助开发者训练出一个很好的自定义对象检测器(前提是有很多标注数据)。我之前曾经写过几篇文章详细介绍了tensorflow对象检测框架的安装与使用,感兴趣可以看如下几篇文章!
美美导读:ETA(预计送达时间预估)是配送调度环节中非常重要的一环,而且涉及的因素特别多。本文阐述了ETA深度学习技术迭代中的一些尝试及效果。
领取专属 10元无门槛券
手把手带您无忧上云