使用yolov8做目标检测训练的时候gpu_men一直显示0g,也没有报什么错,就是训练特别慢
查了一下任务管理器,内存也没有被占满,所以有人知道这是为什么吗?
使用yolov8做目标检测训练的时候gpu_men一直显示0g,也没有报什么错,就是训练特别慢
让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言可能的原因是:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0" # 指定使用的GPU设备为第0块GPU
import tensorflow as tf
from tensorflow.data import Dataset
# 使用TFRecord格式存储数据
def create_tfrecord_dataset(x, y, out_path):
writer = tf.io.TFRecordWriter(out_path)
for i in range(len(x)):
img_bytes = tf.io.encode_jpeg(x[i]).numpy()
label = y[i]
example = tf.train.Example(features=tf.train.Features(feature={
'image': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_bytes])),
'label': tf.train.Feature(int64_list=tf.train.Int64List(value=label))
}))
writer.write(example.SerializeToString())
writer.close()
# 读取TFRecord数据
def parse_fn(example_proto):
features = {
'image': tf.io.FixedLenFeature([], tf.string),
'label': tf.io.FixedLenFeature([], tf.int64),
}
features = tf.io.parse_single_example(example_proto, features)
image = tf.io.decode_jpeg(features['image'], channels=3)
label = features['label']
return image, label
# 创建TFRecord格式的训练数据集
trainset = Dataset.from_tensor_slices((train_x, train_y))
trainset = trainset.map(lambda x, y: tf.numpy_function(parse_fn, [x, y], [tf.uint8, tf.int64]))
trainset = trainset.shuffle(1000).batch(32)
from tensorflow import keras
from keras.optimizers import SGD
model = create_model()
opt = SGD(lr=0.01) # 更改学习率为0.01
model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy'])
model.fit(trainset, epochs=10, validation_data=testset)