初始化时发生tf.python.keras.utils.multi_gpu_model错误



我使用的是带有tensorflow和多gpu配置的python 3,我尝试使用以下示例初始化多gpu模型,我创建了一个模型,它很好,可以编译、运行和训练,但当我尝试在模型编译前添加它时:

from tensorflow.python.keras.utils import multi_gpu_model
model = multi_gpu_model(model, gpus=2, cpu_merge=False)

我收到这个错误

TypeError:int()参数必须是字符串或数字,而不是"TensorShape">

注意,我使用的是带有热切评估的tf

我发现这是指使用keras.utils.multi_gpu_model而不是tf.python.keras.utils.multi_gpu_model。但当我这样做时,我会得到这个错误:

我在这里错过了什么?

第217行,在multi_gpu_model中带有tf.device(x.device):AttributeError:"DeferredSensor"对象没有属性"device">

模型的代码是

model = Sequential()
model.add(Flatten(input_shape=(128, 128, 3)))
model.add(Dense(100, activation="sigmoid"))
model.add(Dense(100, activation="sigmoid"))

更新:这可能是gpu id的问题吗?当我尝试创建一个multi_gpu_model而不使用以下代码指定gpus计数时:

model = multi_gpu_model(model)

我得到以下错误:

ValueError:要用gpus=3调用multi_gpu_model,我们需要以下设备可用:['/cpu:0','/gpu:0'、'/gpu:1','/gpu:2']。然而,这台机器只有:['/cpu:0','/xla_cpu:0','/xla_gpu:0'、'/gpu:0'和'/gpu:1']。尝试减少gpus

我只有2个GPU,它们连接到pci端口#1和2(我无法更改,我在板上没有将它们连接到端口0所需的适当空间),当指定2个GPU时,tf将尝试获取GPU 0和GPU 1,这有意义吗?我可以另外说明吗?

感谢

我遇到了同样的错误,我通过将os.environ[CUDA_VISIBLE_DEVICES]='1, 3'更改为os.environ[CUDA_VISIBLE_DEVICES]="1, 3"来解决它如果你已经这样做了,你可能想用这个极其简单的代码进行检查:不要忘记将gpu设备更改为你的设备。

from keras.utils import multi_gpu_model
from keras import Input, Model
from keras.layers import Conv2D
import os
#if you have gpu 1,3 avaliable
os.environ["CUDA_VISIBLE_DEVICES"]="1,3"
x = Input((64,64,3))
out = Conv2D(64,(3,3),padding='same')(x)
model = Model(x,out)
#model = deeplabv3_nopadding.Deeplabv3()
model = multi_gpu_model(model,gpus=2)

将输出:

使用TensorFlow后端。2019-07-01 09:40:25.9971722:Itensorflow/core/platform/cpu_feature_guard.cc:141]您的cpu支持此TensorFlow二进制文件未编译为使用的指令:SSE4.1 SSE4.2 AVX AVX2 FMA 2019-07-01 09:40:26.277398:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1432]找到设备0具有属性:名称:TITAN Xp主要:6次要:1memoryClockRate(GHz):1.582 pciBusID:0000:03:0.0 totalMemory:11.90GiB空闲内存:11.74GiB 2019-07-01 09:40:26.586391:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432]找到设备1具有属性:名称:TITAN Xp主要:6次要:1内存时钟频率(GHz):1.582 pciBusID:0000:83:0.0 totalMemory:11.90GiB空闲内存:11.74GiB 2019-07-01 09:40:26.586477:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511]添加可见gpu设备:0,1 2019-07-01 09:40:27.377910:Itensorflow/core/common_runtime/gpu/gpu_device.cc:982]设备互连StreamExecutor与强度1边缘矩阵:2019-07-0109:40:27.377970:Itensorflow/core/common_runtime/gpu/gpu_device.cc:988]0 12019-07-01 09:40:27.377977:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1001]0:N2019-07-01 09:40:27.37981:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1001]1:N N2019-07-01 09:40:27.378592:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1115]已创建TensorFlow设备(/job:localhost/replice:0/task:0/device:GPU:011355 MB内存)->物理GPU(设备:0,名称:TITAN Xp,pci总线id:0000:03:0.0,计算能力:6.1)2019-07-01 09:40:27.3382844:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115]已创建TensorFlow设备(/job:localhost/replice:0/task:0/device:GPU:1)11355 MB内存)->物理GPU(设备:1,名称:TITAN Xp,pci总线id:0000:83:0.0,计算能力:6.1)

相关内容

  • 没有找到相关文章

最新更新