PaddleX
PaddleX copied to clipboard
Flask 运行 报错 ValueError: signal only works in main thread of the main interpreter
@app.route("/animosityDs/test", methods=['POST', 'GET']) def runrunrun(): pdx.pretrain_dir = save_dir # 下载和解压蔬菜分类数据集 # veg_dataset = 'https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz' # pdx.utils.download_and_decompress(veg_dataset, path='./') # 定义训练和验证时的transforms # API说明https://paddlex.readthedocs.io/zh_CN/develop/apis/transforms/cls_transforms.html train_transforms = T.Compose( [T.RandomCrop(crop_size=224), T.RandomHorizontalFlip(), T.Normalize()]) # 初始化评价参数 eval_transforms = T.Compose([ T.ResizeByShort(short_size=256), T.CenterCrop(crop_size=224), T.Normalize() ])
# 定义训练和验证所用的数据集
# API说明:https://paddlex.readthedocs.io/zh_CN/develop/apis/datasets.html#paddlex-datasets-imagenet
# laozhu
train_dataset = pdx.datasets.ImageNet( # 定义训练集
data_dir='/',
file_list='/disk/TrainModel/txt/animal_distinguish/train_list.txt',
label_list='/disk/TrainModel/txt/animal_distinguish/lable_list.txt',
transforms=train_transforms,
shuffle=True)
eval_dataset = pdx.datasets.ImageNet( # 定义评价集
data_dir='/',
file_list='/disk/TrainModel/txt/animal_distinguish/evl_list.txt',
label_list='/disk/TrainModel/txt/animal_distinguish/lable_list.txt',
transforms=eval_transforms)
# 初始化模型,并进行训练
# 可使用VisualDL查看训练指标,参考https://paddlex.readthedocs.io/zh_CN/develop/train/visualdl.html
num_classes = len(train_dataset.labels)
print('数量:' + str(num_classes))
# model = pdx.cls.MobileNetV3_small(num_classes=num_classes) # 定义分类模型
model = pdx.cls.ResNet50_vd(num_classes=num_classes) # 定义分类模型
# 模型保存位置
print("模型训练开始")
start_time = time.perf_counter()
model.train(
num_epochs=20,
train_dataset=train_dataset,
train_batch_size=8,
eval_dataset=eval_dataset,
lr_decay_epochs=[4, 6, 8],
learning_rate=0.025,
save_interval_epochs=5,
save_dir="output/3060_gpuonelaozhumodel_0"
# eval_metric_loss=0.05
# use_vdl=True
)
end_time = time.perf_counter() - start_time
print("训练完成,耗时:" + str(end_time))
return ResultData.success("成功")
if name == "main": app.run(host='0.0.0.0', port=8095, debug=False, use_reloader=False) logger.info("项目启动成功")
windos运行没问题 centos7 上报错 ValueError: signal only works in main thread of the main interpreter