如何将 CSV 数据转换为 TFRecord 文件

Timberghost_

目前我正在开发一个可以从 CSV 文件中获取数据并将其导入到 TFRecord 文件的系统,但是我有几个问题。

首先,我需要知道当使用 CSV 类型被删除时,TFRecord 文件可以采用什么类型。

其次,如何将数据 type:object 转换为 TFRecord 可以采用的类型?

我有两个字符串对象类型的两列(将在下面发布示例),如何将该数据转换为 TFRecords 的正确类型?

当导入我希望一次将每一行的数据附加到 TFRecord 文件中时,任何建议或文档都会很棒,我一直在寻找这个问题的一段时间,似乎只能输入整数,浮点数到 TFRecord但是整数列表/数组呢?

感谢您的阅读!

快速说明,我正在使用 PANDAS 创建 CSV 文件的数据框

我使用的一些示例代码

import pandas as pd
from ast import literal_eval
import numpy as np
import tensorflow as tf


tf.compat.v1.enable_eager_execution()


def Start():
    db = pd.read_csv("I:\Github\ClubKeno\Keno Project\Database\..\LotteryDatabase.csv")

    pd.DataFrame = db
    print(db['Winning_Numbers'])
    print(db.dtypes)

    training_dataset = (
        tf.data.Dataset.from_tensor_slices(
            (
                tf.cast(db['Draw_Number'].values, tf.int64),
                tf.cast(db['Winning_Numbers'].values, tf.int64),
                tf.cast(db['Extra_Numbers'].values, tf.int64),
                tf.cast(db['Kicker'].values, tf.int64)
            )
        )
    )

    for features_tensor, target_tensor in training_dataset:
        print(f'features:{features_tensor} target:{target_tensor}')

错误信息:

错误信息

CSV 数据

更新:使用以下功能获得两列约会工作...

dataset = tf.data.experimental.make_csv_dataset(
        file_pattern=databasefile,
        column_names=['Draw_Number', 'Kicker'],
        column_defaults=[tf.int64, tf.int64],
    )

但是,当尝试包含我的其他两个列对象类型时(这两列中的数据是什么样的) "3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80"

我收到一个错误,这是我为此尝试的功能

    dataset = tf.data.experimental.make_csv_dataset(
        file_pattern=databasefile,
        column_names=['Draw_Number', 'Winning_Numbers', 'Extra_Numbers', 'Kicker'],
        column_defaults=[tf.int64, tf.compat.as_bytes, tf.compat.as_bytes, tf.int64],
        header=True,
        batch_size=100,
        field_delim=',',
        na_value='NA'
    )

出现此错误:

TypeError: Failed to convert object of type <class 'function'> to Tensor. Contents: <function as_bytes at 0x000000EA530908C8>. Consider casting elements to a supported type.

我应该尝试将这两种类型投射到函数之外,然后尝试将其与函数中的 tf.data 一起合并到 TFRecord 文件中make_csv_dataset吗?

沙哈拉瓦

首先,我需要知道当使用 CSV 类型被删除时,TFRecord 文件可以采用什么类型。

TFRecord 接受以下数据类型 - 字符串、字节、float32、float 64、bool、enum、int32、int64、uint32、uint64在这里谈过

其次,如何将数据 type:object 转换为 TFRecord 可以采用的类型?

是 TF 的一个例子,一下子消化它有点复杂,但如果你仔细阅读它很容易。

有两个对象类型的两列(将在下面发布示例)是字符串,如何将该数据转换为 TFRecords 的正确类型?

对于字符串类型数据,您需要tf.train.BytesList从字符串返回一个 bytes_list。

当导入我希望一次将每一行的数据附加到 TFRecord 文件中时,任何建议或文档都会很棒,我一直在寻找这个问题的一段时间,似乎只能输入整数,浮点数到 TFRecord但是整数列表/数组呢?

快速说明,我正在使用 PANDAS 创建 CSV 文件的数据框

我建议您使用tf.data.experimental.make_csv_datasetdefined here,而不是使用 Pandas 读取 csv 文件这将使这个转换过程比 Pandas 快得多,并且可以减少使用 TF 类的兼容性问题。如果您使用此功能,那么您将不需要逐行读取 csv 文件,而是一次使用map()which uses eager execution. 是一个很好的入门教程。

不小心编辑了帖子的错误部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将csv文件转换为TFrecord tensorFlow格式?

将数据列表转换为 csv 文件

如何将txt文件转换为CSV文件?

如何将 .log 文件转换为 .csv 文件

如何将.sav文件转换为csv文件

如何将 csv 文件转换为 json 格式的文件?

如何将大型.sav文件转换为csv文件

如何将导入到python中的数据从csv文件转换为时间序列?

如何将具有“太多列”的大型 .csv 文件转换为 SQL 数据库

如何将 csv 数据从文件选择器转换为动态列表?

如何将深度嵌套的JSON文件转换为CSV?

如何将CSV文件转换为RDD

如何将CSV文件转换为OpenTSDB格式

如何将本地ORC文件转换为CSV?

如何将csv文件转换为ByteArrayResource

如何将.txt / .csv文件转换为ORC格式

如何将CSV文件转换为多行JSON?

如何将str从文件csv转换为int

如何将CSV文件转换为python字典

如何将合并列的xls文件转换为csv?

如何将随机生成的图形转换为csv文件?

如何将 EEBCDIC 文件格式转换为 csv

如何将CSV文件转换为XML?

如何将 .csv 文件转换为 RDD<Vector>?

Tensorflow a2.0.0:将CSV转换为tfrecord,创建一个Keras模型,该模型使用来自大型来源的管道数据并将权重存储到CSV文件?

将原始日志文件数据转换为CSV文件

如何将Float数组/列表转换为TFRecord?

使用JMETER CSV Date set config时如何将请求正文中的CSV文件中的数据转换为JSON

通过 python 数据框将 XML 文件转换为 CSV