Skip to content

求解mAcc非常低的问题 #5

@733pH

Description

@733pH
    我使用batchsize =1 / batchsize = 2,单卡或多卡数据并行的条件下,只要在验证时使用eval(),精度就会极低,即使是使用训练数据,精度也不足5%,但是不使用eval()精度能有80%以上。

    我同样尝试了将例如conv1_c和conv1_n复用的BN层改为不复用(因为我以为这两者的数值分布会差很多,通过同个BN层会有影响),结果仍然只能在评估模式下取得极低的精度。

    我检查了这个过程中张量在通过BN层前后的变化,是否使用eval()的两种情况下张量的分布产生了很大的变化,最大最小值差距2到10倍不等,似乎是BN层保留下来的running_mean和running_var完全不适用于单个验证数据。

    找不到原因,也许是batchsize太小了?但是这个模型占用显存太多了,现在比较菜搞不定DDP

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions