Как выбрать небольшой набор изображений для обучения модели из большой папки изображений в r? - PullRequest
1 голос
/ 02 мая 2020

У меня есть очень большая папка с изображениями (train_dir), а также файл CSV, содержащий метки классов для каждого из этих изображений (train_df). Поскольку данные огромны, я хотел бы взять только образец изображений (скажем, 25%) вместе с метками (train_df); Как бы я делал это в программировании на R?

В моей папке "train_dir" содержится около 150 000 изображений = ('1.png', '2.png', ....), и мой CSV-файл выглядит как-то аналогично CSV-файлу - train_df

Каков подход к go в создании r-скрипта, который может это сделать?

1 Ответ

0 голосов
/ 02 мая 2020

Что-то вроде следующего кода

  1. получит подмножество номеров строк, чтобы служить индексом для train_df;
  2. Подмножество train_df, и получите образец PNG имен файлов . Поскольку столбец "id" является фактором, преобразуйте его в символ.
  3. Для каждого имени файла примените функцию чтения PNG. В этом случае я использовал png::readPNG, но другие могут быть использованы таким же образом.

Код становится следующим:

perc  <- 0.25
n <- nrow(train_df)
i <- sample(n, n*perc)
png_filenames <- as.character(train_df[i, "id"])

png_files <- lapply(png_filenames, function(x){
  png::readPNG(x, native = TRUE)
})
...