我正在使用Tensorflow输入数据管道从一个较大的csv文件读取数据,并使用MirroredStrategy在同一个集群的多个GPU上训练神经网络。我的问题是,如您在此处看到的那样,我不能使用超过20%的GPU:
这是我的示例代码:
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25,shuffle=True, random_state=42)
Train=tensorflow.data.Dataset.from_tensor_slices((x_train,y_train))
Train = Train.batch(1200,drop_remainder=False).cache()
Train = Train.prefetch(tensorflow.data.experimental.AUTOTUNE)
Test=tensorflow.data.Dataset.from_tensor_slices((x_test,y_test))
Test = Test.batch(1200,drop_remainder=False).cache()
Test = Test.prefetch(tensorflow.data.experimental.AUTOTUNE)
with strategy.scope():
model.compile(loss='mean_squared_error',
model.fit(Train,validation_data=Test,verbose=1,epochs=100)
有人知道我如何增加GPU利用率吗?我什至尝试将批次大小增加到1200,但这并没有太大帮助(我也不想过多地增加批次大小,因为我可能会收敛到具有较大批次大小的局部最小值!)