数据转换成tfrecord类型并完成读取

2023-05-16

前提:

tensorflow --1.13.1
numpy --1.16.2
python --3.6.5

本例转换 泰坦尼克号数据集
链接 密码:n8wz
数据预览:
在这里插入图片描述

字段说明:

PassengerId ,乘客的id号,这个我觉得对生存率没影响。因为一个人的id号不会影响我是否生存下来吧。这列可以忽略

Survived ,生存的标号,上面图的数值1表示这个人很幸运,生存了下来。数值0,则表示遗憾。

Pclass ,船舱等级,就是我们坐船有等级之分,像高铁,飞机都有。这个属性会对生产率有影响。因为一般有钱人,权贵才会住头等舱的。保留。

Name ,名字,这个不影响生存率。我觉得可以不用这列数据。可以忽略

Sex , 性别,这个因为全球都说lady first,女士优先,所有这列保留。

Age , 年龄,因为优先保护老幼,这个保留。

SibSp ,兄弟姐妹,就是有些人和兄弟姐妹一起上船的。这个会有影响,因为有可能因为救他们而导致自己没有上救生船船。保留这列

Parch , 父母和小孩。就是有些人会带着父母小孩上船的。这个也可能因为要救父母小孩耽误上救生船。保留

Ticket , 票的编号。这个没有影响吧。

Fare , 费用。这个和Pclass有相同的道理,有钱人和权贵比较有势力和影响力。这列保留

Cabin ,舱号。住的舱号没有影响。忽略。

Embarked ,上船的地方。这列可能有影响。我认为登陆地点不同,可能显示人的地位之类的不一样。我们先保留这列。

字段类型:

在这里插入图片描述

1.csv数据转换成tfrecord

这里取了7个进行后续分析,所以只保存其中7个参数

def transform_to_tfrecord():
    data=pd.read_csv('./data/Titanic-dataset/train.csv')
    tfrecord_file='train.tfrecords'
    def int_feature(value):
        return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
    def float_feature(value):
        return tf.train.Feature(float_list=tf.train.FloatList(value=[value]))
    writer=tf.python_io.TFRecordWriter(tfrecord_file)
    for i in range(len(data)):
        features=tf.train.Features(feature={
            "Age":float_feature(data['Age'][i]),
            "Survived":int_feature(data['Survived'][i]),
            "Pclass":int_feature(data['Pclass'][i]),
            "Parch":int_feature(data['Parch'][i]),
            "SibSp":int_feature(data['SibSp'][i]),
            "Sex":int_feature(1 if data['Sex'][i]=='male' else 0),
            "Fare":float_feature(data['Fare'][i]),
        })
        example=tf.train.Example(features=features)
        writer.write(example.SerializeToString())
    writer.close()

2.tfrecord数据读取

def read_and_decode(train_files,num_threads=2,num_epochs=100,batch_size=10,min_after_dequeue=10):
    reader=tf.TFRecordReader()
    filename_queue=tf.train.string_input_producer(
        train_files,
        num_epochs=num_epochs)
    _,serialized_example = reader.read(filename_queue)
    featuresdict=tf.parse_single_example(
    serialized_example,
    features={
        'Survived':tf.FixedLenFeature([],tf.int64),
        'Pclass':tf.FixedLenFeature([],tf.int64),
        'Parch':tf.FixedLenFeature([],tf.int64),
        'SibSp':tf.FixedLenFeature([],tf.int64),
        'Sex':tf.FixedLenFeature([],tf.int64),
        'Age':tf.FixedLenFeature([],tf.float32),
        'Fare':tf.FixedLenFeature([],tf.float32),})
    labels=featuresdict.pop('Survived')
    features=[tf.cast(value,tf.float32) for value in featuresdict.values()]
    features,labels=tf.train.shuffle_batch(
        [features,labels],
        batch_size=batch_size,
        num_threads=num_threads,
        capacity=min_after_dequeue + 3 * batch_size,
        min_after_dequeue=min_after_dequeue)
    return features,labels

def train_with_queuerunner():
    x,y=read_and_decode(['./data/Titanic-dataset/train.tfrecords'])
    with tf.Session() as sess:
        tf.group(tf.global_variables_initializer(),
                tf.local_variables_initializer()).run()
        coord=tf.train.Coordinator()
        threads=tf.train.start_queue_runners(sess=sess,coord=coord)
        try:
            step=0
            while not coord.should_stop():
                features,lables=sess.run([x,y])
                if step % 100==0:
                    print('step %d:'%step,lables)
                step += 1
        except tf.errors.OutOfRangeError:
            print('Done training -- epoch limit reached')
        finally:
            coord.request_stop()
        coord.join(threads)

       从TFRecord文件中读出数据,使用TFRecordReader。TFRecordReader是一个算子,因此TensorFlow能够记住tfrecords文件读取的位置,并且始终能返回下一条记录。

       tf.train.string_input_producer方法用于定义TFRecord文件作为模型结构的输入部分。该函数输入文件名列表在Session运行时产生文件路径字符串循环队列。

       根据产生的文件名,TFRecordReader.read方法打开文件,再由tf.parse_single_example方法解析成一条可用的数据。tf.train.shuffle_batch可以设置内存读取样本的上限与上限训练batch批次的大小等参数,用于定义产生随机生成的batch训练数据包。

       在Session的运行中,tf.train.shuffle_batch函数生成batch数据包的过程是作为线程独立运行的。数据输入线程的挂起和运行时机由batch数据的生成函数控制。本例中的tf.train.shuffle_batch函数指定内存保存样本数量的上限capacity和下限min_after_dequeue。当内存的样本数量大于上限capacity时,数据输入线程挂起。反之,当样本数量小于min_after_dequeue时,训练程序挂起。函数start_queue_runners开启对应运行回话Session的所有线程队列并返回线程句柄。Coordinator类对象负责实现数据输入线程的同步。当string_input_producer函数产生无限循环队列时,应取消数据输入与训练程序的线程同步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据转换成tfrecord类型并完成读取 的相关文章

  • 【报错】GitHub 配置域名但是显示 Domain does not resolve to the GitHub Pages server... 怎么办

    应该只是域名解析需要时间 xff0c 反正我1小时后看就正常了 xff08 提示变绿了 xff09 xff0c 等等吧 xff08 24小时内都正常 xff09
  • 计算机论文常见词汇

    quantization kw nt ze n n 量子 量子化 xff1b 分层 xff1b 数字化 differentiating 英 d f ren e t 美 d f r n et v 区别 xff0c 区分 xff1b 使不同 x
  • 每日固定时间执行一次的shell实现

    在不使用crontab定时任务的情况下 xff0c 我们如何去实现每日定时执行某个任务的工作呢 xff1f 我遇到了类似问题 xff0c 遂转换思路 xff0c 花几分钟写了个小脚本实现如下 xff1a bin bash 每日7点执行 ct
  • FTPClient上传文件storeFile失败,没有异常,切换目录操作可以成功

    FTPClient上传文件storeFile失败 xff0c 没有异常 xff0c 切换目录操作可以成功 解决方法 xff1a 有没有设置被动模式 防火墙 有没有设置被动模式 要执行下面的语句 ftpClient span class to
  • 知识图谱-命名实体-关系-免费标注工具-快速打标签-Python3

    知识图谱 命名实体 关系 免费标注工具 快速打标签 Python3 一 功能介绍1 代码文件夹结构2 运行环境3 自定义命名实体 关系模板4 导入文件5 选择自定义实体和关系文件6 文本标注7 撤销和取消标注8 导出和导出并退出系统9 导出
  • Ubuntu报错:Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

    之前在Ubuntu系统安装Navicat的时候出现了这样的问题 xff0c 难为自己半天 首先是下载文件 xff0c 出现报错 xff1a navicat16 mysql cs AppImage error while loading sh
  • linux中crontab的jar文件定时任务失败原因记录

    本文章作为备忘 xff0c 若能解决朋友们的遇到的问题 xff0c 再好不过 在创建定时任务时 xff0c 所有的路径都需要写绝对路径 xff0c 包括配置文件 若定时文件为定时执行sh文件 xff0c 而sh文件中需要的配置文件也需要写绝
  • docker安装MongoDB以及redis

    一 安装Redis 以redis 4 0 9版本为例 docker pull redis 4 0 9 span class token function mkdir span usr local docker redis data span
  • linux安装好的mysql rpm -qa |grep mysql不见

    输入 xff1a rpm qa grep i mysql
  • MariaDB导入XXX.sql文件

    使用的 MariaDB5 5 52 开启数据库服务 xff1a systemctl start mariadb 要使用该脚本 xff0c 登录数据 xff0c mysql u root p 根据提示输入你安装数据库时需设置密码 xff0c
  • BaseOs之:Error: No available modular metadata for modular package

    文章目录 Error No available modular metadata for modular package先下载rpm包 xff1a 安装modular metadata生成工具 随便找一个目录 xff0c 执行git clo
  • BaseOs之:网络yum源部署

    文章目录 参考阿里mirror aliyum源 x86 arm source站点目录结构 简单分析 每个目录站点详细结构 x86 64为例 简单分析 制作x86 64的yum源 创建Packages与debug目录 复制x86 64 noa
  • Shell脚本加入开机自启动的方法:

    Shell脚本加入开机自启动的方法 xff1a Linux中脚本设定开机自启动 方法一 xff1a 1 xff0c 在某个目录下创建脚本 xff1a 例如 xff1a root hello wei sh span class token p
  • createrepo

    createrepo 是一个对rpm 文件进行索引建立的工具 大体功能就是对指定目录下的rpm文件进行检索 xff0c 把每个rpm文件的信息存储到指定的索引文件中 xff0c 这样方便远程yum命令在安装更新时进行检索 看下creater
  • 自动汇报错误工具(ABRT)

    ABRT 是一套抱著三个目标而开发出来的规模工具 xff1a 简化用户汇报软件问题的程序 在提交给开发者的报告中提供全面的信息 提供重要的故障数据以便排列优先次序及安排支持 假如你有兴趣协助开发者排列他们的工作的优先次序 xff0c 而你愿
  • centos8系module软件包管理仓库部署

    简述 CentOS8 引入新的module软件包管理机制 下面将介绍如何部署搭建本地module源 部署流程 xff1a 思路 xff1a 先制作nginx 1 14的module yaml xff08 需要微调 xff09 xff0c 然
  • grub rescue救援模式的处理

    grub rescue救援模式的处理 来源 xff1a https www cnblogs com itcomputer articles 4182344 html 我的linux在调整分区后 xff0c 出现了grub rescue gt
  • gitlab自定义头像设置

    这里写自定义目录标题 选一个自己喜欢的头像放在自建nginx服务中 可放在gitlab的nginx中 xff1a 设置gitlab修改配置 etc gitlab gitlab rb 重新加载gitlab配置最终效果 选一个自己喜欢的头像放在
  • 【无标题】

    https www cnblogs com liujuncm5 p 6713784 html 一 依赖安装 yum install y gcc c 43 43 pcre pcre devel zlib zlib devel openssl
  • shell:批量下载epel源rpms

    span class token keyword for span span class token for or select variable i span span class token keyword in span span c

随机推荐

  • linux静动态依赖

    安装glibc static usr bin ld cannot find lpthread usr bin ld cannot find lc
  • 修改ftp根目录

    修改 etc vsftpd vsftpd conf xff0c 加入如下三行 xff1a local root 61 chroot local user 61 YES anon root 61 local root表示使用本地用户登录到ft
  • 基于深度学习的医学图像配准综述

    原文转自 xff1a https blog csdn net weixin 41699811 article details 84314070 版权声明 xff1a 本文为CSDN博主 Timmymm 的原创文章 xff0c 遵循 CC 4
  • C语言实现生产者消费者模型(线程、信号量、互斥锁)

    三个概念 xff1a 生产者消费者模型 线程 信号量 1 生产者消费者模型 利用生活中的例子 xff0c 生产者生产商品 xff0c 商品放在超市 xff0c 消费者去超市购买 使用 商品 xff0c 也就是生产者消费者模型 生产者生成一定
  • Linux Deepin [解决] - 您也许需要运行“apt --fix-broken install”来修正上面的错误。

    问题来源 Os Linux Deepin 20 社区 在星火商店下载了网易云音乐的包 xff0c 用深度安装器安装 xff0c 能用能调节窗口大小 xff0c 但是字体大小不能调剂 emmm高分屏用户哭了后悔自己买那么高的玩意 于是右键卸载
  • C++判断素数(求素数)

    一个大于1的自然数 xff0c 且除了1和它本身外 xff0c 不能被其他自然数整除的数叫素数 换句话说就是 xff0c 除了1和该数本身以外不再有其他的因数的数被称为素数 判断m是否是素数的算法是 xff1a m在区间 1 xff0c s
  • Arch Linux wine 微信、heidissql、chrome - AUR heplers - yay

    Intro span class token function uname span a Linux arch 5 10 16 arch1 1 span class token comment 1 SMP PREEMPT Sat 13 Fe
  • C语言-基础例题55道

    1 简单程序设计 编程写程序 xff0c 在屏幕上输出信息 xff1a Happy New Year 输出图形 include lt stdio h gt void main printf 34 Happy New Year n 34 2
  • Python 端口扫描器

    目录 前言一 TCP全连接二 程序编写1 获得主机名和端口2 解析主机名和端口3 抓取应用的Banner4 线程扫描5 信号量机制 总结 前言 任何一个靠谱的网络攻击都是起步于侦查的 在这里 xff0c 我们将使用Python来编写一个扫描
  • linux 实现开机自动登陆

    1 Linux实现开机自动登陆 可以指定登陆的账户 在登陆Linux系统的时候 xff0c 在登陆界面往往需要输入密码后进行登陆 xff0c 如果想实现Linux锡系统开机后自动登陆某个账户 xff0c 可以进行如下的设置 xff1a 可以
  • python中@statimethod和@clasmetod的简单理解

    1 64 statimethod xff1a 加上这一句话 xff0c 不需要实例化即可调用类方法 举例如下 xff1a 但我发现 xff0c 只要定义方法时加了self 再用静态方法会一直报错 实例化和非实例化都会报错 2 64 clas
  • 长文慎入,如何快速开发区块链游戏

    长文慎入 xff0c 如何快速开发区块链游戏 译者注 xff1a 原文 xff1a 初始发行Enjin整合初始整合客户端SDK GUI客户端SDK APIEnjin的API是GraphQL Enjin推荐使用服务器排列你的物品并分批发送存储
  • Nginx配置文件(nginx.conf)配置详解

    Nginx配置文件nginx conf中文详解 定义Nginx运行的用户和用户组user www www nginx进程数 xff0c 建议设置为等于CPU总核心数 worker processes 8 全局错误日志定义类型 xff0c d
  • 【有机】提纲整理1——化学基础

    周环反应 元素 xff08 磷硫硅 xff09 金属有机 生物有机 天然产物 含氮化合物 含氧化合物 醇 酚 醚 醛 酮 醌 羧酸及其衍生物 卤代烷 碳氢化合物 烷烃 烯烃 炔烃 苯 历史 结构 命名 波谱 立体化学 1 原子结构与化学键的
  • 求二叉树的高度

    二叉树高度是二叉树的重要知识点 xff0c 在日常练习中我们会经常碰见这种类型的题目 求解二叉树的高度可以用递归方式 递归求解二叉树高度 int GetHeight BinTree BT int h1 int h2 if BT return
  • Linux开启ssh远程登录

    Linux配置ssh 开启远程登录 你好 xff01 这里介绍了Linux系统Centos Ubuntu环境下开启ssh的方法 一 CentOS开启SSH服务 安装openssh server xff1b yum list installe
  • Python 中if...else语法和作用、执行流程

    一 if else语法 作用 xff1a 条件成立执行if下方的代码 xff0c 条件不成立执行else下方的代码 案例说明 xff1a 比如拿成年网吧上网的例子 xff0c 如果成年 xff0c 就允许上网 xff0c 如果不成年 xff
  • Ubuntu20.04安装ssh并开启远程访问登录

    1 安装openssh server 打开终端安装openssh server软件包 xff1a span class token function sudo span span class token function apt span
  • pixhawk在启动jmavsim时,启动不了

    lcg 64 ubuntu src Firmware sudo make px4 sitl jmavsim 1 1 cd home lcg src Firmware build cg src Firmware build px4 sitl
  • 数据转换成tfrecord类型并完成读取

    前提 xff1a tensorflow 1 13 1 numpy 1 16 2 python 3 6 5 本例转换 泰坦尼克号数据集 链接 密码 xff1a n8wz 数据预览 xff1a 字段说明 xff1a PassengerId xf