TensorFlow 训练在 CPU 和 GPU 上都很慢

问题描述 投票:0回答:1

我正在尝试使用 Tensorflow Keras 在我的机器上训练 CNN 模型。 这是我的机器规格:

  • CPU:Ryzen 9 3900x(12核24线程)
  • GPU:GTX 970 4GB
model = models.Sequential([
    layers.InputLayer(input_shape=input_shape),
    layers.Conv2D(32, kernel_size = (3,3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64,  kernel_size = (3,3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64,  kernel_size = (3,3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(n_classes, activation='softmax'),
])

model.compile(
    optimizer='adam',
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
    metrics=['accuracy']
)

history = model.fit(
    train_generator,
    steps_per_epoch=153,
    batch_size=32,
    validation_data=validation_generator,
    validation_steps=23,
    verbose=1,
    epochs=20,
)

我使用的是仅具有 CPU 访问权限的 Windows 11。使用 model.fit() 进行训练大约需要 1 小时(仅 CPU 训练)。我在同一台机器上双重启动 Linux Ubuntu,以获得更轻松的 GPU 支持。现在我已经确认了 Linux 环境中的 GPU 支持,但训练仍然需要大约 1 小时(仅 GPU 训练)。

CPU强而GPU弱,速度一样吗?还有其他可能出错的地方吗?

我确保在训练模型时使用 GPU。速度还是蛮慢的。

machine-learning keras deep-learning gpu tensorflow2.0
1个回答
0
投票

这可能是因为你的数据生成器。确保您的生成器不会花费太多时间来向模型提供样本。

© www.soinside.com 2019 - 2024. All rights reserved.