我正在尝试使用 Tensorflow Keras 在我的机器上训练 CNN 模型。 这是我的机器规格:
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。速度还是蛮慢的。
这可能是因为你的数据生成器。确保您的生成器不会花费太多时间来向模型提供样本。