引言
在深度学习领域,模型的训练与评估是至关重要的环节。本文将介绍如何使用 PyTorch 和 torch - geometric 库,基于 EfficientFormer 模型进行数据的训练与评估,并详细展示从数据加载、模型定义、训练评估到结果统计保存的全过程。
对应代码数据链接:https://download.youkuaiyun.com/download/lestatlu/90685087
一、设备选择
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")
start_time = time.time()
这段代码用于检测系统是否有可用的 CUDA(NVIDIA 的并行计算平台和编程模型),如果有则使用 GPU 进行计算,否则使用 CPU。这是因为 GPU 在处理大规模数据的深度学习任务时,往往能提供比 CPU 更高的计算效率。记录开始时间start_time,方便后续计算整个程序的运行时长。
二、数据加载与预处理
2.1 数据加载
X_all_samples = np.load(r'your path\X_all_samples.npy')
y_all_samples = np.load(r'your path\y_all_samples.npy')
train_indices = np.load(r'your path\global_train_indices.npy')
test_indices = np.load(r'your path\global_test_indices.npy')
通过np.load函数从指定路径加载保存好的样本数据X_all_samples(特征数据)、标签数据y_all_samples以及训练集和测试集的索引train_indices和test_indices。这里的路径需要根据实际数据存储位置进行修改,使用your path表示需读者自行替换为真实路径。
2.2 创建训练集和测试集
X_train = X_all_samples[train_indices]
y_train = y_all_samples[train_indices]
X_test = X_all_samples[test_indices]
y_test = y_all_samples[test_indices]
y_train = y_train.astype(np.int64)
y_test = y_test.astype(np.int64)
num_classes = np.max(y_train.astype(np.int64)) + 1
# 验证类别数一致性
assert np.max(y_train) + 1 == num_classes, "类别数不一致"
根据索引分别从所有样本中提取出训练集和测试集的特征与标签数据。将标签数据的类型转换为np.int64,这是为了后续与 PyTorch 中的数据类型更好地兼容。通过计算训练集标签中的最大类别值并加 1,确定数据集中的类别总数num_classes,同时使用assert语句验证类别数计算的一致性,避免出现错误。
2.3 转换为 Tensor
x_train = torch.tensor(X_train, dtype=torch.floa

最低0.47元/天 解锁文章
3433

被折叠的 条评论
为什么被折叠?



