folders2labels

Получите список меток с имен папок

Описание

Используйте эту функцию, когда вы работаете над машиной или проблемой классификации глубокого обучения, и ваши маркированные данные хранятся в папках, которые имеют соответствующие имена метки.

пример

lbls = folders2labels(loc) создает список меток на основе имен папок, заданных местоположением loc.

lbls = folders2labels(loc,Name,Value) задает дополнительные входные параметры с помощью пар "имя-значение". Например, 'FileExtensions','.mat' включает только .mat файлы в скане для меток.

lbls = folders2labels(ds) создает список меток на основе файлов, содержавшихся в dsds может быть datastore, matlab.io.datastore.FileSet объект или matlab.io.datastore.BlockedFileSet объект.

[lbls,files] = folders2labels(___) дополнительно возвращает список файлов. iэлемент th lbls соответствует метке iфайл th в files.

Примеры

свернуть все

Создайте папку под названием Files в текущей папке, содержащей три подпапки, Files_1, Files_2, и Files_3. Добавьте в каждую подпапку случайное число файлов, каждый содержащий случайный сигнал случайного размера.

mkdir Files

for kj = 1:3
    fname = "Files_" + kj;
    mkdir(fname)
    for jk = 1:randi(4)
        sname = "sig_" + kj + "_" + jk;
        sgn = randn(randi([30 50]),randi(2));
        save(sname,"sgn")
        movefile(sname + ".mat",fname)
    end
    movefile(fname,"Files")
end

Перечислите содержимое папок.

dir("*/*/*")
Files Found in: Files/Files_1

.            sig_1_1.mat  sig_1_3.mat  
..           sig_1_2.mat  sig_1_4.mat  

Files Found in: Files/Files_2

.            ..           sig_2_1.mat  sig_2_2.mat  

Files Found in: Files/Files_3

.            ..           sig_3_1.mat  sig_3_2.mat  sig_3_3.mat  

Создайте список меток на основе имен папок.

lbls = folders2labels("Files")
lbls = 9x1 categorical
     Files_1 
     Files_1 
     Files_1 
     Files_1 
     Files_2 
     Files_2 
     Files_3 
     Files_3 
     Files_3 

Перечислите имена файлов, сопоставленных с метками.

[~,files] = folders2labels("Files");
[~,fnames] = fileparts(files)
fnames = 9x1 string
    "sig_1_1"
    "sig_1_2"
    "sig_1_3"
    "sig_1_4"
    "sig_2_1"
    "sig_2_2"
    "sig_3_1"
    "sig_3_2"
    "sig_3_3"

Удалите Files директория вы создали в начале примера.

rmdir Files s

Входные параметры

свернуть все

Файлы или папки, чтобы отсканировать для меток в виде вектора символов, массива ячеек из символьных векторов, строкового скаляра или массива строк, содержа местоположение файлов или папок, которые являются локальными или удаленными.

  • Локальные файлы или папки — Задают loc как локальный путь к файлам или папкам. Если файлы не находятся в текущей папке, то локальный путь должен задать полные или относительные пути. Файлы в подпапках заданной папки включены по умолчанию. Можно использовать подстановочный символ (*) при определении локального пути. Этот символ указывает, что поиск файла включает все файлы соответствия или все файлы в соответствующих папках.

  • Удаленное местоположение задало использование интернационализировавшего идентификатора ресурса (IRI).

  • Удаленные файлы или папки — Задают loc быть полными путями файлов или папок как универсальный локатор ресурса (URL) формы hdfs:///path_to_file. Для получения дополнительной информации смотрите работу с Удаленными данными.

folders2labels ищет все форматы файлов. Чтобы задать пользовательский список расширений файла, чтобы отсканировать, используйте FileExtensions аргумент.

Пример: 'whale.mat'

Пример: '../dir/data/signal.mat'

Пример: "../dir/data/"

Пример: {'dataFiles/Files_1/' 'dataFiles/Files_2/'}

Пример: ["dataFiles/Files_1/" "dataFiles/Files_2/"]

Типы данных: char | string | cell

Репозиторий данных в виде datastore, matlab.io.datastore.FileSet объект или matlab.io.datastore.BlockedFileSet объект.

  • Если ds datastore, он должен содержать Files свойство, из которого анализируются имена метки.

  • Если ds matlab.io.datastore.FileSet объект, folders2labels получает имена метки из имен файлов, перечисленных в FileInfo свойство ds.

  • Если ds matlab.io.datastore.BlockedFileSet объект, folders2labels получает имена метки из имен файлов, перечисленных в BlockInfo свойство ds.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: folders2labels('C:\dir\signaldata','FileExtensions','.csv') задает локальный путь и включает только файлы CSV в скан для меток.

Включение подпапки отмечает в виде true или false. Задайте true включать все файлы и подпапки в каждой папке или false включать только файлы в каждой папке.

Пример: 'IncludeSubfolders',true

Типы данных: логический | double

Расширения файла сигнала в виде строкового скаляра, массива строк, вектора символов или массива ячеек из символьных векторов.

Пример: 'FileExtensions','.csv'

Типы данных: string | char | cell

Выходные аргументы

свернуть все

Список меток, возвращенных как категориальный вектор.

Список файлов, возвращенных как вектор строки. iэлемент th lbls соответствует метке для iфайл th в files.

Смотрите также

| |

Введенный в R2021a