test.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import os
  2. os.environ['CUDA_VISIBLE_DEVICES'] = '0'
  3. from paddlex.det import transforms
  4. import paddlex as pdx
  5. # 定义训练和验证时的transforms
  6. train_transforms = transforms.ComposedRCNNTransforms(
  7. mode='train', min_max_size=[600, 1000])
  8. eval_transforms = transforms.ComposedRCNNTransforms(
  9. mode='eval', min_max_size=[600, 1000])
  10. # 定义训练所用的数据集
  11. train_dataset = pdx.datasets.CocoDetection(
  12. data_dir='jinnan2_round1_train_20190305/restricted/',
  13. ann_file='jinnan2_round1_train_20190305/train.json',
  14. transforms=train_transforms,
  15. shuffle=True,
  16. num_workers=2)
  17. # 训练集中加入无目标背景图片
  18. train_dataset.add_negative_samples(
  19. 'jinnan2_round1_train_20190305/normal_train_back/')
  20. # 定义验证所用的数据集
  21. eval_dataset = pdx.datasets.CocoDetection(
  22. data_dir='jinnan2_round1_train_20190305/restricted/',
  23. ann_file='jinnan2_round1_train_20190305/val.json',
  24. transforms=eval_transforms,
  25. num_workers=2)
  26. # 初始化模型,并进行训练
  27. model = pdx.det.FasterRCNN(num_classes=len(train_dataset.labels) + 1)
  28. model.train(
  29. num_epochs=17,
  30. train_dataset=train_dataset,
  31. eval_dataset=eval_dataset,
  32. train_batch_size=8,
  33. learning_rate=0.01,
  34. lr_decay_epochs=[13, 16],
  35. save_dir='./output')