Skip to content

Commit

Permalink
sort FSRSItem by length to speed up training
Browse files Browse the repository at this point in the history
  • Loading branch information
L-M-Sherlock committed Aug 25, 2023
1 parent 7d80f4e commit e25a7a8
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
7 changes: 5 additions & 2 deletions src/convertor.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use chrono::prelude::*;
use chrono_tz::Tz;
use itertools::Itertools;
use rusqlite::{Connection, Result, Row};
use std::collections::HashMap;

Expand Down Expand Up @@ -192,11 +193,13 @@ fn convert_to_fsrs_items(
pub fn anki_to_fsrs() -> Vec<FSRSItem> {
let revlogs = read_collection().expect("read error");
let revlogs_per_card = group_by_cid(revlogs);
revlogs_per_card
let mut revlogs = revlogs_per_card
.into_iter()
.filter_map(|entries| convert_to_fsrs_items(entries, 4, Tz::Asia__Shanghai))
.flatten()
.collect()
.collect_vec();
revlogs.sort_by_key(|r| r.reviews.len());
revlogs
}

#[cfg(test)]
Expand Down
4 changes: 2 additions & 2 deletions src/training.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,13 @@ pub fn train<B: ADBackend<FloatElem = f32>>(

let dataloader_train = DataLoaderBuilder::new(batcher_train)
.batch_size(config.batch_size)
.shuffle(config.seed)
// .shuffle(config.seed)
.num_workers(config.num_workers)
.build(FSRSDataset::train());

let dataloader_test = DataLoaderBuilder::new(batcher_valid)
.batch_size(config.batch_size)
.shuffle(config.seed)
// .shuffle(config.seed)
.num_workers(config.num_workers)
.build(FSRSDataset::test());

Expand Down

0 comments on commit e25a7a8

Please sign in to comment.