猿问

删除操作图张量流以在 CPU 上运行

我已经训练了一个网络(使用 GPU),现在我想在 CPU 上运行它(用于推理)。为此,我使用以下代码加载元图,然后加载网络参数。


config = tf.ConfigProto(

        device_count = {'GPU': 0}

    )

sess = tf.Session(config=config)

meta_graph=".../graph-0207-190023.meta"

model=".../model.data-00000-of-00001"


new_saver = tf.train.import_meta_graph(meta_graph)

new_saver.restore(sess, model)

问题是,由于已经定义了用于训练的图,因此我使用了一些不在 CPU 上运行的特定操作。例如,“MaxBytesInUse” https://www.tensorflow.org/api_docs/python/tf/contrib/memory_stats/MaxBytesInUse其中记录了GPU的活动。


这就是为什么当我尝试运行此代码时,出现以下错误:


InvalidArgumentError: No OpKernel was registered to support Op 'MaxBytesInUse' with these attrs.  Registered devices: [CPU], Registered kernels:

  device='GPU'


     [[Node: PeakMemoryTracker/MaxBytesInUse = MaxBytesInUse[_device="/device:GPU:0"]()]]

是否有一种简单的方法可以删除特定的 GPU 相关操作并在 CPU 上运行图形?


繁星coding
浏览 243回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答