resnet50_vd_rs.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import paddlers as pdrs
  2. from paddlers import transforms as T
  3. # 下载aistudio的数据到当前文件夹并解压、整理
  4. # https://aistudio.baidu.com/aistudio/datasetdetail/63189
  5. # 定义训练和验证时的transforms
  6. train_transforms = T.Compose([
  7. T.Resize(target_size=512),
  8. T.RandomHorizontalFlip(),
  9. T.Normalize(
  10. mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
  11. ])
  12. eval_transforms = T.Compose([
  13. T.Resize(target_size=512),
  14. T.Normalize(
  15. mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
  16. ])
  17. # 定义训练和验证所用的数据集
  18. train_dataset = pdrs.datasets.ClasDataset(
  19. data_dir='tutorials/train/classification/DataSet',
  20. file_list='tutorials/train/classification/DataSet/train_list.txt',
  21. label_list='tutorials/train/classification/DataSet/label_list.txt',
  22. transforms=train_transforms,
  23. num_workers=0,
  24. shuffle=True)
  25. eval_dataset = pdrs.datasets.ClasDataset(
  26. data_dir='tutorials/train/classification/DataSet',
  27. file_list='tutorials/train/classification/DataSet/test_list.txt',
  28. label_list='tutorials/train/classification/DataSet/label_list.txt',
  29. transforms=eval_transforms,
  30. num_workers=0,
  31. shuffle=False)
  32. # 初始化模型
  33. num_classes = len(train_dataset.labels)
  34. model = pdrs.tasks.ResNet50_vd(num_classes=num_classes)
  35. # 进行训练
  36. model.train(
  37. num_epochs=10,
  38. train_dataset=train_dataset,
  39. train_batch_size=4,
  40. eval_dataset=eval_dataset,
  41. learning_rate=0.1,
  42. save_dir='output/resnet_vd')