我的本地机器上有 2 个 gpus,但我不确定我正在训练的模型是否同时使用它们(速度没有太大变化)。
我的代码:
def get_model():
base_model = ResNet50(weights='imagenet', input_shape=(image_size,image_size,3), include_top=False)
#base_model.trainable = False
model = models.Sequential()
model.add(base_model)
model.add(layers.GlobalAveragePooling2D())
model.add(layers.Dense(1024, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(196, activation='softmax'))
model.summary()
model = multi_gpu_model(model,gpus=2)
#optimizer = optimizers.SGD(lr=1e-4, decay=1e-6, momentum=0.9, nesterov=True)
optimizer = optimizers.RMSprop(lr=0.0001)
model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['acc'])
return model
我刚刚添加了multi_gpu_model设置,但不确定这是否足够。我每 0.5 秒检查一次 nvidia-smi,但似乎只有一个 gpu 在工作。如何确保它使用完整的 2 gpus?