Я обучил модель на графическом процессоре, и теперь я пытаюсь оценить ее на процессоре (графический процессор используется для другого поезда). Однако, когда я пытаюсь загрузить его, используя:
with tf.device('/cpu:0'):
model = tf.keras.models.load_model('models/resnet50_untrained.h5', compile=False)
, я получаю CUDA_ERROR_OUT_OF_MEMORY
:
2019-10-17 09:25:23.088408: W tensorflow/compiler/xla/service/platform_util.cc:256] unable to create StreamExecutor for CUDA:0: failed initializing StreamExecutor for CUDA device ordinal 0: Internal: failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_OUT_OF_MEMORY: out of memory; total memory reported: 7981694976
2019-10-17 09:25:23.088505: F tensorflow/stream_executor/lib/statusor.cc:34] Attempting to fetch value instead of handling error Internal: no supported devices found for platform CUDA
(я также пытался установить compile=True
с тем же результатом.)
Кажется, что модель загружается в графический процессор, который уже используется другим экземпляром. Как я могу заставить keras / tenorflow загружать его в системную память и запускать его на CPU?