【问题标题】:indexing problem when calling fit() function调用 fit() 函数时的索引问题
【发布时间】:2019-11-17 10:23:23
【问题描述】:

我目前正在开发一个 nn 的 project,以玩类似于 atari 游戏的游戏(链接中的更多详细信息)。我在索引时遇到问题。也许有人知道可能是什么问题?因为我似乎找不到它。感谢您的时间。这里是my code(点击链接)这里是full traceback。问题从我打电话的方式开始

history = network.fit(state, epochs=10, batch_size=10) // in line 82

【问题讨论】:

    标签: neural-network conv-neural-network


    【解决方案1】:

    看到这个帖子:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

    如正确答案所述,

    现代 CPU 提供了许多低级指令,除了通常的算术和逻辑,称为扩展,例如SSE2、SSE4、AVX等来自Wikipedia

    警告表明您的 CPU 确实支持 AVX(万岁!)。

    差不多,AVX 加速了你的训练等等。可悲的是,tensorflow 说他们不会使用它......为什么?

    因为 tensorflow 默认发行版是在没有 CPU 扩展的情况下构建的,例如 SSE4.1、SSE4.2、AVX、AVX2、FMA 等。默认构建(来自 pip install tensorflow 的构建)旨在与尽可能多的 CPU 兼容尽可能。另一个论点是,即使有了这些扩展,CPU 的速度也比 GPU 慢很多,而且预计在 GPU 上执行中型和大型机器学习训练。

    你该怎么办?

    如果您有 GPU,则不必关心 AVX 支持,因为大多数昂贵的操作都将在 GPU 设备上调度(除非明确设置为不)。在这种情况下,您可以通过以下方式忽略此警告:

    # Just disables the warning, doesn't enable AVX/FMA
    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
    

    如果您没有 GPU 并希望尽可能多地利用 CPU,则应从针对您的 CPU 优化的源构建 TensorFlow,并启用 AVX、AVX2 和 FMA(如果您的 CPU 支持)。已在 this questionthis GitHub issue 中讨论过。 Tensorflow 使用一个名为bazel 的临时构建系统,构建它并不是那么简单,但肯定是可行的。在此之后,不仅警告会消失,tensorflow 的性能也应该会有所提升。

    你可以在this StackOverflow question找到所有的细节和cmets。

    注意:这个答案是我专业复制粘贴的产物。

    编码愉快,
    鲍贝

    【讨论】:

      【解决方案2】:

      代码是否被逐行调试过?因为这会追溯到导致错误的行。

      我假设索引错误是从下面出现的 - 可以检查 "i" 和其他目标 [i] , outs[i] 的值 -

      per_sample_losses = loss_fn.call(targets[i], outs[i])

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 2021-10-12
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        相关资源
        最近更新 更多