首页 > 解决方案 > 为什么我的 CNN 模型在本地 CPU 上的训练时间比托管选项要少?

问题描述

我对深度学习完全陌生,我一直在学习一些教程,这些教程主要使用托管的 Jupyter 笔记本(Azure 和 Colaboratory)。我正处于开始尝试自己的神经网络的阶段;但是,我对应该在哪里训练我的 keras 模型感到有些困惑。为了做出决定,我在几个不同的地方运行了以下模型,总而言之,我的 i5 6500 CPU 排在第二位,这让我感到非常困惑。更令人困惑的是,使用 8 个虚拟 CPU 运行 Google Cloud Compute 比在我的 CPU 上运行要慢。我还没有尝试过我的 GTX1060 GPU;但是,假设它的性能甚至比我的 CPU 还要好,这似乎是合理的。为什么我会得到这些结果?人们通常在哪里训练他们的机器学习模型?我的结果如下。

from keras.datasets import mnist
from keras.preprocessing.image import load_img, array_to_img
from keras.utils.np_utils import to_categorical
from keras.models import Sequential
from keras.layers import Dense

image_height, image_width = 28, 28
(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = x_train.reshape(60000, image_height * image_width)
x_test = x_test.reshape(10000, image_height * image_width)

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')

x_train /= 255.0
x_test /= 255.0

y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dense(512, activation='relu'))
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

history = model.fit(x_train, y_train, epochs=2, validation_data=(x_test, y_test))

我在以下位置尝试了上述代码段。以下是每个时代的时间。

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

不幸的是,使用 GPU 运行 Google Cloud Compute 需要我升级我的免费帐户,所以我没有尝试过。

标签: pythontensorflowkerasgoogle-cloud-platform

解决方案


推荐阅读