【问题标题】:Which memory does the Tensorflow programs use to store the data?Tensorflow 程序使用哪个内存来存储数据?
【发布时间】:2019-09-22 03:38:45
【问题描述】:

我认为以下情况。

  1. 使用带有 GPU 的 TensorFlow 构建 ML 模型以解决图像分类问题
  2. 要加载图像,使用枕头和预处理,使用 numpy
  3. ML 模型在 tf.placeholder 中获取输入数据

我了解 tensorflow-gpu 在可能的情况下使用 GPU 上的 RAM 将参数存储为默认值。但是对于传递给 tf.placeholder 之前的输入数据,它存储在哪个 RAM 中,RAM 用于 CPU 还是用于 GPU?

【问题讨论】:

    标签: python tensorflow gpu ram


    【解决方案1】:

    根据定义,placeholder 在输入之前没有数据。在这里做出许多假设,除非您通过tf.constant() 将数据全部复制到 GPU 内存,如果您的数据集适合可用的 GPU 内存,则可以这样做,数据存在于 CPU/系统内存中,需要复制到显卡内存。

    根据您在第 1 步和第 2 步中的描述,它看起来类似于 here. 所述的幼稚实现/缺乏流水线操作

    但是,在简单的同步实现中,当 CPU 准备数据时,加速器处于空闲状态。相反,当加速器训练模型时,CPU 处于空闲状态。因此,训练步骤时间是 CPU 预处理时间和加速器训练时间的总和。

    在训练步骤之前,您的数据存在于 CPU/系统内存中。

    【讨论】:

    • 谢谢,所以如果我将所有数据作为列表或 numpy 数组,并使用生成器将一些数据作为批处理提供给占位符,那么整个数据不会分配到 CPU 内存中,对吧?
    • 我不确定你的意思,数据存在于 CPU 内存中,直到它被复制到 GPU 内存中。此时,无论是子集/批次还是整个数据集,已复制的任何数据都将存在于 CPU 和 GPU 内存中。
    猜你喜欢
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多