using datastore with trainNetwork

5 次查看(过去 30 天)
I'm trying to train mp3/wav files using yamnet, I've created an audioDataStore which load the files, then I transform it to get data that suits to Yamnet, and then I try to train it. I get the folowing error:
Invalid training data. Predictors must be a numeric array, a datastore, or a table. For networks with
sequence input, predictors can also be a cell array of sequences.
Can't I use transformedDataStore with trainNetwork?
This is my code:
net = yamnet;
DS = audioDatastore(FolderName, ...
'FileExtensions',{'.wav','.mp3'},"IncludeSubfolders",true,'LabelSource','foldernames');
TR = transform(DS,@(audio,info)preProcess(audio,info),"IncludeInfo",true);
options = trainingOptions("adam");
trainNetwork(net,TR,options)
function [data,info] = preProcess(audio,info)
data = yamnetPreprocess(audio,info.SampleRate);
end
Thanks

采纳的回答

Aylin
Aylin 2023-2-7
编辑:Aylin 2023-2-7
Hello Noam, maybe the trainNetwork inputs are in the wrong order? The datastore should be first, followed by the layers and the options. Does this work better?
trainNetwork(TR,net,options)
Rylan
  2 个评论
Noam
Noam 2023-2-7
my bad, actually chaniging to:
trainNetwork(TR,net.Layers,options) do the work.
Thanks!
Noam
Noam 2023-2-7
i added a following question:
https://www.mathworks.com/matlabcentral/answers/1908330-input-datastore-returned-more-than-one-observation-per-row-for-network-input-1

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Pretrained Models 的更多信息

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by