def METHOD_NAME(model, optimizer, epoch, LFR_m, LFR_n, tr_loss=None, cv_loss=None):
    package = {
        # Low Frame Rate Feature
        'LFR_m': LFR_m,
        'LFR_n': LFR_n,
        # encoder
        'd_input': model.encoder.d_input,
        'n_layers_enc': model.encoder.n_layers,
        'n_head': model.encoder.n_head,
        'd_k': model.encoder.d_k,
        'd_v': model.encoder.d_v,
        'd_model': model.encoder.d_model,
        'd_inner': model.encoder.d_inner,
        'dropout': model.encoder.dropout_rate,
        'pe_maxlen': model.encoder.pe_maxlen,
        # decoder
        'sos_id': model.decoder.sos_id,
        'eos_id': model.decoder.eos_id,
        'vocab_size': model.decoder.n_tgt_vocab,
        'd_word_vec': model.decoder.d_word_vec,
        'n_layers_dec': model.decoder.n_layers,
        'tgt_emb_prj_weight_sharing': model.decoder.tgt_emb_prj_weight_sharing,
        # state
        'state_dict': model.state_dict(),
        'optim_dict': optimizer.state_dict(),
        'epoch': epoch
    }
    if tr_loss is not None:
        package['tr_loss'] = tr_loss
        package['cv_loss'] = cv_loss
    return package