StyleGAN 图像生成不起作用,TensorFlow 看不到 GPU



重新安装 Ubuntu 18.04(仿生海狸(后,我无法再使用 StyleGAN 代理生成图像。我收到的错误消息是InvalidArgumentError: Cannot assign a device for operation Gs_1/_Run/Gs/latents_in: {{node Gs_1/_Run/Gs/latents_in}}was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0, /job:localhost/replica:0/task:0/device:XLA_CPU:0, /job:localhost/replica:0/task:0/device:XLA_GPU:0 ]. Make sure the device specification refers to a valid device.

我有 CUDA 10.1,我的驱动程序版本是 418.87。此处提供了 Conda 环境的 YAML 文件。我使用 pip 安装了 tensorflow-gpu==1.14。

在这里,您可以找到我用来生成图像的Jupyter Notebook文档。

如果我按照建议使用命令检查可用资源

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

我明白答案

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 7185754797200004029
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 18095173531080603805
physical_device_desc: "device: XLA_GPU device"
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 10470458648887235209
physical_device_desc: "device: XLA_CPU device"
]

如何解决此问题?

这可能是因为 TensorFlow 正在寻找GPU:0来为操作分配设备,而图形单元的名称实际上是XLA_GPU:0

您可以在打开会话时尝试使用软放置,以便 TensorFlow 在运行时使用任何现有的 GPU(或任何其他受支持的设备,如果不可用(:

#  using allow_soft_placement=True
se = tf.Session(config=tf.ConfigProto(allow_soft_placement=True))

对于在 Colab 中运行 stylegan:

转到dnnlib/tflib/tfutil.py并更改

config_proto = tf.ConfigProto()

config_proto = tf.ConfigProto(allow_soft_placement=True).

这对我有用。

最新更新