-
Notifications
You must be signed in to change notification settings - Fork 188
Closed
Description
你好,我正在使用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
Labels
No labels