尝试在tensorflow XLA jit_scope上下文管理器下的Keras中定义顺序模型时出现ResourceExhaustedError

时间:2018-09-30 17:01:42

标签: python tensorflow keras tensorflow-xla

所以,我的问题是我尝试使用templateUrl:通过嵌入TensorFlow 1.8的Keras使用XLA进行CPU处理(对于CPU,这是我知道使用tf.contrib.compiler.jit.experimental_jit_scope启用XLA的唯一方法对我来说在CPU上不起作用)。出于某些奇怪的原因,尝试分配0字节时,我被抛出ConfigProto。在TensorFlow或Keras中看起来好像有问题。有人可以帮我使它正常工作吗?

我的设置是:

  • Intel i5-2430M,6 GB RAM
  • Linux Ubuntu 16.04 | Python 3.6.5 | Bazel 0.16.0 | GCC 5.4.0
  • 从MKL和XLA支持的源代码中编译的TensorFlow 1.8

我在TensorFlow的GitHub页面here上打开了一个问题,但被告知这似乎不是一个错误,并向StackOverflow提问,所以我在这里。

下面是我使用的代码清单和完整的跟踪记录。

代码

ResourceExhaustedError

追踪

import tensorflow as tf
from tensorflow.python.client import timeline

import numpy as np

JIT_SCOPE = tf.contrib.compiler.jit.experimental_jit_scope

options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)                   
run_metadata = tf.RunMetadata()

(train_x, train_y), _ = tf.keras.datasets.mnist.load_data()

train_x = np.expand_dims(train_x, axis=-1) / 255.
train_y = tf.keras.utils.to_categorical(train_y)

with JIT_SCOPE():                                                               
    model = tf.keras.models.Sequential([
        tf.keras.layers.Conv2D(16, (3, 3), activation="relu", input_shape=(28, 28, 1)),
        tf.keras.layers.MaxPool2D((2, 2)),
        tf.keras.layers.Flatten(),
        tf.keras.layers.Dense(10, activation="softmax")
    ])

    model.compile("sgd", "categorical_crossentropy", options=options, run_metadata=run_metadata)

model.fit(train_x, train_y) # error happens at this moment

trace = timeline.Timeline(step_stats=run_metadata.step_stats)
with open("timeline.ctr.json", "w") as f:
    f.write(trace.generate_chrome_trace_format())

0 个答案:

没有答案