condensenetv2_b_rs_mul.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import paddlers as pdrs
  2. from paddlers import transforms as T
  3. # 定义训练和验证时的transforms
  4. train_transforms = T.Compose([
  5. T.BandSelecting([5, 10, 15, 20, 25]), # for tet
  6. T.Resize(target_size=224),
  7. T.RandomHorizontalFlip(),
  8. T.Normalize(
  9. mean=[0.5, 0.5, 0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5, 0.5, 0.5]),
  10. ])
  11. eval_transforms = T.Compose([
  12. T.BandSelecting([5, 10, 15, 20, 25]),
  13. T.Resize(target_size=224),
  14. T.Normalize(
  15. mean=[0.5, 0.5, 0.5, 0.5, 0.5], std=[0.5, 0.5, 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/val_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.CondenseNetV2_b(in_channels=5, num_classes=num_classes)
  35. # 进行训练
  36. model.train(
  37. num_epochs=100,
  38. pretrain_weights=None,
  39. train_dataset=train_dataset,
  40. train_batch_size=4,
  41. eval_dataset=eval_dataset,
  42. learning_rate=3e-4,
  43. save_dir='output/condensenetv2_b')