Closed jaffe-fly closed 4 years ago
报错是你的模型某层的参数形状和你要load的参数形状不匹配,参数无法更改,可以尝试修改网络
那就奇怪了 我只是修改的vis.py的代码 网络部分的没有更改过,在没有更改vis.py之前 还是可以正常显示的 ,请问可视化vis.py代码中有涉及到网络的修改?我仔细看了是没有
请问,你用的是哪个模型,和哪个paddle版本,方便的话,提供下你修改后的代码也可以的,我这边也排查下问题
paddle 的版本是1.6.1
把paddleSeg 模块下的pdseg下面的vis.py和reader.py替换为上面的vis_fire.py和reader.py
改的思路: 获取摄像头的实时视频流做处理 cap = cv2.VideoCapture(source) cap.read()[1]的数据和reader里面load_image函数中img = cv2_imread(img_path, cv2_imread_flag)的数据一样,所以删减了很多文件。路径处理的代码, 把cap.read()[1]的数据直接传进 vis里面来获取视频图像 代码直接在pycharm中运行camera_read.py的时候报错,运行代码需要的视频文件也在附件中了
为啥这么搞: 使用分割的infer.py时报显存不够,即使小的图片也不够用(这个问题,你们同事在处理了),所以才想到这么方法,按理说思路没错的,请大佬指点,谢谢
这个提示是类别数和权重的类别数不一致,看一看一下你的类别数是不是变了
这个提示是类别数和权重的类别数不一致,看一看一下你的类别数是不是变了 提示的意思是类别数 ,但是我的类别数一直没有改,不知道这个19是怎么出现的
模型是你自己训出来的嘛?
是我自己训练的 网络部分和配置参数没有更改
@jaffe-fly 你训练的模型类别数多少,看样子19是cityscapes预训练模型的类别数。你自己的数据应该不是19个类别把?
我自己训练的类别数是2,自始至终都没有用过cityscapes哦,是程序内部哪儿使用了默认的19吗?
能提供下你训练时和vis.py时候的yaml配置文件吗?
`TRAIN_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
EVAL_CROP_SIZE: (1920, 1080) # (width, height), for unpadding rangescaling and stepscaling AUG: AUG_METHOD: "unpadding" # choice unpadding rangescaling and stepscaling FIX_RESIZE_SIZE: (512, 512) # (width, height), for unpadding
#INF_RESIZE_VALUE: 500 # for rangescaling
#MAX_RESIZE_VALUE: 600 # for rangescaling
#MIN_RESIZE_VALUE: 400 # for rangescaling
#MAX_SCALE_FACTOR: 1.25 # for stepscaling
#MIN_SCALE_FACTOR: 0.75 # for stepscaling
#SCALE_STEP_SIZE: 0.25 # for stepscaling
MIRROR: True
# 图像上下翻转开关,True/False
FLIP: True
# 图像启动上下翻转的概率,0-1
FLIP_RATIO: 0.5
RICH_CROP:
# RichCrop数据增广开关,用于提升模型鲁棒性
ENABLE: True
# 图像旋转最大角度,0-90
MAX_ROTATION: 15
# 裁取图像与原始图像面积比,0-1
MIN_AREA_RATIO: 0.5
# 裁取图像宽高比范围,非负
ASPECT_RATIO: 0.33
# 亮度调节范围,0-1
BRIGHTNESS_JITTER_RATIO: 0.5
# 饱和度调节范围,0-1
SATURATION_JITTER_RATIO: 0.5
# 对比度调节范围,0-1
CONTRAST_JITTER_RATIO: 0.5
# 图像模糊开关,True/False
BLUR: True
# 图像启动模糊百分比,0-1
BLUR_RATIO: 0.1
BATCH_SIZE: 32 DATASET: DATA_DIR: r"E:\fire_detection\fire_code\home\aistudio\work\dataset" IMAGE_TYPE: "rgb" # choice rgb or rgba NUM_CLASSES: 2 TEST_FILE_LIST: r"E:\fire_detection\fire_code\home\aistudio\work\dataset\test.txt" TRAIN_FILE_LIST: r"E:\fire_detection\fire_code\home\aistudio\work\dataset\train.txt" VAL_FILE_LIST: r"E:\fire_detection\fire_code\home\aistudio\work\dataset\val.txt" VIS_FILE_LIST: r"E:\fire_detection\fire_code\home\aistudio\work\dataset\test.txt" IGNORE_INDEX: 255 SEPARATOR: " " FREEZE: MODEL_FILENAME: "model" PARAMS_FILENAME: "params" MODEL: MODEL_NAME: "fast_scnn" DEFAULT_NORM_TYPE: "bn"
TRAIN: PRETRAINED_MODEL_DIR: "./pretrained_model/fast_scnn_cityscapes/" MODEL_SAVE_DIR: "./saved_model/fast_scnn_pet/" SNAPSHOT_EPOCH: 10 TEST: TEST_MODEL: "./saved_model/fast_scnn_pet/final" SOLVER: NUM_EPOCHS: 100 LR: 0.005 LR_POLICY: "poly" OPTIMIZER: "sgd" LOSS: ["bce_loss", "dice_loss"] `
@LielinJiang 用户训练的是Fast_SCNN, 在加载预训练模型时,如果类别数与预训练模型不匹配,是否有抛弃logit layer参数的加载?
@jaffe-fly 哈喽,可以提供一下你训练好的模型嘛?我验证一下哈
我发邮件给你了 有收到吗
好像没有额,麻烦您重新发一下吧
你发一下你的邮箱
jianglielin@baidu.com
已经收到你的邮件了,看了你的代码。问题在这里 你的cfg用的不是全局的cfg。你应该像原来的vis.py文件一样,from utils.config import cfg 然后用cfg.update_from_file(your-yaml-file),这样cfg就会更新到全局,你可以在build_model中去打印你的cfg,看看是否有加载你yaml文件中的配置
首先这个错误的原因时我改了源码用在我自己的项目中,才出现的, 但是这个错误,我没找到什么原因,参数已经训练好了没办法改 有其他方式吗?