Keras 同时使用 CPU 和 GPU

Keras 同时使用 CPU 和 GPU

我是 Keras 的新用户。最近我开始用它来训练相当简单的神经网络。我安装了 Keras、tensorflow-GPU、CUDA 和 CUDNN。下面是我正在运行的代码:

num_epochs=500
all_mae_histories = []

for i in range(k):
    print('procesing fold #',i)
    val_data=train_data[i*num_val_samples:(i+1)*num_val_samples]
    val_targets=train_targets[i*num_val_samples: (i+1)*num_val_samples]

    partial_train_data = np.concatenate(
            [train_data[:i*num_val_samples],
             train_data[(i+1)*num_val_samples:]],
             axis=0)
    partial_train_targets = np.concatenate(
            [train_targets[:i*num_val_samples],
             train_targets[(i+1)*num_val_samples:]],
             axis=0)

    model = build_model()

    history= model.fit(partial_train_data, partial_train_targets, epochs=num_epochs,
              batch_size=1,verbose=0)
    mae_history = history.history['mean_absolute_error']
    all_mae_histories.append(mae_history)

average_mae_history=[np.mean([x[i] for x in all_mae_histories]) for i in range(num_epochs)]

基本上,它使用 500 个 epoch 执行 k 倍验证,并跟踪 NN 作为 epoch 函数的性能。即使我有 NVIDIA 1060 显卡,执行此代码也相当长。因此,我检查了显卡上的负载,结果发现代码仅使用了 10% 的 GPU 和 8 个 CPU 中的 50%。

所以我的问题是:如何让 Keras 使用 GPU 而不是 CPU?这会导致更快的执行速度吗?

谢谢

答案1

好的,我终于明白了。一切都很好。只是 GPU 的使用取决于手头的任务类型。当处理更大的批次和更大的数据集时,我的 GPU 负载会更高。所以我想这只是正常的。

相关内容