问题描述
python3.6、tf2.3、win10、cuda10.1
当我测试 a-layer ConvLSTM 模型进行分布式训练时,GPU-Util 存在问题。
这是我的代码。
cpus = tf.config.list_physical_devices(device_type='cpu')
gpus = tf.config.list_physical_devices(device_type='GPU')
for gpu in gpus:
tf.config.experimental.set_memory_growth(device=gpu,enable=True)
tf.config.set_visible_devices(devices=gpus,device_type='GPU')
strategy = tf.distribute.MirroredStrategy(cross_device_ops=tf.distribute.HierarchicalcopyAllReduce())
opt = tf.keras.optimizers.Adam(learning_rate=0.003)
loss = tf.keras.losses.mse
with strategy.scope():
model = model_build(input_shape=(10,230,1))
model.compile(optimizer=opt,loss=loss,metrics=['accuracy'])
dataset = np.random.random((40,10,1))
truth = np.random.random((40,1))
history = model.fit(x=dataset,y=truth,batch_size=8,)
一开始,我把所有的gpus设置为分布式训练,看到GPU-Util是这样的: 4-GPU Util detail 只有一个运行良好,而其他的利用率很低。
strategy = tf.distribute.MirroredStrategy(devices=["/gpu:0","/gpu:1"],cross_device_ops=tf.distribute.HierarchicalcopyAllReduce())
dataset = np.random.random((20,1))
truth = np.random.random((20,batch_size=4,)
gpu-util 的结果是这样的:2-GPU Util detail 看起来有点令人满意:gpu-util 都高于 4-GPU 测试。 那么如何在使用 tf.keras 的分布式训练中在高层控制更多 gpus 的 util 呢?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)