GPU всегда быстрее, чем CPU? Нет почему? поскольку оптимизация скорости графическим процессором зависит от нескольких факторов,
Какая часть вашего кода выполняется / выполняется параллельно, т. Е. Какая часть вашего кода создает потоки, которые работают параллельно, Keras автоматически заботится об этом и не должно быть проблемой в вашем сценарии.
Время, затрачиваемое на передачу данных между процессором и графическим процессором, когда люди часто колеблются, предполагается, что графический процессор всегда будет превосходить процессор, но если передаваемые данные слишком малы, требуется время для выполнения Вычисления (не требуются никакие шаги вычислений) меньше, чем разбивать данные / процессы на потоки, выполнять их в графическом процессоре и затем снова объединять их снова в ЦП.
Второй сценарий выглядит вероятным в вашем случае, поскольку вы использовали batch_size
из 5.
classifier=KerasClassifier(build_fn=build_classifier,epochs=100,batch_size=5)
, Если ваш набор данных достаточно большой, увеличение batch_size
увеличит производительность GPU по сравнению с CPU.
Кроме того, вы использовали довольно простую модель, и, как указал @igrinis, данные загружаются с диска в память только один раз, поэтому проблема во всей теории не должна заключаться в времени загрузки, поскольку данные находятся на диске.