我是 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 负载会更高。所以我想这只是正常的。