如何使用设置了“num_epochs”的“read_batch_examples”创建“input_fn”?

2023-12-31

我有一个基本的input_fn可以与下面的 Tensorflow 估计器一起使用。无需设置即可完美运行num_epochs范围;获得的张量具有离散形状。传入num_epochs与其他任何事物一样None结果是未知的形状。我的问题在于在使用时构建稀疏张量num_epochs;在不知道输入张量的形状的情况下,我无法弄清楚如何一般地创建所述张量。

谁能想到解决这个问题的方法吗?我希望能够通过num_epochs=1能够仅对数据集进行 1 次评估,并传递给predict产生一组与数据集大小相同的预测,不多也不少。

def input_fn(batch_size):
    examples_op = tf.contrib.learn.read_batch_examples(
        FILE_NAMES,
        batch_size=batch_size,
        reader=tf.TextLineReader,
        num_epochs=1,
        parse_fn=lambda x: tf.decode_csv(x, [tf.constant([''], dtype=tf.string)] * len(HEADERS)))

    examples_dict = {}
    for i, header in enumerate(HEADERS):
        examples_dict[header] = examples_op[:, i]

    continuous_cols = {k: tf.string_to_number(examples_dict[k], out_type=tf.float32)
                       for k in CONTINUOUS_FEATURES}

    # Problems lay here while creating sparse categorical tensors
    categorical_cols = {
        k: tf.SparseTensor(
            indices=[[i, 0] for i in range(examples_dict[k].get_shape()[0])],
            values=examples_dict[k],
            shape=[int(examples_dict[k].get_shape()[0]), 1])
        for k in CATEGORICAL_FEATURES}

    feature_cols = dict(continuous_cols)
    feature_cols.update(categorical_cols)
    label = tf.string_to_number(examples_dict[LABEL], out_type=tf.int32)

    return feature_cols, label

我通过创建一个特定于预期的函数解决了上述问题input_fn;它接受一个密集的列并在不知道形状的情况下创建一个稀疏张量。该功能是通过使用实现的tf.range and tf.shape。话不多说,这是工作通用的input_fn独立工作的代码num_epochs正在设置:

def input_fn(batch_size):
    examples_op = tf.contrib.learn.read_batch_examples(
        FILE_NAMES,
        batch_size=batch_size,
        reader=tf.TextLineReader,
        num_epochs=1,
        parse_fn=lambda x: tf.decode_csv(x, [tf.constant([''], dtype=tf.string)] * len(HEADERS)))

    examples_dict = {}
    for i, header in enumerate(HEADERS):
        examples_dict[header] = examples_op[:, i]

    feature_cols = {k: tf.string_to_number(examples_dict[k], out_type=tf.float32)
                    for k in CONTINUOUS_FEATURES}

    feature_cols.update({k: dense_to_sparse(examples_dict[k])
                         for k in CATEGORICAL_FEATURES})

    label = tf.string_to_number(examples_dict[LABEL], out_type=tf.int32)

    return feature_cols, label


def dense_to_sparse(dense_tensor):
    indices = tf.to_int64(tf.transpose([tf.range(tf.shape(dense_tensor)[0]), tf.zeros_like(dense_tensor, dtype=tf.int32)]))
    values = dense_tensor
    shape = tf.to_int64([tf.shape(dense_tensor)[0], tf.constant(1)])

    return tf.SparseTensor(
        indices=indices,
        values=values,
        shape=shape
    )

希望这对某人有帮助!

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

如何使用设置了“num_epochs”的“read_batch_examples”创建“input_fn”? 的相关文章

随机推荐

  • 如何从回调函数中中断Word2vec训练?

    我正在使用 gensim word2vec 训练 Skipgram 模型 我想在达到基于不同数据集的特定准确性测试的参数中传递的时期数之前退出训练 以避免模型过度拟合 gensim 有没有办法从回调函数中断 word2vec 的训练 如果事
  • 无符号算术和整数溢出

    我试图理解算术溢出 假设我有以下内容 unsigned long long x unsigned int y z x y z y z 可能导致整数溢出 将其中一个操作数转换为 unsigned long long 是否可以缓解此问题 64
  • 使用 jquery 在 div 内添加、调整大小、位置、颜色更改文本

    我期待创建一种非常简单的方法 允许用户在文本中书写 调整大小 位置或更改文本的颜色 div 我对 jQuery 了解一点 My HTML div class canvas div class u test class Testing div
  • Clojure - 将列表转换为 Java 数组

    除了首先将 Clojure 列表转换为向量并使用之外 是否有任何惯用的方法将 Clojure 列表转换为 Java 数组进入数组 意思是 除了 into array vec my list 因为我不想要额外的开销 你的问题似乎是基于一个错误
  • 基于索引列创建新列

    我有一个包含 n 个观察值的数据集和一个包含观察值索引的列 例如 col1 col2 col3 ID 12 0 4 1 6 5 3 1 5 21 42 2 并想根据我的索引创建一个新列 例如 col1 col2 col3 ID col ne
  • 如何从 Android 的 xml 字符串资源中检索 2D 数组?

    假设我在 android 资源中存储了一个二维数组 如下所示 如何将它们放入像 Arraylist 这样的 java 集合中
  • Google App Engine 上的 Spring security openid

    有人知道如何让 Spring security openid 在 Google App Engine 上工作吗 我试过了 但是有一个java security AccessControlException access denied err
  • 在 spacy 的帮助下合并几乎相似的行

    如果某些行几乎相似 我想合并它们 可以使用 spaCy 检查相似性 df string yellow color yellow color looks like yellow color bright red color okay red
  • 将数据传递到 django 表单

    class Test forms Form def set choices self choices self choices choices def get choices self return self choices options
  • 查看 TeamCity 服务消息

    我正在对 TeamCity 9 0 4 中的构建步骤进行故障排除 问题似乎出在服务消息输出中 构建完成后可以查看这些吗 它们不包含在构建日志中 关于服务消息的文档简单地说In order to be processed by TeamCit
  • 使用 jQuery 获取锚元素的绝对 URL

    给定一个锚元素 类似于 a first 如何获取锚点指向的绝对URL 如果您使用的是 jQuery 1 6 您可以使用 prop a first prop href 1 6之前 您可以访问href直接在 DOM 元素上使用属性 a firs
  • 访问结果集行中的值,其中该值来自 MySQL 函数调用

    因此 由于普通的 PHP 查询返回一个数组 所以从未向我解释过当列值是 MySQL 函数调用的返回值时 如何实际从查询的结果集数组中提取值 countThemes Singlequery SELECT COUNT 1 FROM items
  • 如何正确增加 mongoDB 中的多个日期?

    我不是一个特别擅长 Javascript 的人 我在尝试更新很多内容时遇到了一些麻烦DateMongo 中的对象 看起来 inc尚未实施Date objects https jira mongodb org browse SERVER 31
  • Facebook OAuth api 登录问题

    我对用于登录的 Facebook API 感到困惑 我在网上找不到任何有用的信息 我的 FB 会话委托方法没有被调用 并且访问令牌和过期日期值没有被设置 所以我认为我从未登录过 我恢复到一个非常简单的应用程序 只有两个按钮 登录 注销 和一
  • openFrameworks 与处理

    我已经阅读了很多有关 openFrameworks 和 Processing 的内容 但仍然无法区分 除了一个是 C 中的 另一个是 Java 中的 有人能告诉我哪个具体是做什么用的吗 你是对的 一个是 C 另一个是 Java 这些差异适用
  • Graphql: "message": "ID 不能代表值: 5a72240cf31713598588b70f"

    I use moongose与 一起工作mongodb on nodejs基于应用程序 目前 我尝试实施Grapqhl基于API 我的查询graphql架构如下所示 const schema buildSchema type Query p
  • ng-show 当数组长度为零时

    我是 AngularJS 的初学者 我试图在过滤过程中在 的帮助下显示 未找到标签 ng show JS function simpleController scope scope tags HTML CSS Jquery Bootstra
  • 如何在 bookshelf.js 中获取 SQLSTATE?

    在与 PostgreSQL 或其他 RDBMS 通信时 如何检测 bookshelf js 中发生的错误类型 提示者 这个问题 https stackoverflow com q 43815157 398670 我自己不使用 bookshe
  • 如何在 PHP 中转义引号? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有那个代码 a href Add an Img a 我不知道如何把它放在这里echo code 这会起作用 已测试
  • 如何使用设置了“num_epochs”的“read_batch_examples”创建“input_fn”?

    我有一个基本的input fn可以与下面的 Tensorflow 估计器一起使用 无需设置即可完美运行num epochs范围 获得的张量具有离散形状 传入num epochs与其他任何事物一样None结果是未知的形状 我的问题在于在使用时