使用Tensorflow镜像策略的Keras多GPU

使用Tensorflow镜像策略的Keras多GPU,keras,tensorflow2.0,multi-gpu,Keras,Tensorflow2.0,Multi Gpu,RESNET()模型编译为:model.compile(loss=tf.keras.loss.Huber(),optimizer=tf.keras.optimizers.Adam(epsilon=1e-08),metrics=[tf.keras.loss.Huber())所有其他模块也来自tensorflow.keras.* 当我使用4个GPU运行此程序时,我得到以下错误:ValueError:请使用tf.keras.loss.Reduction.SUM或tf.keras.loss.Reduct

RESNET()
模型编译为:
model.compile(loss=tf.keras.loss.Huber(),optimizer=tf.keras.optimizers.Adam(epsilon=1e-08),metrics=[tf.keras.loss.Huber())
所有其他模块也来自
tensorflow.keras.*

当我使用4个GPU运行此程序时,我得到以下错误:ValueError:请使用
tf.keras.loss.Reduction.SUM
tf.keras.loss.Reduction.NONE
在内置训练循环之外使用loss时使用
tf.distribute.Strategy

我遵循中给出的示例,那么我缺少什么,为什么我需要使用这些减少?什么是内置训练循环的外部

es = EarlyStopping(monitor='val_loss', mode='min', patience=100, restore_best_weights=True, verbose=0)
strategy = tf.distribute.MirroredStrategy(devices=['/gpu:0', '/gpu:1', '/gpu:2', '/gpu:3'])
with strategy.scope():
   model = RESNET()
history = model.fit(samples2Fit, validation_data=samples2Validate, epochs=args.epochs, callbacks=[es], verbose=0)