[docs]deffm_tobin(stack,file_in,file_out,file_type,stream_type,max_sample_index):headers=TOOL_INFO[file_type]["headers"]dtype=TOOL_INFO[file_type]["dtype"]data=read_csv_as_ndarray(stack,file_in,headers,dtype)stream_agg_type=1stream_info=(stream_type<<24|stream_agg_type)# Write stream info bytenp.array([stream_info],dtype="i4").tofile(file_out)# Write sample len bytenp.array([max_sample_index],dtype="i4").tofile(file_out)curr_event_id=-1curr_item_id=-1sidx_losses=[]sidx_loss_dtype=np.dtype([("sidx",np.int32),("loss",oasis_float)])forrowindata:event_id=row["event_id"]item_id=row["output_id"]sidx=row["sidx"]loss=row["loss"]if(event_id!=curr_event_id)or(item_id!=curr_item_id):ifcurr_event_id!=-1:sidx_losses.append((0,0))np.array([curr_event_id,curr_item_id],dtype=np.int32).tofile(file_out)np.array(sidx_losses,dtype=sidx_loss_dtype).tofile(file_out)curr_event_id=event_idcurr_item_id=item_idsidx_losses=[]ifsidx<=max_sample_index:sidx_losses.append((sidx,loss))ifcurr_event_id!=-1:sidx_losses.append((0,0))np.array([curr_event_id,curr_item_id],dtype=np.int32).tofile(file_out)np.array(sidx_losses,dtype=sidx_loss_dtype).tofile(file_out)