Skip to content

mplugowl3在训练的时候如果batchsize>1, mediaoffset的padding方式是什么? #247

@goodstudent9

Description

@goodstudent9

你好,我正在使用msswift对模型进行微调,由于数据量较大,所以我需要设置batchsize>1的训练,但是目前我无法使用该方法进行训练。
核心原因是变量media_offset没有进行padding操作。我尝试使用0或者-100来对其padding,但是都会报错,具体报错是在selsect_query函数。
我也尝试了将最后一个元素复制到每一个batch的最大序列长度,这样虽然代码正常运行了,但是效果很糟糕,所以这应该不是您最初padding的方式。所以我想请问您最初在怎么在一个批量训练中padding media_offset这个变量的呢?这对我真的很重要,谢谢您的回复!

def select_query(media_offset, num_queries=None):
    query_indices = media_offset[:,:,1]>=0 # B L
    pdb.set_trace()
    assert query_indices.sum().item()%num_queries == 0, query_indices.sum().item()
    query_indices = query_indices.nonzero()
    ptr = 0
    #这是原来的代码
    while ptr < query_indices.shape[0]:
        first_query_index, last_query_index  = query_indices[ptr], query_indices[ptr+num_queries-1]
        assert (last_query_index[1] - first_query_index[1] + 1).item() == num_queries
        assert last_query_index[0].item() == first_query_index[0].item()
        batch_id, begin_i, end_i = first_query_index[0].item(), first_query_index[1].item(), first_query_index[1].item()+num_queries
        yield batch_id, begin_i, end_i

        ptr += num_queries

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