我最近用过
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
禁止在tensorflow中使用我的GPU。但是,当我开始使用终端中的未设置CUDA_VISIBLE_DEVICES 重新启用它时。下次我跑时遇到这个错误
tensorflow.python.framework.errors_impl.InvalidArgumentError:无法为操作Conv_1_bn_1 / gamma / Initializer / ones分配设备:无法满足显式设备规范”,因为节点{{colocation_node Conv_1_bn_1 / gamma / Initializer / ones}}与一组不兼容设备'/ job:localhost / replica:0 / task:0 / device:GPU:0'的节点共存。所有可用设备[/ job:localhost /副本:0 /任务:0 /设备:CPU:0,/ job:localhost /副本:0 /任务:0 /设备:XLA_CPU:0]。
和
根成员(assigned_device_name_index _ =-1 requested_device_name _ ='/ job:localhost /副本:0 / task:0 / device:GPU:0'assigned_device_name _ ='/ job:localhost /副本:0 / task:0 / device: CPU:0'resource_device_name _ ='/ device:GPU:0'support_device_types _ = [CPU,XLA_CPU]可能_devices _ = []
我知道我的GPU可从
获得from tensorflow.python.client import device_lib
device_lib.list_local_devices()
返回
.......
incarnation: 351568001108855942
physical_device_desc: "device: XLA_CPU device"
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 5729157120
locality {
bus_id: 1
links {
}
}
我还尝试了卸载并重新安装tensorflow和tensorflowgpu。我将非常感谢您提供的所有帮助-谢谢。
答案 0 :(得分:1)
要解决此问题,我现在将这一行代码放在顶部
sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 1}))
从现在开始,我将仅通过使用
禁用gpu{'GPU': 0}
我强烈建议将其用作os.environ的替代方案